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 LongTypeValidatorTest { @Test public void shouldAllowIntValueWhenTypeIsLong() { // given List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>(); // when boolean validationApplied = LongTypeValidator.getInstance().apply(Long.class, 1, validationFailures); // then assertThat(validationApplied, is(true)); assertThat(validationFailures.size(), is(0)); } @Test public void shouldAllowIntValueWhenTypeIsPrimitiveLong() { // given List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>(); // when boolean validationApplied = LongTypeValidator.getInstance().apply(long.class, 1, validationFailures); // then assertThat(validationApplied, is(true)); assertThat(validationFailures.size(), is(0)); } @Test public void shouldAllowIntegerValueWhenTypeIsLong() { // given List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>(); // when boolean validationApplied = LongTypeValidator.getInstance().apply(Long.class, new Integer(1), validationFailures); // then assertThat(validationApplied, is(true)); assertThat(validationFailures.size(), is(0)); } @Test public void shouldAllowIntegerValueWhenTypeIsPrimitiveLong() { // given List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>(); // when boolean validationApplied = LongTypeValidator.getInstance().apply(long.class, new Integer(1), validationFailures); // then assertThat(validationApplied, is(true)); assertThat(validationFailures.size(), is(0)); } @Test public void shouldNotApplyValidationIfTypeIsNotIntegerOrLong() { // given List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>(); // when boolean validationApplied = LongTypeValidator.getInstance().apply(String.class, new Integer(1), validationFailures); // then assertThat(validationApplied, is(false)); assertThat(validationFailures.size(), is(0)); } @Test public void shouldRejectNonIntegerValueIfTypeIsLong() { // given List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>(); // when boolean validationApplied = LongTypeValidator.getInstance().apply(Long.class, "some non int value", validationFailures); // then assertThat(validationApplied, is(true)); assertThat(validationFailures.size(), is(1)); } @Test public void shouldRejectNonIntegerValueIfTypeIsPrimitiveLong() { // given List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>(); // when boolean validationApplied = LongTypeValidator.getInstance().apply(long.class, "some non int value", validationFailures); // then assertThat(validationApplied, is(true)); assertThat(validationFailures.size(), is(1)); } }