/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.livedata.resolver; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.testng.AssertJUnit.assertEquals; import java.util.Collections; import java.util.HashMap; import java.util.Map; import net.sf.ehcache.CacheManager; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import com.opengamma.id.ExternalId; import com.opengamma.livedata.LiveDataSpecification; import com.opengamma.livedata.normalization.StandardRules; import com.opengamma.livedata.server.DistributionSpecification; import com.opengamma.util.ehcache.EHCacheUtils; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = {TestGroup.UNIT, "ehcache"}) public class EHCachingDistributionSpecificationResolverTest { private CacheManager _cacheManager; @BeforeClass public void setUpClass() { _cacheManager = EHCacheUtils.createTestCacheManager(getClass()); } @AfterClass public void tearDownClass() { EHCacheUtils.shutdownQuiet(_cacheManager); } //------------------------------------------------------------------------- public void testCaching() { ExternalId id = ExternalId.of("foo", "bar"); LiveDataSpecification request = new LiveDataSpecification( "TestNormalization", ExternalId.of("foo", "bar")); DistributionSpecification distributionSpec = new DistributionSpecification(id, StandardRules.getNoNormalization(), "testtopic"); Map<LiveDataSpecification, DistributionSpecification> returnValue = new HashMap<LiveDataSpecification, DistributionSpecification>(); returnValue.put(request, distributionSpec); DistributionSpecificationResolver underlying = mock(DistributionSpecificationResolver.class); when(underlying.resolve(Collections.singletonList(request))).thenReturn(returnValue); EHCachingDistributionSpecificationResolver resolver = new EHCachingDistributionSpecificationResolver(underlying, _cacheManager); assertEquals(distributionSpec, resolver.resolve(request)); assertEquals(distributionSpec, resolver.resolve(request)); verify(underlying, times(1)).resolve(Collections.singletonList(request)); } }