package com.constellio.app.modules.rm.migrations;
import com.constellio.app.services.schemasDisplay.SchemasDisplayManager;
import com.constellio.model.entities.schemas.MetadataSchema;
import com.constellio.model.entities.schemas.MetadataSchemaType;
import com.constellio.sdk.tests.ConstellioTest;
import com.constellio.sdk.tests.SDKFoldersLocator;
import org.junit.Test;
import java.io.File;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class RMMigrationTo5_1_9_AcceptanceTest extends ConstellioTest {
@Test
public void givenOldVersionWhenMigrateTo5_1_9ThenTableConfigurationOk()
throws Exception {
givenSystemAtVersion5_1_4_1();
waitForBatchProcess();
List<MetadataSchemaType> schemaTypes = getAppLayerFactory().getModelLayerFactory().getMetadataSchemasManager()
.getSchemaTypes(zeCollection).getSchemaTypes();
SchemasDisplayManager metadataSchemasDisplayManager = getAppLayerFactory().getMetadataSchemasDisplayManager();
for (MetadataSchemaType schemaType : schemaTypes) {
for (MetadataSchema metadataSchema : schemaType.getAllSchemas()) {
String code = metadataSchema.getCode();
List<String> tableMetadataCodes = metadataSchemasDisplayManager
.getSchema(zeCollection, code).getTableMetadataCodes();
if (code.contains("default") || code.equals("printable_label") || (code.startsWith("userTask") && code.contains("Request"))) {
if (!code.startsWith("event_") && !code.startsWith("printable_")) {
assertThat(tableMetadataCodes).isEqualTo(metadataSchemasDisplayManager
.getSchema(zeCollection, code).getSearchResultsMetadataCodes()).isNotEmpty();
}
} else {
assertThat(tableMetadataCodes).isEmpty();
}
}
}
}
private void givenSystemAtVersion5_1_4_1() {
givenTransactionLogIsEnabled();
File statesFolder = new SDKFoldersLocator().getInitialStatesFolder();
File state = new File(statesFolder, "given_system_in_5.1.4.1_with_tasks,rm_modules__with_manual_modifications.zip");
getCurrentTestSession().getFactoriesTestFeatures().givenSystemInState(state);
}
}