package org.hamcrest.text;

import org.hamcrest.AbstractMatcherTest;
import org.hamcrest.Matcher;

import static org.hamcrest.text.IsEqualCompressingWhiteSpace.equalToCompressingWhiteSpace;

public class IsEqualCompressingWhiteSpaceTest extends AbstractMatcherTest {

    
private final Matcher<String> matcher = equalToCompressingWhiteSpace(" Hello World how\n are we? ");

    
@Override
    
protected Matcher<?> createMatcher() {
        
return matcher;
    
}

    
public void testPassesIfWordsAreSameButWhitespaceDiffers() {
        
assertMatches(matcher, "Hello World how are we?");
        
assertMatches(matcher, " Hello World how are \n\n\twe?");
    
}

    
public void testFailsIfTextOtherThanWhitespaceDiffers() {
        
assertDoesNotMatch(matcher, "Hello PLANET how are we?");
        
assertDoesNotMatch(matcher, "Hello World how are we");
    
}

    
public void testFailsIfWhitespaceIsAddedOrRemovedInMidWord() {
        
assertDoesNotMatch(matcher, "HelloWorld how are we?");
        
assertDoesNotMatch(matcher, "Hello Wo rld how are we?");
    
}

    
public void test_has_a_readable_mismatch() {
        
assertMismatchDescription("was \"Hello World how are we \"", matcher, "Hello World how are we ");
    
}

    
public void testFailsIfMatchingAgainstNull() {
        
assertDoesNotMatch(matcher, null);
    
}

    
public void testHasAReadableDescription() {
        
assertDescription("a string equal to \" Hello World how\\n are we? \" compressing white space",
                        
matcher);
    
}
}