### Question:
ExactMatcher implements Matcher { @Override public boolean matches(String s1, String s2) { if (nullToBlank && s1 == null) s1 = ""; if (nullToBlank && s2 == null) s2 = ""; return s1.equals(s2); }  @Override int getCost(); @Override boolean matches(String s1, String s2); @Override boolean isExact(); @Override String getExecutionReport(); boolean isNullToBlank(); void setNullToBlank(boolean nullToBlank); static int COST; }### Answer:
@Test public void testBlankMatches() { ExactMatcher matcher = new ExactMatcher(); assertTrue(matcher.matches("", "")); assertFalse(matcher.matches("", "x")); assertFalse(matcher.matches("x", "")); }
@Test public void testStringMatches() { ExactMatcher matcher = new ExactMatcher(); assertTrue(matcher.matches("one", "one")); }
@Test public void testStringCaseMatches() { ExactMatcher matcher = new ExactMatcher(); assertFalse(matcher.matches("one", "One")); }
@Test public void testStringTrimMatches() { ExactMatcher matcher = new ExactMatcher(); assertFalse(matcher.matches("one", "one ")); }
@Test public void testStringWithWhitespaces () { ExactMatcher matcher = new ExactMatcher(); assertTrue(matcher.matches("hello kitty", "hello kitty")); }