package com.constellio.sdk.tests;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.joda.time.LocalDateTime;
public class SaveStateFeatureAcceptTest extends ConstellioTest {
public static final LocalDateTime DUMMY_LOCAL_DATE = new LocalDateTime(2015, 4, 21, 16, 42, 42);
public static void verifySameContentOfUnzippedSaveState(File state1TempFolder, File state2TempFolder)
throws IOException {
if (state1TempFolder.isDirectory()) {
List<String> filesInFolder1 = getFilesIn(state1TempFolder);
List<String> filesInFolder2 = getFilesIn(state2TempFolder);
assertThat(filesInFolder1).isEqualTo(filesInFolder2);
for (String file : filesInFolder1) {
verifySameContentOfUnzippedSaveState(new File(state1TempFolder, file), new File(state2TempFolder, file));
}
} else {
String file1Content = FileUtils.readFileToString(state1TempFolder);
String file2Content = FileUtils.readFileToString(state2TempFolder);
assertThat(file1Content).describedAs("File " + state1TempFolder.getAbsolutePath()).isEqualTo(file2Content);
}
}
public static List<String> getFilesIn(File folder) {
String[] files = folder.list();
if (files == null) {
return new ArrayList<>();
} else {
List<String> fileList = new ArrayList<>(asList(files));
Collections.sort(fileList);
return fileList;
}
}
}