/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.livedata.server; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertTrue; import net.sf.ehcache.CacheManager; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import com.opengamma.id.ExternalScheme; import com.opengamma.util.ehcache.EHCacheUtils; import com.opengamma.util.mongo.MongoConnector; import com.opengamma.util.test.MongoTestUtils; /** * Test. */ @Test(groups = {"ehcache"}) public class MongoDBPersistentSubscriptionManagerTest { private CacheManager _cacheManager; @BeforeClass public void setUpClass() { _cacheManager = EHCacheUtils.createTestCacheManager(getClass()); } @AfterClass public void tearDownClass() { EHCacheUtils.shutdownQuiet(_cacheManager); } //------------------------------------------------------------------------- @Test(enabled=false) public void persistentSubscriptionManagement() { ExternalScheme idScheme = ExternalScheme.of("TestDomain"); MockLiveDataServer server = new MockLiveDataServer(idScheme, _cacheManager); server.connect(); MongoConnector connector = MongoTestUtils.makeTestConnector(MongoDBPersistentSubscriptionManagerTest.class.getSimpleName(), true); MongoDBPersistentSubscriptionManager manager = new MongoDBPersistentSubscriptionManager(server, connector); manager.clean(); assertTrue(manager.getPersistentSubscriptions().isEmpty()); manager.refresh(); assertTrue(manager.getPersistentSubscriptions().isEmpty()); // test setup will have cleared the db, nothing there initially manager.save(); server.subscribe("testsub1", true); server.subscribe("testsub2", true); server.subscribe("testsub3", false); server.subscribe("testsub4", false); server.subscribe("testsub5", false); manager.save(); assertEquals(2, manager.getPersistentSubscriptions().size()); assertTrue(server.getMarketDataDistributor("testsub1").isPersistent()); manager.refresh(); assertEquals(2, manager.getPersistentSubscriptions().size()); assertTrue(server.getMarketDataDistributor("testsub1").isPersistent()); boolean removed = manager.removePersistentSubscription("testsub1"); assertTrue(removed); assertEquals(1, manager.getPersistentSubscriptions().size()); assertFalse(server.getMarketDataDistributor("testsub1").isPersistent()); assertFalse(manager.removePersistentSubscription("nonexistentsub")); manager.addPersistentSubscription("testsub6"); assertEquals(2, manager.getPersistentSubscriptions().size()); assertTrue(server.getMarketDataDistributor("testsub6").isPersistent()); } }