package com.constellio.app.ui.pages.management.taxonomy;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import com.constellio.sdk.tests.MockedNavigation;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import com.constellio.app.modules.rm.services.ValueListServices;
import com.constellio.app.ui.application.CoreViews;
import com.constellio.app.ui.entities.TaxonomyVO;
import com.constellio.model.entities.Taxonomy;
import com.constellio.sdk.tests.ConstellioTest;
import com.constellio.sdk.tests.FakeSessionContext;
import com.constellio.sdk.tests.MockedFactories;
public class ListTaxonomyPresenterTest extends ConstellioTest {
@Mock ListTaxonomyViewImpl view;
MockedNavigation navigator;
@Mock ValueListServices valueListServices;
@Mock Taxonomy taxonomy1;
@Mock TaxonomyVO taxonomyVO;
ListTaxonomyPresenter presenter;
String newTaxonomyTitle;
MockedFactories mockedFactories = new MockedFactories();
@Before
public void setUp()
throws Exception {
navigator = new MockedNavigation();
when(view.getConstellioFactories()).thenReturn(mockedFactories.getConstellioFactories());
when(view.getSessionContext()).thenReturn(FakeSessionContext.dakotaInCollection(zeCollection));
when(view.navigate()).thenReturn(navigator);
newTaxonomyTitle = "taxonomy 1";
when(taxonomy1.getTitle()).thenReturn(newTaxonomyTitle);
presenter = spy(new ListTaxonomyPresenter(view));
doReturn(valueListServices).when(presenter).valueListServices();
}
@Test
public void whenAddButtonClikedThenNavigateToAddEditTaxonomy() {
presenter.addButtonClicked();
verify(view.navigate().to()).addTaxonomy();
}
@Test
public void whenEditButtonClikedThenNavigateToAddEditTaxonomyWithCorrectParams() {
presenter.editButtonClicked("taxo1Code");
verify(view.navigate().to()).editTaxonomy("taxo1Code");
}
@Test
public void whenDisplayButtonClikedThenNavigateToAddEditTaxonomyWithCorrectParams()
throws Exception {
when(taxonomyVO.getCode()).thenReturn("taxoCode");
presenter.displayButtonClicked(taxonomyVO);
verify(view.navigate().to()).taxonomyManagement("taxoCode");
}
}