package org.mongodb.morphia.query.validation;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class ValueClassValidatorTest {
@Test
public void shouldAllowClassesWithExactlyTheSameType() {
// expect
assertThat(ValueClassValidator.valueIsClassOrSubclassOf(new Integer(1), Integer.class), is(true));
}
@Test
public void shouldAllowPrimitiveValuesComparedToObjectType() {
// expect
assertThat(ValueClassValidator.valueIsClassOrSubclassOf(1, Integer.class), is(true));
}
@Test
public void shouldAllowValueWithClassThatIsSubclassOfType() {
// expect
assertThat(ValueClassValidator.valueIsClassOrSubclassOf(new ArrayList(), List.class), is(true));
}
@Test
public void shouldRejectValueThatDoesNotMatchType() {
// expect
assertThat(ValueClassValidator.valueIsClassOrSubclassOf(1, String.class), is(false));
}
}