/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.core.config.impl; import static org.testng.Assert.assertSame; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Map; import org.mockito.Mockito; import org.testng.annotations.Test; import org.threeten.bp.Instant; import com.google.common.collect.ImmutableMap; import com.opengamma.core.change.ChangeManager; import com.opengamma.core.config.ConfigSource; import com.opengamma.core.convention.Convention; import com.opengamma.id.ObjectId; import com.opengamma.id.UniqueId; import com.opengamma.id.VersionCorrection; import com.opengamma.util.test.TestGroup; /** * Tests the {@link VersionLockedConfigSource} class. */ @Test(groups = TestGroup.UNIT) @SuppressWarnings("deprecation") public class VersionLockedConfigSourceTest { public void test_get_Collection() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.LATEST); final Collection<UniqueId> params = Arrays.asList(UniqueId.of("Test", "Foo"), UniqueId.of("Test", "Bar")); final Map<UniqueId, ConfigItem<?>> result = ImmutableMap.<UniqueId, ConfigItem<?>>of(UniqueId.of("Test", "Foo"), Mockito.mock(ConfigItem.class), UniqueId.of("Test", "Bar"), Mockito.mock(ConfigItem.class)); Mockito.when(underlying.get(params)).thenReturn(result); assertSame(test.get(params), result); } public void test_get_Collection_VersionCorrection() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final Instant t1 = Instant.ofEpochMilli(1L); final Instant t2 = Instant.ofEpochMilli(2L); final Instant t3 = Instant.ofEpochMilli(3L); final Instant t4 = Instant.ofEpochMilli(4L); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.of(t1, t2)); Collection<ObjectId> ids = Arrays.asList(ObjectId.of("Test", "Foo"), ObjectId.of("Test", "Bar")); Map<ObjectId, ConfigItem<?>> result = ImmutableMap.<ObjectId, ConfigItem<?>>of(ObjectId.of("Test", "Foo"), Mockito.mock(ConfigItem.class), ObjectId.of("Test", "Bar"), Mockito.mock(ConfigItem.class)); Mockito.when(underlying.get(ids, VersionCorrection.of(t1, t2))).thenReturn(result); assertSame(test.get(ids, VersionCorrection.LATEST), result); assertSame(test.get(ids, VersionCorrection.ofVersionAsOf(t1)), result); assertSame(test.get(ids, VersionCorrection.ofCorrectedTo(t2)), result); result = ImmutableMap.<ObjectId, ConfigItem<?>>of(ObjectId.of("Test", "Foo"), Mockito.mock(ConfigItem.class), ObjectId.of("Test", "Bar"), Mockito.mock(ConfigItem.class)); Mockito.when(underlying.get(ids, VersionCorrection.of(t3, t2))).thenReturn(result); assertSame(test.get(ids, VersionCorrection.ofVersionAsOf(t3)), result); result = ImmutableMap.<ObjectId, ConfigItem<?>>of(ObjectId.of("Test", "Foo"), Mockito.mock(ConfigItem.class), ObjectId.of("Test", "Bar"), Mockito.mock(ConfigItem.class)); Mockito.when(underlying.get(ids, VersionCorrection.of(t1, t3))).thenReturn(result); assertSame(test.get(ids, VersionCorrection.ofCorrectedTo(t3)), result); result = ImmutableMap.<ObjectId, ConfigItem<?>>of(ObjectId.of("Test", "Foo"), Mockito.mock(ConfigItem.class), ObjectId.of("Test", "Bar"), Mockito.mock(ConfigItem.class)); Mockito.when(underlying.get(ids, VersionCorrection.of(t3, t4))).thenReturn(result); assertSame(test.get(ids, VersionCorrection.of(t3, t4)), result); } public void test_changeManager() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.LATEST); final ChangeManager result = Mockito.mock(ChangeManager.class); Mockito.when(underlying.changeManager()).thenReturn(result); assertSame(test.changeManager(), result); } @SuppressWarnings({"unchecked", "rawtypes" }) public void test_get_UniqueId() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.LATEST); final ConfigItem result = Mockito.mock(ConfigItem.class); Mockito.when(underlying.get(UniqueId.of("Test", "Foo"))).thenReturn(result); assertSame(test.get(UniqueId.of("Test", "Foo")), result); } @SuppressWarnings({"unchecked", "rawtypes" }) public void test_get_ObjectId_VersionCorrection() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final Instant t1 = Instant.ofEpochMilli(1L); final Instant t2 = Instant.ofEpochMilli(2L); final Instant t3 = Instant.ofEpochMilli(3L); final Instant t4 = Instant.ofEpochMilli(4L); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.of(t1, t2)); ConfigItem result = Mockito.mock(ConfigItem.class); Mockito.when(underlying.get(ObjectId.of("Test", "Foo"), VersionCorrection.of(t1, t2))).thenReturn(result); assertSame(test.get(ObjectId.of("Test", "Foo"), VersionCorrection.LATEST), result); assertSame(test.get(ObjectId.of("Test", "Foo"), VersionCorrection.ofVersionAsOf(t1)), result); assertSame(test.get(ObjectId.of("Test", "Foo"), VersionCorrection.ofCorrectedTo(t2)), result); result = Mockito.mock(ConfigItem.class); Mockito.when(underlying.get(ObjectId.of("Test", "Foo"), VersionCorrection.of(t3, t2))).thenReturn(result); assertSame(test.get(ObjectId.of("Test", "Foo"), VersionCorrection.ofVersionAsOf(t3)), result); result = Mockito.mock(ConfigItem.class); Mockito.when(underlying.get(ObjectId.of("Test", "Foo"), VersionCorrection.of(t1, t3))).thenReturn(result); assertSame(test.get(ObjectId.of("Test", "Foo"), VersionCorrection.ofCorrectedTo(t3)), result); result = Mockito.mock(ConfigItem.class); Mockito.when(underlying.get(ObjectId.of("Test", "Foo"), VersionCorrection.of(t3, t4))).thenReturn(result); assertSame(test.get(ObjectId.of("Test", "Foo"), VersionCorrection.of(t3, t4)), result); } @SuppressWarnings({"unchecked", "rawtypes" }) public void test_Class_String_VersionCorrection() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final Instant t1 = Instant.ofEpochMilli(1L); final Instant t2 = Instant.ofEpochMilli(2L); final Instant t3 = Instant.ofEpochMilli(3L); final Instant t4 = Instant.ofEpochMilli(4L); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.of(t1, t2)); Collection result = Collections.singleton(Mockito.mock(ConfigItem.class)); Mockito.when(underlying.get(Convention.class, "Foo", VersionCorrection.of(t1, t2))).thenReturn(result); assertSame(test.get(Convention.class, "Foo", VersionCorrection.LATEST), result); assertSame(test.get(Convention.class, "Foo", VersionCorrection.ofVersionAsOf(t1)), result); assertSame(test.get(Convention.class, "Foo", VersionCorrection.ofCorrectedTo(t2)), result); result = Collections.singleton(Mockito.mock(ConfigItem.class)); Mockito.when(underlying.get(Convention.class, "Foo", VersionCorrection.of(t3, t2))).thenReturn(result); assertSame(test.get(Convention.class, "Foo", VersionCorrection.ofVersionAsOf(t3)), result); result = Collections.singleton(Mockito.mock(ConfigItem.class)); Mockito.when(underlying.get(Convention.class, "Foo", VersionCorrection.of(t1, t3))).thenReturn(result); assertSame(test.get(Convention.class, "Foo", VersionCorrection.ofCorrectedTo(t3)), result); result = Collections.singleton(Mockito.mock(ConfigItem.class)); Mockito.when(underlying.get(Convention.class, "Foo", VersionCorrection.of(t3, t4))).thenReturn(result); assertSame(test.get(Convention.class, "Foo", VersionCorrection.of(t3, t4)), result); } @SuppressWarnings({"unchecked", "rawtypes" }) public void test_getAll_Class_VersionCorrection() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final Instant t1 = Instant.ofEpochMilli(1L); final Instant t2 = Instant.ofEpochMilli(2L); final Instant t3 = Instant.ofEpochMilli(3L); final Instant t4 = Instant.ofEpochMilli(4L); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.of(t1, t2)); Collection result = Collections.singleton(Mockito.mock(ConfigItem.class)); Mockito.when(underlying.getAll(Convention.class, VersionCorrection.of(t1, t2))).thenReturn(result); assertSame(test.getAll(Convention.class, VersionCorrection.LATEST), result); assertSame(test.getAll(Convention.class, VersionCorrection.ofVersionAsOf(t1)), result); assertSame(test.getAll(Convention.class, VersionCorrection.ofCorrectedTo(t2)), result); result = Collections.singleton(Mockito.mock(ConfigItem.class)); Mockito.when(underlying.getAll(Convention.class, VersionCorrection.of(t3, t2))).thenReturn(result); assertSame(test.getAll(Convention.class, VersionCorrection.ofVersionAsOf(t3)), result); result = Collections.singleton(Mockito.mock(ConfigItem.class)); Mockito.when(underlying.getAll(Convention.class, VersionCorrection.of(t1, t3))).thenReturn(result); assertSame(test.getAll(Convention.class, VersionCorrection.ofCorrectedTo(t3)), result); result = Collections.singleton(Mockito.mock(ConfigItem.class)); Mockito.when(underlying.getAll(Convention.class, VersionCorrection.of(t3, t4))).thenReturn(result); assertSame(test.getAll(Convention.class, VersionCorrection.of(t3, t4)), result); } public void test_getConfig_Class_UniqueId() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.LATEST); final Convention result = Mockito.mock(Convention.class); Mockito.when(underlying.getConfig(Convention.class, UniqueId.of("Test", "Foo"))).thenReturn(result); assertSame(test.getConfig(Convention.class, UniqueId.of("Test", "Foo")), result); } public void test_getConfig_Class_ObjectId_VersionCorrection() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final Instant t1 = Instant.ofEpochMilli(1L); final Instant t2 = Instant.ofEpochMilli(2L); final Instant t3 = Instant.ofEpochMilli(3L); final Instant t4 = Instant.ofEpochMilli(4L); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.of(t1, t2)); Convention result = Mockito.mock(Convention.class); Mockito.when(underlying.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.of(t1, t2))).thenReturn(result); assertSame(test.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.LATEST), result); assertSame(test.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.ofVersionAsOf(t1)), result); assertSame(test.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.ofCorrectedTo(t2)), result); result = Mockito.mock(Convention.class); Mockito.when(underlying.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.of(t3, t2))).thenReturn(result); assertSame(test.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.ofVersionAsOf(t3)), result); result = Mockito.mock(Convention.class); Mockito.when(underlying.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.of(t1, t3))).thenReturn(result); assertSame(test.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.ofCorrectedTo(t3)), result); result = Mockito.mock(Convention.class); Mockito.when(underlying.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.of(t3, t4))).thenReturn(result); assertSame(test.getConfig(Convention.class, ObjectId.of("Test", "Foo"), VersionCorrection.of(t3, t4)), result); } public void test_getSingle_Class_String_VersionCorrection() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final Instant t1 = Instant.ofEpochMilli(1L); final Instant t2 = Instant.ofEpochMilli(2L); final Instant t3 = Instant.ofEpochMilli(3L); final Instant t4 = Instant.ofEpochMilli(4L); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.of(t1, t2)); Convention result = Mockito.mock(Convention.class); Mockito.when(underlying.getSingle(Convention.class, "Foo", VersionCorrection.of(t1, t2))).thenReturn(result); assertSame(test.getSingle(Convention.class, "Foo", VersionCorrection.LATEST), result); assertSame(test.getSingle(Convention.class, "Foo", VersionCorrection.ofVersionAsOf(t1)), result); assertSame(test.getSingle(Convention.class, "Foo", VersionCorrection.ofCorrectedTo(t2)), result); result = Mockito.mock(Convention.class); Mockito.when(underlying.getSingle(Convention.class, "Foo", VersionCorrection.of(t3, t2))).thenReturn(result); assertSame(test.getSingle(Convention.class, "Foo", VersionCorrection.ofVersionAsOf(t3)), result); result = Mockito.mock(Convention.class); Mockito.when(underlying.getSingle(Convention.class, "Foo", VersionCorrection.of(t1, t3))).thenReturn(result); assertSame(test.getSingle(Convention.class, "Foo", VersionCorrection.ofCorrectedTo(t3)), result); result = Mockito.mock(Convention.class); Mockito.when(underlying.getSingle(Convention.class, "Foo", VersionCorrection.of(t3, t4))).thenReturn(result); assertSame(test.getSingle(Convention.class, "Foo", VersionCorrection.of(t3, t4)), result); } public void test_getLatestByName_Class_String() { final ConfigSource underlying = Mockito.mock(ConfigSource.class); final Instant t1 = Instant.ofEpochMilli(1L); final Instant t2 = Instant.ofEpochMilli(2L); final ConfigSource test = new VersionLockedConfigSource(underlying, VersionCorrection.of(t1, t2)); Convention result = Mockito.mock(Convention.class); Mockito.when(underlying.getSingle(Convention.class, "Foo", VersionCorrection.of(t1, t2))).thenReturn(result); assertSame(test.getLatestByName(Convention.class, "Foo"), result); } }