/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.target.resolver; import static org.testng.Assert.assertEquals; import java.util.Collections; import java.util.HashSet; import java.util.Set; import org.testng.annotations.Test; import com.opengamma.core.security.SecuritySource; import com.opengamma.core.security.impl.SimpleSecurity; import com.opengamma.engine.InMemorySecuritySource; import com.opengamma.id.ExternalId; import com.opengamma.id.ExternalIdBundle; import com.opengamma.id.ObjectId; import com.opengamma.id.UniqueId; import com.opengamma.id.VersionCorrection; import com.opengamma.util.test.TestGroup; /** * Test the {@link SecuritySource} based resolvers */ @Test(groups = TestGroup.UNIT) public class SecuritySourceResolverTest { private final InMemorySecuritySource SECURITY_SOURCE = new InMemorySecuritySource(); private final SimpleSecurity SECURITY = new SimpleSecurity("TEST"); private final UniqueId BAD_ID = UniqueId.of("Bad", "Id"); private final ExternalId GOOD_ID = ExternalId.of("Good", "Id"); public SecuritySourceResolverTest() { SECURITY.addExternalId(GOOD_ID); SECURITY_SOURCE.addSecurity(SECURITY); } private SecuritySourceResolver resolver() { return new SecuritySourceResolver(SECURITY_SOURCE); } public void object_resolved() { assertEquals(resolver().resolveObject(SECURITY.getUniqueId(), VersionCorrection.LATEST), SECURITY); } public void object_unresolved() { assertEquals(resolver().resolveObject(BAD_ID, VersionCorrection.LATEST), null); } public void identifier_resolved() { assertEquals(resolver().resolveExternalId(ExternalIdBundle.of(GOOD_ID), VersionCorrection.LATEST), SECURITY.getUniqueId()); } public void identifier_unresolved() { assertEquals(resolver().resolveExternalId(ExternalIdBundle.EMPTY, VersionCorrection.LATEST), null); } public void identifier_multiple() { final Set<ExternalIdBundle> request = new HashSet<ExternalIdBundle>(); request.add(ExternalIdBundle.of(GOOD_ID)); request.add(ExternalIdBundle.EMPTY); assertEquals(resolver().resolveExternalIds(request, VersionCorrection.LATEST), Collections.singletonMap(ExternalIdBundle.of(GOOD_ID), SECURITY.getUniqueId())); } public void objectid_resolved() { assertEquals(resolver().resolveObjectId(SECURITY.getUniqueId().getObjectId(), VersionCorrection.LATEST), SECURITY.getUniqueId()); } public void objectid_unresolved() { assertEquals(resolver().resolveObjectId(BAD_ID.getObjectId(), VersionCorrection.LATEST), null); } public void objectid_multiple() { final Set<ObjectId> request = new HashSet<ObjectId>(); request.add(SECURITY.getUniqueId().getObjectId()); request.add(BAD_ID.getObjectId()); assertEquals(resolver().resolveObjectIds(request, VersionCorrection.LATEST), Collections.singletonMap(SECURITY.getUniqueId().getObjectId(), SECURITY.getUniqueId())); } }