package br.com.caelum.seleniumdsl.hamcrest;
import org.hamcrest.Description;
import org.hamcrest.Factory;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
import br.com.caelum.seleniumdsl.SelectField;
/**
* See description on SeleniumDslMatchers
* @author Lucas Cavalcanti
*/
public class ContainsOptionMatcher<T extends SelectField> extends TypeSafeMatcher<T> {
private final String label;
public ContainsOptionMatcher(String label) {
this.label = label;
}
@Override
public boolean matchesSafely(T item) {
String[] values = item.values();
for (String string : values) {
if (label.equals(string)) {
return true;
}
}
return false;
}
public void describeTo(Description description) {
description.appendText("a select field that contains option " + label);
}
@Factory
public static <T extends SelectField> Matcher<T> containsOption(String label) {
return new ContainsOptionMatcher<T>(label);
}
}