package com.framework.utils.matchers;
import org.hamcrest.Description;
import org.hamcrest.TypeSafeMatcher;
/**
* Created with IntelliJ IDEA ( LivePerson : www.liveperson.com )
*
* Package: com.framework.utils.matchers
*
* Name : CharSequenceMatcher
*
* User : solmarkn / Dani Vainstein
*
* Date : 2015-03-01
*
* Time : 00:28
*
*/
public abstract class CharSequenceMatcher extends TypeSafeMatcher<CharSequence>
{
//region CharSequenceMatcher - Variables Declaration and Initialization Section.
protected enum ValidationType{ LOWER, UPPER, ALPHA, ALPHANUMERIC, NUMERIC, NUMBER, DIGITS }
protected final CharSequence charSequence;
protected final ValidationType vt;
//endregion
//region CharSequenceMatcher - Constructor Methods Section
protected CharSequenceMatcher( final CharSequence cs, final ValidationType vt )
{
this.charSequence = cs;
this.vt = vt;
}
//endregion
@Override
public boolean matchesSafely( CharSequence item )
{
return evalCharSequenceOf( item, vt );
}
@Override
public void describeMismatchSafely( CharSequence item, Description mismatchDescription )
{
mismatchDescription.appendText( "was \"" ).appendText( item.toString() ).appendText( "\"" );
}
@Override
public void describeTo( Description description )
{
description.appendText( "a char-sequence " )
.appendText( relationship() )
.appendText( " " )
.appendValue( charSequence );
}
protected abstract boolean evalCharSequenceOf( CharSequence cs, ValidationType vt );
protected abstract String relationship();
}