package com.constellio.model.entities.search.logical.criterion;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import com.constellio.model.entities.schemas.Metadata;
import com.constellio.model.entities.schemas.MetadataValueType;
import com.constellio.model.services.search.query.logical.criteria.IsNullCriterion;
import com.constellio.sdk.tests.ConstellioTest;
public class IsNullCriterionTest extends ConstellioTest {
private IsNullCriterion criterion;
@Mock Metadata metadata;
@Before
public void setUp() {
criterion = new IsNullCriterion();
}
@Test
public void givenStringMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("string_s");
when(metadata.getType()).thenReturn(MetadataValueType.STRING);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -string_s:*)");
}
@Test
public void givenTextMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("text_s");
when(metadata.getType()).thenReturn(MetadataValueType.TEXT);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -text_s:*)");
}
@Test
public void givenBooleanMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("boolean_b");
when(metadata.getType()).thenReturn(MetadataValueType.BOOLEAN);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -boolean_b:*)");
}
@Test
public void givenReferenceMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("reference_s");
when(metadata.getType()).thenReturn(MetadataValueType.REFERENCE);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -reference_s:*)");
}
@Test
public void givenStructureMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("structure_s");
when(metadata.getType()).thenReturn(MetadataValueType.STRUCTURE);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -structure_s:*)");
}
@Test
public void givenContentMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("content_s");
when(metadata.getType()).thenReturn(MetadataValueType.CONTENT);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -content_s:*)");
}
@Test
public void givenEnumMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("enum_s");
when(metadata.getType()).thenReturn(MetadataValueType.ENUM);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -enum_s:*)");
}
@Test
public void givenDateMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("date_d");
when(metadata.getType()).thenReturn(MetadataValueType.DATE);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -date_d:*)");
}
@Test
public void givenDateTimeMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("dateTime_dt");
when(metadata.getType()).thenReturn(MetadataValueType.DATE_TIME);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -dateTime_dt:*)");
}
@Test
public void givenNumberMetadataWhenGettingSolrQueryThenQueryIsCorrect() {
when(metadata.getDataStoreCode()).thenReturn("number_d");
when(metadata.getType()).thenReturn(MetadataValueType.NUMBER);
assertThat(criterion.getSolrQuery(metadata)).isEqualTo("(*:* -number_d:*)");
}
}