org.mockito.internal.matchers.Or Maven / Gradle / Ivy
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.matchers;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.mockito.ArgumentMatcher;
@SuppressWarnings("unchecked")
public class Or extends ArgumentMatcher implements Serializable {
private static final long serialVersionUID = 5888739035212283087L;
private final List matchers;
public Or(List matchers) {
this.matchers = matchers;
}
public boolean matches(Object actual) {
for (Matcher matcher : matchers) {
if (matcher.matches(actual)) {
return true;
}
}
return false;
}
public void describeTo(Description description) {
description.appendText("or(");
for (Iterator it = matchers.iterator(); it.hasNext();) {
it.next().describeTo(description);
if (it.hasNext()) {
description.appendText(", ");
}
}
description.appendText(")");
}
}