package org.test4j.hamcrest.iassert.common.impl;
import org.test4j.hamcrest.iassert.common.intf.IAssert;
import org.test4j.hamcrest.iassert.common.intf.ISizedAssert;
import org.test4j.hamcrest.matcher.array.SizeOrLengthMatcher;
import org.test4j.hamcrest.matcher.array.SizeOrLengthMatcher.SizeOrLengthMatcherType;
import ext.test4j.hamcrest.Matcher;
import ext.test4j.hamcrest.core.AllOf;
@SuppressWarnings("rawtypes")
public class SizeAssert<T, E extends IAssert> extends ReflectionAssert<T, E> implements IAssert<T, E>, ISizedAssert<E> {
public SizeAssert(Class<? extends IAssert> clazE) {
super(clazE);
}
public SizeAssert(T value, Class<? extends IAssert> clazE) {
super(value, clazE);
}
// following are size equal matcher
public E sizeIs(int size) {
SizeOrLengthMatcher matcher = new SizeOrLengthMatcher(size, SizeOrLengthMatcherType.EQ);
return this.assertThat(matcher);
}
public E sizeEq(int size) {
SizeOrLengthMatcher matcher = new SizeOrLengthMatcher(size, SizeOrLengthMatcherType.EQ);
return this.assertThat(matcher);
}
public E sizeGe(int size) {
SizeOrLengthMatcher matcher = new SizeOrLengthMatcher(size, SizeOrLengthMatcherType.GE);
return this.assertThat(matcher);
}
public E sizeGt(int size) {
SizeOrLengthMatcher matcher = new SizeOrLengthMatcher(size, SizeOrLengthMatcherType.GT);
return this.assertThat(matcher);
}
public E sizeLe(int size) {
SizeOrLengthMatcher matcher = new SizeOrLengthMatcher(size, SizeOrLengthMatcherType.LE);
return this.assertThat(matcher);
}
public E sizeLt(int size) {
SizeOrLengthMatcher matcher = new SizeOrLengthMatcher(size, SizeOrLengthMatcherType.LT);
return this.assertThat(matcher);
}
public E sizeBetween(int min, int max) {
SizeOrLengthMatcher geMatcher = new SizeOrLengthMatcher(min, SizeOrLengthMatcherType.GE);
SizeOrLengthMatcher leMatcher = new SizeOrLengthMatcher(max, SizeOrLengthMatcherType.LE);
Matcher matcher = AllOf.allOf(geMatcher, leMatcher);
return this.assertThat(matcher);
}
public E sizeNe(int size) {
SizeOrLengthMatcher matcher = new SizeOrLengthMatcher(size, SizeOrLengthMatcherType.NE);
return this.assertThat(matcher);
}
}