package com.constellio.app.modules.rm.reports.search.batchProssessing;
import com.constellio.app.modules.rm.RMTestRecords;
import com.constellio.app.modules.rm.reports.builders.BatchProssessing.BatchProcessingResultModel;
import com.constellio.app.modules.rm.reports.builders.BatchProssessing.BatchProcessingResultReportWriter;
import com.constellio.app.modules.rm.wrappers.ContainerRecord;
import com.constellio.app.modules.rm.wrappers.Document;
import com.constellio.app.modules.rm.wrappers.Folder;
import com.constellio.app.modules.tasks.model.wrappers.Task;
import com.constellio.app.reports.builders.administration.plan.ReportBuilderTestFramework;
import com.constellio.app.ui.pages.search.batchProcessing.entities.BatchProcessPossibleImpact;
import com.constellio.app.ui.pages.search.batchProcessing.entities.BatchProcessRecordFieldModification;
import com.constellio.app.ui.pages.search.batchProcessing.entities.BatchProcessRecordModifications;
import com.constellio.app.ui.pages.search.batchProcessing.entities.BatchProcessResults;
import com.constellio.model.entities.Language;
import com.constellio.model.entities.schemas.Metadata;
import com.constellio.model.entities.schemas.MetadataSchema;
import com.constellio.model.entities.schemas.MetadataSchemaType;
import com.constellio.model.entities.schemas.MetadataSchemaTypes;
import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class BatchProcessingResultReportWriterManualAcceptTest extends ReportBuilderTestFramework {
BatchProcessingResultModel model;
RMTestRecords records = new RMTestRecords(zeCollection);
@Before
public void setUp()
throws Exception {
prepareSystem(
withZeCollection().withConstellioRMModule().withAllTestUsers().withRMTest(records)
.withFoldersAndContainersOfEveryStatus()
);
}
@Test
public void whenBuildEmptyReportThenOk() {
model = new BatchProcessingResultModel(new BatchProcessResults(new ArrayList<BatchProcessRecordModifications>()), Language.French);
build(new BatchProcessingResultReportWriter(model, new Locale("fr")));
}
@Test
public void whenBuildReportWithResultsThenOk() {
model = configModel();
build(new BatchProcessingResultReportWriter(model, new Locale("fr")));
}
private BatchProcessingResultModel configModel() {
ArrayList<BatchProcessRecordModifications> modif = new ArrayList<BatchProcessRecordModifications>();
List<BatchProcessPossibleImpact> impacts1 = new ArrayList<>();
MetadataSchemaTypes types = getModelLayerFactory().getMetadataSchemasManager().getSchemaTypes(zeCollection);
MetadataSchemaType schema11 = types.getSchemaType(Folder.SCHEMA_TYPE);
MetadataSchemaType schema12 = types.getSchemaType(Document.SCHEMA_TYPE);
impacts1.add(new BatchProcessPossibleImpact(11, schema11));
impacts1.add(new BatchProcessPossibleImpact(12, schema12));
List<BatchProcessRecordFieldModification> fieldsModifs1 = new ArrayList<>();
MetadataSchema folderSchema = schema11.getDefaultSchema();
Metadata metadata1 = folderSchema.getMetadata(Folder.CATEGORY);
Metadata metadata2 = folderSchema.getMetadata(Folder.FILING_SPACE);
Metadata metadata3 = folderSchema.getMetadata(Folder.PARENT_FOLDER);
fieldsModifs1.add(0, new BatchProcessRecordFieldModification("lol11", "lol11After", metadata1));
fieldsModifs1.add(1, new BatchProcessRecordFieldModification("lol12", "lol12After", metadata2));
fieldsModifs1.add(2, new BatchProcessRecordFieldModification("lol13", "lol13After", metadata3));
BatchProcessRecordModifications modif1 = new BatchProcessRecordModifications("id1", "title1", impacts1, fieldsModifs1);
modif.add(0, modif1);
List<BatchProcessPossibleImpact> impacts2 = new ArrayList<>();
MetadataSchemaType schema21 = types.getSchemaType(ContainerRecord.SCHEMA_TYPE);
MetadataSchemaType schema22 = types.getSchemaType(Task.SCHEMA_TYPE);
impacts2.add(new BatchProcessPossibleImpact(21, schema21));
impacts2.add(new BatchProcessPossibleImpact(22, schema22));
List<BatchProcessRecordFieldModification> fieldsModifs2 = new ArrayList<>();
fieldsModifs2.add(0, new BatchProcessRecordFieldModification("lol21", "lol21After", metadata1));
fieldsModifs2.add(1, new BatchProcessRecordFieldModification("lol22", "lol22After", metadata2));
fieldsModifs2.add(2, new BatchProcessRecordFieldModification("lol23", "lol23After", metadata3));
BatchProcessRecordModifications modif2 = new BatchProcessRecordModifications("id2", "title2", impacts2, fieldsModifs2);
modif.add(1, modif2);
return new BatchProcessingResultModel(new BatchProcessResults(modif), Language.French);
}
}