package org.mockserver.matchers;
import org.mockserver.collections.CaseInsensitiveRegexMultiMap;
import org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString;
import org.mockserver.model.KeyToMultiValue;
import java.util.List;
/**
* @author jamesdbloom
*/
public class MultiValueMapMatcher extends NotMatcher<List<KeyToMultiValue>> {
private final CaseInsensitiveRegexMultiMap multiMap;
public MultiValueMapMatcher(CaseInsensitiveRegexMultiMap multiMap) {
this.multiMap = multiMap;
}
public boolean matches(List<KeyToMultiValue> values) {
boolean result = false;
if (multiMap == null) {
result = true;
} else if (KeyToMultiValue.toMultiMap(values).containsAll(multiMap)) {
result = true;
} else {
logger.trace("Map [{}] is not a subset of [{}]", multiMap, KeyToMultiValue.toMultiMap(values));
}
return reverseResultIfNot(result);
}
}