package com.box.l10n.mojito.service.blobstorage.database; import com.box.l10n.mojito.entity.MBlob; import com.box.l10n.mojito.service.assetExtraction.ServiceTestBase; import com.box.l10n.mojito.service.blobstorage.BlobStorage; import com.box.l10n.mojito.service.blobstorage.BlobStorageTestShared; import org.joda.time.DateTime; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; public class DatabaseBlobStorageTest extends ServiceTestBase implements BlobStorageTestShared { @Autowired(required = false) DatabaseBlobStorage databaseBlobStorage; @Autowired MBlobRepository mBlobRepository; @Override public BlobStorage getBlobStorage() { return databaseBlobStorage; } // Junit 4 doesn't seem to support test in interface, might be fixed in Junit 5 - revisit with spring migration @Before @Override public void bbefore() { BlobStorageTestShared.super.bbefore(); } @Test @Override public void testNoMatchString() { BlobStorageTestShared.super.testNoMatchString(); } @Test @Override public void testNoMatchBytes() { BlobStorageTestShared.super.testNoMatchBytes(); } @Test @Override public void testMatchString() { BlobStorageTestShared.super.testMatchString(); } @Test @Override public void testMatchBytes() { BlobStorageTestShared.super.testMatchBytes(); } @Test @Override public void testMatchMin1DayRetentionString() { BlobStorageTestShared.super.testMatchMin1DayRetentionString(); } @Test @Override public void testMatchMin1DayRetentionBytes() { BlobStorageTestShared.super.testMatchMin1DayRetentionBytes(); } @Test public void testCleanup() { DateTime now = DateTime.now(); MBlob notExperied = new MBlob(); notExperied.setCreatedDate(now); notExperied.setExpireAfterSeconds(1000); notExperied = mBlobRepository.save(notExperied); MBlob experied = new MBlob(); experied.setCreatedDate(now.minusDays(1)); experied.setExpireAfterSeconds(1000); experied = mBlobRepository.save(experied); databaseBlobStorage.deleteExpired(); assertNull(mBlobRepository.findOne(experied.getId())); assertNotNull(mBlobRepository.findOne(notExperied.getId())); } }