package com.github.dreamhead.moco.matcher;
import com.github.dreamhead.moco.Request;
import com.github.dreamhead.moco.RequestExtractor;
import com.github.dreamhead.moco.RequestMatcher;
import com.github.dreamhead.moco.resource.Resource;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import java.util.regex.Pattern;
public class MatchMatcher<T> extends AbstractOperatorMatcher<T> {
public MatchMatcher(final RequestExtractor<T> extractor, final Resource expected) {
super(extractor, expected, new Predicate<byte[]>() {
@Override
public boolean apply(final byte[] input) {
Pattern pattern = Pattern.compile(expected.readFor(Optional.<Request>absent()).toString());
return pattern.matcher(new String(input)).matches();
}
});
}
@Override
protected RequestMatcher newMatcher(final RequestExtractor<T> extractor, final Resource resource) {
return new MatchMatcher<T>(extractor, resource);
}
}