/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.core.holiday.impl; 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.assertSame; import net.sf.ehcache.CacheManager; import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.threeten.bp.Instant; import com.opengamma.core.holiday.HolidaySource; import com.opengamma.id.ObjectId; import com.opengamma.id.UniqueId; import com.opengamma.id.VersionCorrection; import com.opengamma.util.ehcache.EHCacheUtils; import com.opengamma.util.test.TestGroup; /** * Test {@link EHCachingHolidaySource}. */ @Test(groups = {TestGroup.UNIT, "ehcache" }) public class EHCachingHolidaySourceTest { private static final UniqueId UID = UniqueId.of("A", "B", "123"); private static final ObjectId OID = ObjectId.of("A", "B"); private static final VersionCorrection VC = VersionCorrection.of(Instant.now(), Instant.now()); private HolidaySource _underlyingSource; private EHCachingHolidaySource _cachingSource; private CacheManager _cacheManager; @BeforeClass public void setUpClass() { _cacheManager = EHCacheUtils.createTestCacheManager(EHCachingHolidaySourceTest.class); } @AfterClass public void tearDownClass() { EHCacheUtils.shutdownQuiet(_cacheManager); } @BeforeMethod public void setUp() { _underlyingSource = mock(HolidaySource.class); _cachingSource = new EHCachingHolidaySource(_underlyingSource, _cacheManager); } @AfterMethod public void tearDown() { _cachingSource.shutdown(); } //------------------------------------------------------------------------- public void getHoliday_uniqueId() { final SimpleHoliday h = new SimpleHoliday(); h.setUniqueId(UID); when(_underlyingSource.get(UID)).thenReturn(h); assertSame(_cachingSource.get(UID), h); assertSame(_cachingSource.get(UID), h); verify(_underlyingSource, times(1)).get(UID); } public void getHoliday_objectId() { final SimpleHoliday h = new SimpleHoliday(); h.setUniqueId(UID); when(_underlyingSource.get(OID, VC)).thenReturn(h); assertSame(_cachingSource.get(OID, VC), h); assertSame(_cachingSource.get(OID, VC), h); verify(_underlyingSource, times(1)).get(OID, VC); } }