package com.constellio.app.services.schemas.bulkImport.authorization;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
import java.util.List;
import org.jdom2.Document;
import org.jdom2.input.SAXBuilder;
import org.junit.Test;
import com.constellio.app.services.schemas.bulkImport.authorization.ImportedAuthorization.ImportedAuthorizationPrincipal;
import com.constellio.app.services.schemas.bulkImport.authorization.ImportedAuthorization.ImportedAuthorizationTarget;
import com.constellio.sdk.tests.ConstellioTest;
public class ImportedAuthorizationReaderAcceptTest extends ConstellioTest {
@Test
public void whenReadingAuthorizationXMLFileThenReadCorrectly()
throws Exception {
List<ImportedAuthorization> allAuthorizations = readTestAuthorizations();
assertThat(allAuthorizations.size()).isEqualTo(2);
ImportedAuthorization emptyAuthorization = allAuthorizations.get(0);
assertThat(emptyAuthorization.getId()).isNull();
assertThat(emptyAuthorization.getAccess()).isNull();
assertThat(emptyAuthorization.getPrincipals()).isEmpty();
assertThat(emptyAuthorization.getRoles()).isEmpty();
assertThat(emptyAuthorization.getTargets()).isEmpty();
ImportedAuthorization nonEmptyAuthorization = allAuthorizations.get(1);
assertThat(nonEmptyAuthorization.getId()).isEqualTo("authorizationId");
assertThat(nonEmptyAuthorization.getAccess()).isEqualTo("rwd");
assertThat(nonEmptyAuthorization.getRoles()).containsExactly("u", "g", "rgd");
assertThat(nonEmptyAuthorization.getTargets()).containsExactly(
new ImportedAuthorizationTarget("folder", "folderLegacyId"),
new ImportedAuthorizationTarget("document", "documentLegacyId"),
new ImportedAuthorizationTarget("administrativeUnit", "administrativeUnitLegacyId"),
new ImportedAuthorizationTarget("userTask", "userTaskLegacyId"));
assertThat(nonEmptyAuthorization.getPrincipals())
.containsExactly(new ImportedAuthorizationPrincipal("user", "alice"),
new ImportedAuthorizationPrincipal("group", "heroes"));
}
private List<ImportedAuthorization> readTestAuthorizations()
throws Exception {
File authorizationFile = getTestResourceFile("authorizations.xml");
Document document = new SAXBuilder().build(authorizationFile);
ImportedAuthorizationReader reader = new ImportedAuthorizationReader(document);
return reader.readAll();
}
}