/* * Copyright (c) LinkedIn Corporation. All rights reserved. Licensed under the BSD-2 Clause license. * See LICENSE in the project root for license information. */ package com.linkedin.flashback.matchrules; import com.linkedin.flashback.serializable.RecordedHttpRequest; import java.util.HashMap; import java.util.Map; import org.testng.Assert; import org.testng.annotations.Test; /** * @author shfeng */ public class MatchHeadersTest { @Test public void testIsMatch() throws Exception { Map<String, String> headers1 = new HashMap<>(); headers1.put("key1", "value1"); headers1.put("key2", "value2"); RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest(null, null, headers1, null); Map<String, String> headers2 = new HashMap<>(); headers2.put("key1", "value1"); headers2.put("key2", "value2"); RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest(null, null, headers2, null); MatchRule matchRule = new MatchHeaders(); Assert.assertTrue(matchRule.test(recordedHttpRequest1, recordedHttpRequest2)); } @Test public void testNotMatchWrongKey() throws Exception { Map<String, String> headers1 = new HashMap<>(); headers1.put("key1", "value1"); headers1.put("key2", "value2"); RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest(null, null, headers1, null); Map<String, String> headers2 = new HashMap<>(); headers2.put("key1", "value1"); headers2.put("key3", "value2"); RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest(null, null, headers2, null); MatchRule matchRule = new MatchHeaders(); Assert.assertFalse(matchRule.test(recordedHttpRequest1, recordedHttpRequest2)); } @Test public void testNotMatchWrongValue() throws Exception { Map<String, String> headers1 = new HashMap<String, String>(); headers1.put("key1", "value1"); headers1.put("key2", "value2"); RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest(null, null, headers1, null); Map<String, String> headers2 = new HashMap<String, String>(); headers2.put("key1", "value1"); headers2.put("key2", "value1"); RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest(null, null, headers2, null); MatchRule matchRule = new MatchHeaders(); Assert.assertFalse(matchRule.test(recordedHttpRequest1, recordedHttpRequest2)); } @Test public void testMatchDifferentOrder() throws Exception { Map<String, String> headers1 = new HashMap<String, String>(); headers1.put("key1", "value1"); headers1.put("key2", "value2"); RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest(null, null, headers1, null); Map<String, String> headers2 = new HashMap<String, String>(); headers2.put("key2", "value2"); headers2.put("key1", "value1"); RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest(null, null, headers2, null); MatchRule matchRule = new MatchHeaders(); Assert.assertTrue(matchRule.test(recordedHttpRequest1, recordedHttpRequest2)); } @Test public void testNotMatchWrongSize() throws Exception { Map<String, String> headers1 = new HashMap<String, String>(); headers1.put("key1", "value1"); headers1.put("key2", "value2"); RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest(null, null, headers1, null); Map<String, String> headers2 = new HashMap<String, String>(); headers2.put("key1", "value1"); RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest(null, null, headers2, null); MatchRule matchRule = new MatchHeaders(); Assert.assertFalse(matchRule.test(recordedHttpRequest1, recordedHttpRequest2)); } @Test public void testNotMatchEmptyMap() throws Exception { Map<String, String> headers1 = new HashMap<String, String>(); headers1.put("key1", "value1"); headers1.put("key2", "value2"); RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest(null, null, headers1, null); Map<String, String> headers2 = new HashMap<String, String>(); RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest(null, null, headers2, null); MatchRule matchRule = new MatchHeaders(); Assert.assertFalse(matchRule.test(recordedHttpRequest1, recordedHttpRequest2)); } }