/** * */ package org.gcube.documentstore.persistence; import java.util.concurrent.TimeUnit; import org.gcube.accounting.datamodel.BasicUsageRecord; import org.gcube.accounting.datamodel.UsageRecord; import org.gcube.accounting.datamodel.basetypes.TestUsageRecord; import org.gcube.accounting.testutility.TestUtility; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.utils.StressTestUtility; import org.gcube.utils.TestOperation; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ public class PersistenceBackendMonitorTest { private static final Logger logger = LoggerFactory.getLogger(PersistenceBackendMonitorTest.class); public static final long timeout = 5000; public static final TimeUnit timeUnit = TimeUnit.MILLISECONDS; @Before public void before() throws Exception{ SecurityTokenProvider.instance.set(TestUtility.TOKEN); } @After public void after() throws Exception{ SecurityTokenProvider.instance.reset(); } @Test public void parsingTest() throws Exception { PersistenceBackendFactory.setFallbackLocation(null); final PersistenceBackend persistence = PersistenceBackendFactory.getPersistenceBackend(BasicUsageRecord.getScopeFromToken()); StressTestUtility.stressTest(new TestOperation() { @Override public void operate(int i) { UsageRecord usageRecord = null; switch (i%3) { case 0: usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); break; case 1: usageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); break; case 2: usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); break; } try { persistence.account(usageRecord); } catch (InvalidValueException e) { throw new RuntimeException(e); } } }); logger.debug(" START -----------------------------------------------"); logger.debug("Flushing the buffered records"); persistence.flush(timeout, timeUnit); logger.debug(" END -----------------------------------------------"); PersistenceBackend persistenceBackend = PersistenceBackendFactory.getPersistenceBackend(BasicUsageRecord.getScopeFromToken()); persistenceBackend.setFallback((FallbackPersistenceBackend) persistenceBackend); PersistenceBackendMonitor temporalDataPersistenceBackendMonitor = new PersistenceBackendMonitor(persistenceBackend); temporalDataPersistenceBackendMonitor.run(); } @Test public void singleParsingTest() throws Exception { PersistenceBackendFactory.setFallbackLocation(null); PersistenceBackend persistenceBackend = PersistenceBackendFactory.getPersistenceBackend(BasicUsageRecord.getScopeFromToken()); persistenceBackend.setFallback((FallbackPersistenceBackend) persistenceBackend); PersistenceBackendMonitor temporalDataPersistenceBackendMonitor = new PersistenceBackendMonitor(persistenceBackend); temporalDataPersistenceBackendMonitor.run(); } }