/** * */ package org.gcube.documentstore.persistence; import org.gcube.common.authorization.client.exceptions.ObjectNotFound; import org.gcube.documentstore.records.Record; import org.gcube.testutility.ScopedTest; import org.gcube.testutility.TestUsageRecord; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.couchbase.client.deps.com.fasterxml.jackson.databind.JsonNode; /** * @author Luca Frosini (ISTI - CNR) * */ public class PersistenceCouchBaseTest extends ScopedTest { private static final Logger logger = LoggerFactory.getLogger(PersistenceCouchBaseTest.class); @Test public void persistenceIsCouchBase() throws ObjectNotFound, Exception { PersistenceBackendFactory.setFallbackLocation(null); FallbackPersistenceBackend fallbackPersistenceBackend = PersistenceBackendFactory.createFallback(ScopedTest.getCurrentContext()); PersistenceBackend persistenceBackend = PersistenceBackendFactory.rediscoverPersistenceBackend(fallbackPersistenceBackend, ScopedTest.getCurrentContext()); Assert.assertTrue(persistenceBackend instanceof PersistenceCouchBase); } @Test public void persistenceIsCouchBaseForcingImmediateRediscovery() throws ObjectNotFound, Exception { PersistenceBackendFactory.setFallbackLocation(null); String context = ScopedTest.getCurrentContext(); PersistenceBackendFactory.forceImmediateRediscovery(context); PersistenceBackend persistenceBackend = PersistenceBackendFactory.getPersistenceBackend(context); Assert.assertTrue(persistenceBackend instanceof PersistenceCouchBase); } @Test public void testJsonNodeUsageRecordConversions() throws Exception { Record record = TestUsageRecord.createTestServiceUsageRecord(); logger.debug("UsageRecord : {}", record.toString()); JsonNode node = PersistenceCouchBase.usageRecordToJsonNode(record); logger.debug("Node : {}", node.toString()); Record r = PersistenceCouchBase.jsonNodeToUsageRecord(node); Assert.assertEquals(0, record.compareTo(r)); Assert.assertEquals(0, r.compareTo(record)); } @Test public void testJsonNodeUsageRecordConversionsWithNestedMap() throws Exception { Record record = TestUsageRecord.createTestTaskUsageRecord(); logger.debug("UsageRecord : {}", record.toString()); JsonNode node = PersistenceCouchBase.usageRecordToJsonNode(record); logger.debug("Node : {}", node.toString()); Record r = PersistenceCouchBase.jsonNodeToUsageRecord(node); Assert.assertEquals(0, record.compareTo(r)); Assert.assertEquals(0, r.compareTo(record)); } }