com.yahoo.test.CollectionPatternMatcher Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of testutil Show documentation
Show all versions of testutil Show documentation
Library of useful Hamcrest matchers.
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.test;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.hamcrest.Factory;
import org.hamcrest.Matcher;
import java.util.Collection;
/**
* Checks if a collection of strings contains at least one string with the expected regex pattern.
*
* @author gjoranv
* @since 5.1.8
*/
public class CollectionPatternMatcher extends BaseMatcher> {
private final String pattern;
public CollectionPatternMatcher(String pattern) {
this.pattern = pattern;
}
@Override
public void describeTo(Description description) {
description.appendText("contains a string that matches expression '" + pattern + "'");
}
@Override
public boolean matches(Object o) {
@SuppressWarnings("unchecked")
Collection strings = (Collection) o;
for (String s : strings)
if (s.matches(pattern))
return true;
return false;
}
@Factory
public static Matcher> containsStringWithPattern(String pattern) {
return new CollectionPatternMatcher(pattern);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy