package com.constellio.app.modules.rm.model;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Test;
import com.constellio.app.modules.rm.RMTestRecords;
import com.constellio.app.modules.rm.constants.RMTaxonomies;
import com.constellio.app.modules.rm.model.enums.DecommissioningType;
import com.constellio.app.modules.rm.services.RMSchemasRecordsServices;
import com.constellio.app.modules.rm.wrappers.ContainerRecord;
import com.constellio.app.modules.rm.wrappers.StorageSpace;
import com.constellio.app.modules.rm.wrappers.type.ContainerRecordType;
import com.constellio.model.entities.records.Transaction;
import com.constellio.model.services.records.RecordServices;
import com.constellio.sdk.tests.ConstellioTest;
public class ContainerAcceptanceTest extends ConstellioTest {
RMSchemasRecordsServices rm;
RMTestRecords records = new RMTestRecords(zeCollection);
RecordServices recordServices;
@Before
public void setUp()
throws Exception {
prepareSystem(
withZeCollection().withConstellioRMModule().withRMTest(records)
);
assertThat(getModelLayerFactory().getTaxonomiesManager().getPrincipalTaxonomy(zeCollection).getCode())
.isEqualTo(RMTaxonomies.ADMINISTRATIVE_UNITS);
rm = new RMSchemasRecordsServices(zeCollection, getAppLayerFactory());
recordServices = getModelLayerFactory().newRecordServices();
}
@Test
public void givenContainerWithTemporaryIdentifierThenUsedHasTitle()
throws Exception {
StorageSpace storage42 = rm.newStorageSpaceWithId("42");
storage42.setCode("Ze42");
storage42.setTitle("Ze storage");
storage42.setDescription("Ze description");
storage42.setCapacity(666L);
StorageSpace storage666 = rm.newStorageSpaceWithId("666");
storage666.setCode("Ze666");
storage666.setTitle("Ze child storage");
storage666.setDescription("Ze description");
storage666.setCapacity(666L);
storage666.setDecommissioningType(DecommissioningType.DEPOSIT);
storage666.setParentStorageSpace("42");
ContainerRecordType zeBoite = rm.newContainerRecordTypeWithId("zeBoite");
zeBoite.setTitle("Ze Boite");
zeBoite.setCode("BOITE");
ContainerRecord zeContainer = rm.newContainerRecordWithId("zeContainer");
zeContainer.setTemporaryIdentifier("Ze temp identifier");
zeContainer.setDescription("Ze description");
zeContainer.setFull(false);
zeContainer.setDecommissioningType(DecommissioningType.DEPOSIT);
zeContainer.setStorageSpace(storage666);
zeContainer.setAdministrativeUnit(records.unitId_10a);
zeContainer.setType("zeBoite");
ContainerRecord anotherContainer = rm.newContainerRecordWithId("anotherContainer");
anotherContainer.setTemporaryIdentifier("Ze temp identifier");
anotherContainer.setIdentifier("Ze ultimate identifier");
anotherContainer.setDescription("Ze description");
anotherContainer.setFull(true);
anotherContainer.setDecommissioningType(DecommissioningType.DEPOSIT);
anotherContainer.setStorageSpace(storage666);
anotherContainer.setAdministrativeUnit(records.unitId_20d);
anotherContainer.setType("zeBoite");
Transaction transaction = new Transaction();
transaction.add(storage42);
transaction.add(storage666);
transaction.add(zeBoite);
transaction.add(zeContainer);
transaction.add(anotherContainer);
recordServices.execute(transaction);
storage42 = rm.getStorageSpace("42");
storage666 = rm.getStorageSpace("666");
zeContainer = rm.getContainerRecord("zeContainer");
anotherContainer = rm.getContainerRecord("anotherContainer");
assertThat(storage42.getCode()).isEqualTo("Ze42");
assertThat(storage42.getTitle()).isEqualTo("Ze storage");
assertThat(storage42.getDescription()).isEqualTo("Ze description");
assertThat(storage666.getCode()).isEqualTo("Ze666");
assertThat(storage666.getTitle()).isEqualTo("Ze child storage");
assertThat(storage666.getDescription()).isEqualTo("Ze description");
assertThat(storage666.getDecommissioningType()).isEqualTo(DecommissioningType.DEPOSIT);
assertThat(storage666.getParentStorageSpace()).isEqualTo("42");
assertThat(zeContainer.getTitle()).isEqualTo("Ze temp identifier");
assertThat(zeContainer.getTemporaryIdentifier()).isEqualTo("Ze temp identifier");
assertThat(zeContainer.getDescription()).isEqualTo("Ze description");
assertThat(zeContainer.isFull()).isFalse();
assertThat(zeContainer.getAdministrativeUnit()).isEqualTo(records.unitId_10a);
assertThat(zeContainer.getType()).isEqualTo("zeBoite");
assertThat(anotherContainer.getTitle()).isEqualTo("Ze ultimate identifier");
assertThat(anotherContainer.getTemporaryIdentifier()).isEqualTo("Ze temp identifier");
assertThat(anotherContainer.getIdentifier()).isEqualTo("Ze ultimate identifier");
assertThat(anotherContainer.getDescription()).isEqualTo("Ze description");
assertThat(anotherContainer.isFull()).isTrue();
assertThat(anotherContainer.getAdministrativeUnit()).isEqualTo(records.unitId_20d);
assertThat(anotherContainer.getType()).isEqualTo("zeBoite");
}
}