package org.mockserver.matchers;
import org.junit.Test;
import org.mockserver.model.Cookie;
import org.mockserver.model.KeyAndValue;
import org.mockserver.model.Not;
import java.util.ArrayList;
import java.util.Arrays;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockserver.matchers.NotMatcher.not;
/**
* @author jamesdbloom
*/
public class CookieMatcherTestNew {
@Test
public void shouldMatchSingleCookieMatcherAndSingleMatchingCookie() {
assertTrue(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("cookieOneName", "cookieOneValue")
))));
}
@Test
public void shouldNotMatchSingleCookieMatcherAndSingleNoneMatchingCookie() {
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("notCookieOneName", "cookieOneValue")
))));
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("cookieOneName", "notCookieOneValue")
))));
}
@Test
public void shouldMatchMultipleCookieMatcherAndMultipleMatchingCookies() {
assertTrue(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("cookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
))));
assertTrue(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookie.*", "cookie.*")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("cookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
))));
}
@Test
public void shouldNotMatchMultipleCookieMatcherAndMultipleNoneMatchingCookiesWithOneMismatch() {
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("notCookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
))));
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("cookieOneName", "notCookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
))));
}
@Test
public void shouldNotMatchMultipleCookieMatcherAndMultipleNoneMatchingCookiesWithMultipleMismatches() {
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("notCookieOneName", "cookieOneValue"),
new Cookie("notCookieTwoName", "cookieTwoValue")
))));
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("cookieOneName", "notCookieOneValue"),
new Cookie("cookieTwoName", "notCookieTwoValue")
))));
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookie.*", "cookie.*")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("notCookieOneName", "cookieOneValue"),
new Cookie("notCookieTwoName", "cookieTwoValue")
))));
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookie.*", "cookie.*")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("cookieOneName", "notCookieOneValue"),
new Cookie("cookieTwoName", "notCookieTwoValue")
))));
}
@Test
public void shouldNotMatchMultipleCookieMatcherAndMultipleNotEnoughMatchingCookies() {
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("cookieTwoName", "cookieTwoValue")
))));
assertFalse(new HashMapMatcher(KeyAndValue.toHashMap(
new Cookie("cookieOneName", "cookieOneValue"),
new Cookie("cookieTwoName", "cookieTwoValue")
)).matches(new ArrayList<KeyAndValue>(Arrays.asList(
new Cookie("cookieOneName", "cookieOneValue")
))));
}
}