package org.magenta.testing;
import org.assertj.core.api.AbstractAssert;
import org.assertj.core.api.Assertions;
import org.magenta.DataSet;
/**
* Base class for DataSet assertions.
*
* @author ngagnon
*
* @param <A> the type of assert
* @param <D> the type of data set
*/
public abstract class AbstractDataSetAssert<A extends AbstractDataSetAssert<A, D>, D> extends AbstractAssert<A, DataSet<D>> {
/**
* Default constructor.
*
* @param actual the dataset being asserted.
* @param type the type of this assert.
*/
protected AbstractDataSetAssert(DataSet<D> actual, Class<?> type) {
super(actual, type);
}
/**
* Assert that the {@code actual} contains only the specified {@code values} in any order.
*
* @param values the values
* @return this assert
*/
@SafeVarargs
public final A containsOnly(D... values) {
Assertions.assertThat(actual.list()).containsOnly(values);
return myself;
}
/**
* Assert that the {@code actual} contains exactly the specified {@code values} in the specified order..
*
* @param values the values
* @return this assert
*/
@SafeVarargs
public final A containsExactly(D... values) {
Assertions.assertThat(actual.list()).containsExactly(values);
return myself;
}
}