package com.constellio.app.ui.pages.profile; import com.constellio.app.modules.rm.RMTestRecords; import com.constellio.app.modules.rm.model.enums.DefaultTabInFolderDisplay; import com.constellio.app.modules.rm.navigation.RMNavigationConfiguration; import com.constellio.app.modules.rm.services.RMSchemasRecordsServices; import com.constellio.app.modules.rm.services.events.RMEventsSearchServices; import com.constellio.app.ui.entities.UserCredentialVO; import com.constellio.app.ui.pages.base.SessionContext; import com.constellio.app.ui.pages.base.UIContext; import com.constellio.model.services.records.RecordServices; import com.constellio.model.services.schemas.MetadataSchemasManager; import com.constellio.model.services.search.SearchServices; import com.constellio.model.services.security.roles.RolesManager; import com.constellio.model.services.users.UserServices; import com.constellio.sdk.tests.ConstellioTest; import com.constellio.sdk.tests.FakeSessionContext; import com.constellio.sdk.tests.SDKViewNavigation; import com.constellio.sdk.tests.setups.Users; import org.joda.time.LocalDate; import org.joda.time.LocalDateTime; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import java.util.Locale; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; public class ModifyProfilePresenterAcceptanceTest extends ConstellioTest { LocalDateTime shishOClock = new LocalDateTime().plusDays(1); Users users = new Users(); @Mock ModifyProfileView view; SDKViewNavigation viewNavigation; @Mock UserCredentialVO chuckCredentialVO; RMTestRecords records = new RMTestRecords(zeCollection); SearchServices searchServices; ModifyProfilePresenter presenter; SessionContext sessionContext; @Mock UIContext uiContext; LocalDate nowDate = new LocalDate(); RMEventsSearchServices rmEventsSearchServices; RolesManager rolesManager; RMSchemasRecordsServices rmSchemasRecordsServices; MetadataSchemasManager metadataSchemasManager; RecordServices recordServices; ProfileVO profileVO; UserServices userServices; @Before public void setUp() throws Exception { prepareSystem( withZeCollection().withConstellioRMModule().withConstellioESModule().withAllTestUsers() .withRMTest(records).withFoldersAndContainersOfEveryStatus().withDocumentsDecommissioningList() ); //inCollection("LaCollectionDeRida").setCollectionTitleTo("Collection d'entreprise"); userServices = getModelLayerFactory().newUserServices(); users = new Users(); users.setUp(userServices); inCollection(zeCollection).setCollectionTitleTo("Collection de test"); profileVO = new ProfileVO(users.bobIn(zeCollection).getUsername(), "bob", "Gratton", "bob@constellio.com", "bob@hotmail.com\nbob@gmail.com", "3333333", RMNavigationConfiguration.LAST_VIEWED_FOLDERS, DefaultTabInFolderDisplay.METADATA, "taxo1", null, null, null, false); profileVO.setLoginLanguageCode("fr"); sessionContext = FakeSessionContext.forRealUserIncollection(users.chuckNorrisIn(zeCollection)); sessionContext.setCurrentLocale(Locale.FRENCH); viewNavigation = new SDKViewNavigation(view); when(view.getSessionContext()).thenReturn(sessionContext); when(view.getCollection()).thenReturn(zeCollection); when(view.getConstellioFactories()).thenReturn(getConstellioFactories()); when(view.getUIContext()).thenReturn(uiContext); presenter = new ModifyProfilePresenter(view); presenter.saveButtonClicked(profileVO); rolesManager = getModelLayerFactory().getRolesManager(); givenTimeIs(nowDate); } @Test public void whenSaveButtonClickedThenUpdateUserCredentialAndUser() throws Exception { presenter.saveButtonClicked(profileVO); assertThat(userServices.getUser(bobGratton).getPersonalEmails()).containsOnly("bob@hotmail.com", "bob@gmail.com"); } }