package com.constellio.app.ui.framework.data; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.constellio.app.ui.entities.TaxonomyVO; import com.constellio.app.ui.framework.builders.TaxonomyToVOBuilder; import com.constellio.model.entities.Taxonomy; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.services.taxonomies.TaxonomiesManager; import com.constellio.model.services.users.UserServices; import com.constellio.sdk.tests.ConstellioTest; import com.constellio.sdk.tests.MockedFactories; public class TaxonomyVODataProviderTest extends ConstellioTest { TaxonomyVODataProvider dataProvider; @Mock TaxonomyToVOBuilder voBuilder; @Mock TaxonomiesManager taxonomiesManager; @Mock Taxonomy taxonomy1, taxonomy2; @Mock TaxonomyVO taxonomyVO1, taxonomyVO2; @Mock User admin; @Mock UserServices userServices; List<Taxonomy> taxonomies, sortedTaxonomies; List<TaxonomyVO> taxonomyVOs, sortedTaxonomyVOs; MockedFactories mockedFactories = new MockedFactories(); @Before public void setUp() throws Exception { taxonomies = new ArrayList<>(); taxonomies.add(taxonomy2); taxonomies.add(taxonomy1); taxonomyVOs = new ArrayList<>(); taxonomyVOs.add(taxonomyVO2); taxonomyVOs.add(taxonomyVO1); when(mockedFactories.getModelLayerFactory().newUserServices()).thenReturn(userServices); when(userServices.getUserInCollection("admin", zeCollection)).thenReturn(admin); when(mockedFactories.getModelLayerFactory().getTaxonomiesManager()).thenReturn(taxonomiesManager); when(taxonomiesManager.getAvailableTaxonomiesInHomePage(admin)).thenReturn(taxonomies); when(admin.getUsername()).thenReturn("admin"); when(taxonomy1.getCode()).thenReturn("taxo1"); when(taxonomy2.getCode()).thenReturn("taxo2"); when(taxonomyVO1.getCode()).thenReturn("taxo1"); when(taxonomyVO2.getCode()).thenReturn("taxo2"); when(voBuilder.build(taxonomy1)).thenReturn(taxonomyVO1); when(voBuilder.build(taxonomy2)).thenReturn(taxonomyVO2); dataProvider = spy(new TaxonomyVODataProvider(voBuilder, mockedFactories.getModelLayerFactory(), zeCollection, "admin")); } @Test public void whenGetTaxonomyVOsThenReturnThem() throws Exception { List<TaxonomyVO> taxonomyVOs = dataProvider.getTaxonomyVOs(); assertThat(taxonomyVOs).hasSize(2); assertThat(taxonomyVOs.get(0).getCode()).isEqualTo(taxonomy1.getCode()); assertThat(taxonomyVOs.get(1).getCode()).isEqualTo(taxonomy2.getCode()); } @Test public void testSize() throws Exception { assertThat(dataProvider.size()).isEqualTo(2); } @Test public void testGetTaxonomyVOsCodes() throws Exception { assertThat(dataProvider.getTaxonomyVOsCodes()).containsOnly("taxo1", "taxo2"); } }