package com.constellio.model.services.search.query.logical.criteria;
import static com.constellio.model.entities.schemas.MetadataValueType.BOOLEAN;
import static com.constellio.model.entities.schemas.MetadataValueType.DATE_TIME;
import static com.constellio.model.entities.schemas.MetadataValueType.NUMBER;
import static com.constellio.model.entities.schemas.MetadataValueType.REFERENCE;
import static com.constellio.model.entities.schemas.MetadataValueType.STRING;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
import com.constellio.model.entities.schemas.Metadata;
import com.constellio.sdk.tests.ConstellioTest;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class CriteriaUtilsTest extends ConstellioTest {
@Mock Metadata metadata;
@Before
public void setUp()
throws Exception {
}
@Test
public void whenGettingBooleanValueThenRightStringReturned()
throws Exception {
assertThat(CriteriaUtils.getBooleanStringValue(true)).isEqualTo("__TRUE__");
assertThat(CriteriaUtils.getBooleanStringValue(false)).isEqualTo("__FALSE__");
}
@Test
public void whenGettingNullStringValueThenRightStringReturned()
throws Exception {
assertThat(CriteriaUtils.getNullStringValue()).isEqualTo("__NULL__");
}
@Test
public void whenGettingNullDateValueThenRightValueReturned()
throws Exception {
assertThat(CriteriaUtils.getNullDateValue()).isEqualTo(CriteriaUtils.getNullDateValue());
}
@Test
public void whenGettingNullNumberValueThenRightValueReturned()
throws Exception {
assertThat(CriteriaUtils.getNullNumberValue()).isEqualTo("" + Integer.MIN_VALUE);
}
@Test
public void givenTextMetadataWhenGettingNullValueForMetadataThenRightValueReturned()
throws Exception {
Mockito.when(metadata.getType()).thenReturn(STRING);
assertThat(CriteriaUtils.getNullValueForDataStoreField(metadata)).isEqualTo("__NULL__");
}
@Test
public void givenBooleanMetadataWhenGettingNullValueForMetadataThenRightValueReturned()
throws Exception {
Mockito.when(metadata.getType()).thenReturn(BOOLEAN);
assertThat(CriteriaUtils.getNullValueForDataStoreField(metadata)).isEqualTo("__NULL__");
}
@Test
public void givenDateMetadataWhenGettingNullValueForMetadataThenRightValueReturned()
throws Exception {
Mockito.when(metadata.getType()).thenReturn(DATE_TIME);
assertThat(CriteriaUtils.getNullValueForDataStoreField(metadata)).isEqualTo(CriteriaUtils.getNullDateValue());
}
@Test
public void givenNumberMetadataWhenGettingNullValueForMetadataThenRightValueReturned()
throws Exception {
Mockito.when(metadata.getType()).thenReturn(NUMBER);
assertThat(CriteriaUtils.getNullValueForDataStoreField(metadata)).isEqualTo("" + Integer.MIN_VALUE);
}
@Test
public void givenReferenceMetadataWhenGettingNullValueForMetadataThenRightValueReturned()
throws Exception {
Mockito.when(metadata.getType()).thenReturn(REFERENCE);
assertThat(CriteriaUtils.getNullValueForDataStoreField(metadata)).isEqualTo("__NULL__");
}
}