From b8c41bd0293901e3f0283d61bcfaddef62086d34 Mon Sep 17 00:00:00 2001 From: pkupczyk <pkupczyk> Date: Mon, 17 Mar 2014 08:56:25 +0000 Subject: [PATCH] SP-1240 / BIS-677 : Data Set Size Filling Maintenance Task - more tests SVN: 31152 --- ...isDBFromPathInfoDBMaintenanceTaskTest.java | 95 ++++++++++++++++++- 1 file changed, 94 insertions(+), 1 deletion(-) diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest.java index a0f5913054a..d2b1ba13f0c 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest.java @@ -74,10 +74,14 @@ public class FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest private SimpleDataSetInformationDTO dataSet3; + private SimpleDataSetInformationDTO dataSet4; + private PathEntryDTO entry1; private PathEntryDTO entry2; + private PathEntryDTO entry4; + private BufferedAppender logRecorder; @BeforeMethod @@ -98,6 +102,8 @@ public class FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest dataSet2.setDataSetCode("DS_2"); dataSet3 = new SimpleDataSetInformationDTO(); dataSet3.setDataSetCode("DS_3"); + dataSet4 = new SimpleDataSetInformationDTO(); + dataSet4.setDataSetCode("DS_4"); entry1 = new PathEntryDTO(); entry1.setDataSetCode("DS_1"); @@ -106,6 +112,10 @@ public class FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest entry2 = new PathEntryDTO(); entry2.setDataSetCode("DS_2"); + entry4 = new PathEntryDTO(); + entry4.setDataSetCode("DS_4"); + entry4.setSizeInBytes(234L); + File storeRoot = getStoreRoot(); if (storeRoot.exists()) @@ -479,7 +489,7 @@ public class FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest } @Test - public void testExecuteWhenAllDataSetsGetFixed() + public void testExecuteWhenAllDataSetsGetFixedInOneChunk() { context.checking(new Expectations() { @@ -508,6 +518,89 @@ public class FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTaskTest assertLogThatAllDataSetsHaveBeenFixed(); } + @Test + public void testExecuteWhenAllDataSetsGetFixedInMultipleChunks() + { + final int chunkSize = 1; + + context.checking(new Expectations() + { + { + allowing(timeProvider).getTimeInMilliseconds(); + will(returnValue(0L)); + + one(service).listPhysicalDataSetsWithUnknownSize(chunkSize, null); + will(returnValue(Arrays.asList(dataSet1))); + + one(dao).listDataSetsSize(new String[] { dataSet1.getDataSetCode() }); + will(returnValue(Arrays.asList(entry1))); + + Map<String, Long> sizeMap = new HashedMap<String, Long>(); + sizeMap.put(dataSet1.getDataSetCode(), entry1.getSizeInBytes()); + + one(service).updatePhysicalDataSetsSize(sizeMap); + + one(service).listPhysicalDataSetsWithUnknownSize(chunkSize, dataSet1.getDataSetCode()); + will(returnValue(Arrays.asList(dataSet4))); + + one(dao).listDataSetsSize(new String[] { dataSet4.getDataSetCode() }); + will(returnValue(Arrays.asList(entry4))); + + sizeMap = new HashedMap<String, Long>(); + sizeMap.put(dataSet4.getDataSetCode(), entry4.getSizeInBytes()); + + one(service).updatePhysicalDataSetsSize(sizeMap); + + one(service).listPhysicalDataSetsWithUnknownSize(chunkSize, dataSet4.getDataSetCode()); + will(returnValue(Collections.emptyList())); + } + }); + + execute(null, chunkSize, null, null); + + assertLogThatAllDataSetsHaveBeenFixed(); + } + + @Test + public void testExecuteWhenAllDataSetsGetFixedStartingFromTheLastSeen() + { + TestResources resources = new TestResources(getClass()); + + final long lastSeenCreationTime = System.currentTimeMillis(); + final File lastSeenFile = resources.getResourceFile("correctLastSeenFile"); + + LastSeenDataSetFileContent lastSeenContent = new LastSeenDataSetFileContent(); + lastSeenContent.setFileCreationTime(lastSeenCreationTime); + lastSeenContent.setLastSeenDataSetCode(dataSet1.getDataSetCode()); + lastSeenContent.writeToFile(lastSeenFile); + + context.checking(new Expectations() + { + { + allowing(timeProvider).getTimeInMilliseconds(); + will(returnValue(0L)); + + one(service).listPhysicalDataSetsWithUnknownSize(CHUNK_SIZE_DEFAULT, dataSet1.getDataSetCode()); + will(returnValue(Arrays.asList(dataSet4))); + + one(dao).listDataSetsSize(new String[] { dataSet4.getDataSetCode() }); + will(returnValue(Arrays.asList(entry4))); + + Map<String, Long> sizeMap = new HashedMap<String, Long>(); + sizeMap.put(dataSet4.getDataSetCode(), entry4.getSizeInBytes()); + + one(service).updatePhysicalDataSetsSize(sizeMap); + + one(service).listPhysicalDataSetsWithUnknownSize(CHUNK_SIZE_DEFAULT, dataSet4.getDataSetCode()); + will(returnValue(Collections.emptyList())); + } + }); + + execute(null, null, lastSeenFile, null); + + assertLogThatSomeDataSetsHaveNotBeenFixedYet(); + } + private void execute(Long timeLimit, Integer chunkSize, File lastSeenFile, Long deleteLastSeenFileInterval) { FillUnknownDataSetSizeInOpenbisDBFromPathInfoDBMaintenanceTask task = -- GitLab