package com.constellio.app.modules.rm.extensions;
import com.constellio.app.modules.rm.services.RMSchemasRecordsServices;
import com.constellio.app.modules.tasks.model.wrappers.types.TaskType;
import com.constellio.app.modules.tasks.services.TasksSchemasRecordsServices;
import com.constellio.model.services.records.RecordServices;
import com.constellio.model.services.records.RecordServicesException;
import com.constellio.sdk.tests.ConstellioTest;
import com.constellio.sdk.tests.TestUtils;
import org.junit.Before;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
/**
* Created by Charles Blanchette on 2017-03-31.
*/
public class LockedRecordsExtensionAcceptanceTest extends ConstellioTest {
RMSchemasRecordsServices rm;
RecordServices recordServices;
TasksSchemasRecordsServices tasksSchemasRecordsServices;
@Before
public void setUp() {
prepareSystem(withZeCollection().withConstellioRMModule().withAllTestUsers());
rm = new RMSchemasRecordsServices(zeCollection, getAppLayerFactory());
recordServices = getModelLayerFactory().newRecordServices();
tasksSchemasRecordsServices = new TasksSchemasRecordsServices(zeCollection, getAppLayerFactory());
}
@Test
public void whenCheckingIfLockedRecordCodeModifiedThenFalse() throws Exception {
try {
TaskType taskType = tasksSchemasRecordsServices.getTaskTypeByCode("borrowRequest");
taskType.setCode("test");
recordServices.add(taskType);
fail("No exception was thrown");
} catch (RecordServicesException.ValidationException e) {
assertThat(e.getErrors().getValidationErrors()).hasSize(1);
assertThat(TestUtils.frenchMessages(e.getErrors()).get(0)).isEqualTo("Le code ou le schéma relié ne peuvent pas être modifiés");
}
}
@Test
public void whenCheckingIfLockedRecordLinkedSchemaModifiedThenFalse() throws Exception {
try {
TaskType taskType = tasksSchemasRecordsServices.getTaskTypeByCode("borrowRequest");
taskType.setLinkedSchema("test");
recordServices.add(taskType);
fail("No exception was thrown");
} catch (RecordServicesException.ValidationException e) {
assertThat(e.getErrors().getValidationErrors()).hasSize(1);
assertThat(TestUtils.frenchMessages(e.getErrors()).get(0)).isEqualTo("Le code ou le schéma relié ne peuvent pas être modifiés");
}
}
}