package com.constellio.model.services.users; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.jdom2.Document; import org.joda.time.LocalDateTime; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.constellio.data.utils.Factory; import com.constellio.model.entities.security.global.UserCredential; import com.constellio.model.entities.security.global.UserCredentialStatus; import com.constellio.model.entities.security.global.XmlUserCredential; import com.constellio.model.services.encrypt.EncryptionServices; import com.constellio.sdk.tests.ConstellioTest; public class UserCredentialReaderTest extends ConstellioTest { Document document; UserCredentialsWriter writer; UserCredentialsReader reader; UserCredential chuckUserCredential; UserCredential edouardUserCredential; LocalDateTime endDateTime; @Mock Factory<EncryptionServices> encryptionServicesFactory; List<String> msExchDelegateListBL = new ArrayList<>(); @Before public void setup() throws Exception { EncryptionServices encryptionServices = FakeEncryptionServicesUtils.create(); when(encryptionServicesFactory.get()).thenReturn(encryptionServices); msExchDelegateListBL = new ArrayList<>(); msExchDelegateListBL.add("msExchDelegateListBL1"); msExchDelegateListBL.add("msExchDelegateListBL2"); newChuckUserCredential(); newEdouardUserCredential(); Document document = new Document(); writer = new UserCredentialsWriter(document, encryptionServicesFactory); writer.createEmptyUserCredentials(); writer.addUpdate(chuckUserCredential); writer.addUpdate(edouardUserCredential); writer.addUpdate(chuckUserCredential); reader = new UserCredentialsReader(document, encryptionServicesFactory); } @Test public void givenTwoUsersCredentialsWhenReadAllThenGetThem() throws Exception { Map<String, UserCredential> usersCredentials = reader.readAll(asList("zeCollection")); assertThat(usersCredentials).hasSize(2); assertThat(usersCredentials.containsKey("chuck")).isTrue(); assertThat(usersCredentials.containsKey("edouard")).isTrue(); assertThat(usersCredentials.get("chuck").getMsExchDelegateListBL()).isEqualTo(msExchDelegateListBL); assertThat(usersCredentials.get("chuck").getDn()).isEqualTo("chuckDN"); } private void newChuckUserCredential() { Map<String, LocalDateTime> tokens = new HashMap<String, LocalDateTime>(); endDateTime = new LocalDateTime(2014, 11, 04, 10, 30); tokens.put("token1", endDateTime); chuckUserCredential = new XmlUserCredential("chuck", "Chuck", "Norris", "chuck.norris@gmail.com", "serviceKeyChuck", false, asList("group1"), asList(zeCollection), tokens, UserCredentialStatus.ACTIVE, "domain", msExchDelegateListBL, "chuckDN"); } private void newEdouardUserCredential() { edouardUserCredential = new XmlUserCredential("edouard", "Edouard", "Lechat", "edouard.lechat@gmail.com", asList("group1"), asList("collection1"), UserCredentialStatus.ACTIVE, "domain", msExchDelegateListBL, null); } }