public StorageSizeWithTimeLimitLogUploadStrategy(int volumeThreshold, long timeLimit, TimeUnit timeUnit) { setUploadCheckPeriod((int) timeUnit.toSeconds(timeLimit)); setVolumeThreshold(volumeThreshold); }
@Test public void testEqualToRecordThresholdCount() { int thresholdVolume = 5; int uploadCheckPeriod = 2000; // 2 Sec LogStorageStatus logStorageStatus = Mockito.mock(LogStorageStatus.class); Mockito.when(logStorageStatus.getConsumedVolume()).thenReturn((long) thresholdVolume); StorageSizeWithTimeLimitLogUploadStrategy strategy = new StorageSizeWithTimeLimitLogUploadStrategy(thresholdVolume, uploadCheckPeriod, TimeUnit.MILLISECONDS); Assert.assertEquals(strategy.checkUploadNeeded(logStorageStatus), LogUploadStrategyDecision.UPLOAD); }
@Test public void testLessThanRecordThresholdCount() { int thresholdVolume = 5; int uploadCheckPeriod = 2000; // 2 Sec LogStorageStatus logStorageStatus = Mockito.mock(LogStorageStatus.class); Mockito.when(logStorageStatus.getConsumedVolume()).thenReturn((long) (thresholdVolume - 1)); StorageSizeWithTimeLimitLogUploadStrategy strategy = new StorageSizeWithTimeLimitLogUploadStrategy(thresholdVolume, uploadCheckPeriod, TimeUnit.MILLISECONDS); Assert.assertEquals(strategy.checkUploadNeeded(logStorageStatus), LogUploadStrategyDecision.NOOP); }
@Test public void testGreaterThanRecordThresholdCount() { int thresholdVolume = 5; int uploadCheckPeriod = 2000; // 2 Sec LogStorageStatus logStorageStatus = Mockito.mock(LogStorageStatus.class); Mockito.when(logStorageStatus.getConsumedVolume()).thenReturn((long) (thresholdVolume + 1)); StorageSizeWithTimeLimitLogUploadStrategy strategy = new StorageSizeWithTimeLimitLogUploadStrategy(thresholdVolume, uploadCheckPeriod, TimeUnit.MILLISECONDS); Assert.assertEquals(strategy.checkUploadNeeded(logStorageStatus), LogUploadStrategyDecision.UPLOAD); }
@Test public void testUploadAfterSomeTime() throws InterruptedException { int thresholdVolume = 5; int uploadCheckPeriod = 2000; // 2 Sec LogStorageStatus logStorageStatus = Mockito.mock(LogStorageStatus.class); Mockito.when(logStorageStatus.getConsumedVolume()).thenReturn((long) 0); StorageSizeWithTimeLimitLogUploadStrategy strategy = new StorageSizeWithTimeLimitLogUploadStrategy(thresholdVolume, uploadCheckPeriod, TimeUnit.MILLISECONDS); Assert.assertEquals(strategy.checkUploadNeeded(logStorageStatus), LogUploadStrategyDecision.NOOP); Thread.sleep(uploadCheckPeriod / 2); Assert.assertEquals(strategy.checkUploadNeeded(logStorageStatus), LogUploadStrategyDecision.NOOP); Thread.sleep(uploadCheckPeriod / 2); Assert.assertEquals(strategy.checkUploadNeeded(logStorageStatus), LogUploadStrategyDecision.UPLOAD); Thread.sleep(uploadCheckPeriod / 2); Assert.assertEquals(strategy.checkUploadNeeded(logStorageStatus), LogUploadStrategyDecision.NOOP); Thread.sleep(uploadCheckPeriod / 2); Assert.assertEquals(strategy.checkUploadNeeded(logStorageStatus), LogUploadStrategyDecision.UPLOAD); }