/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.master.legalentity.impl; import static org.testng.AssertJUnit.assertEquals; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import com.opengamma.DataNotFoundException; import com.opengamma.core.id.ExternalSchemes; import com.opengamma.id.ExternalId; import com.opengamma.id.ExternalIdBundle; import com.opengamma.id.ExternalIdSearchType; import com.opengamma.id.UniqueId; import com.opengamma.master.legalentity.LegalEntityDocument; import com.opengamma.master.legalentity.LegalEntitySearchRequest; import com.opengamma.master.legalentity.LegalEntitySearchResult; import com.opengamma.master.legalentity.ManageableLegalEntity; import com.opengamma.util.money.Currency; import com.opengamma.util.test.TestGroup; /** * Test {@link com.opengamma.master.legalentity.impl.InMemoryLegalEntityMaster}. */ @Test(groups = TestGroup.UNIT) public class InMemoryLegalEntityMasterTest { private static String NAME = "FooBar"; private static ExternalId ID_ISIN_12345 = ExternalId.of(ExternalSchemes.ISIN, "12345"); private static ExternalId ID_FOO = ExternalId.of("FOO", "979"); private static ExternalId ID_BAR = ExternalId.of("BAR", "987654"); private static ExternalId ID_OTHER1 = ExternalId.of("TEST_SCHEME", "VAL1"); private static ExternalId ID_OTHER2 = ExternalId.of("TEST_SCHEME", "VAL2"); private static ExternalIdBundle BUNDLE_FULL = ExternalIdBundle.of(ID_ISIN_12345, ID_BAR, ID_FOO); private static ExternalIdBundle BUNDLE_PART = ExternalIdBundle.of(ID_ISIN_12345, ID_FOO); private static ExternalIdBundle BUNDLE_OTHER = ExternalIdBundle.of(ID_ISIN_12345, ID_BAR, ID_OTHER1); private InMemoryLegalEntityMaster master; private LegalEntityDocument addedDoc; @BeforeMethod public void setUp() { master = new InMemoryLegalEntityMaster(); final ManageableLegalEntity inputLegalEntity = new MockLegalEntity(NAME, BUNDLE_FULL, Currency.GBP); LegalEntityDocument inputDoc = new LegalEntityDocument(inputLegalEntity); addedDoc = master.add(inputDoc); } //------------------------------------------------------------------------- @Test(expectedExceptions = DataNotFoundException.class) public void test_get_noMatch() { master.get(UniqueId.of("A", "B")); } public void test_get_match() { LegalEntityDocument result = master.get(addedDoc.getUniqueId()); assertEquals(UniqueId.of("MemLen", "1"), result.getUniqueId()); assertEquals(addedDoc, result); } //------------------------------------------------------------------------- public void test_search_oneId_noMatch() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(ID_OTHER1); LegalEntitySearchResult result = master.search(request); assertEquals(0, result.getDocuments().size()); } public void test_search_oneId_mic() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(ID_ISIN_12345); LegalEntitySearchResult result = master.search(request); assertEquals(1, result.getDocuments().size()); assertEquals(addedDoc, result.getFirstDocument()); } public void test_search_oneId_ccid() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(ID_ISIN_12345); LegalEntitySearchResult result = master.search(request); assertEquals(1, result.getDocuments().size()); assertEquals(addedDoc, result.getFirstDocument()); } //------------------------------------------------------------------------- public void test_search_oneBundle_noMatch() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(BUNDLE_OTHER); request.setExternalIdSearch(request.getExternalIdSearch().withSearchType(ExternalIdSearchType.ALL)); LegalEntitySearchResult result = master.search(request); assertEquals(0, result.getDocuments().size()); } public void test_search_oneBundle_full() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(BUNDLE_FULL); LegalEntitySearchResult result = master.search(request); assertEquals(1, result.getDocuments().size()); assertEquals(addedDoc, result.getFirstDocument()); } public void test_search_oneBundle_part() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(BUNDLE_PART); LegalEntitySearchResult result = master.search(request); assertEquals(1, result.getDocuments().size()); assertEquals(addedDoc, result.getFirstDocument()); } //------------------------------------------------------------------------- public void test_search_twoBundles_noMatch() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(); request.addExternalId(ID_OTHER1); request.addExternalId(ID_OTHER2); LegalEntitySearchResult result = master.search(request); assertEquals(0, result.getDocuments().size()); } public void test_search_twoBundles_oneMatch() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(); request.addExternalId(ID_ISIN_12345); request.addExternalId(ID_OTHER1); LegalEntitySearchResult result = master.search(request); assertEquals(1, result.getDocuments().size()); assertEquals(addedDoc, result.getFirstDocument()); } public void test_search_twoBundles_bothMatch() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(); request.addExternalId(ID_ISIN_12345); request.addExternalId(ID_FOO); LegalEntitySearchResult result = master.search(request); assertEquals(1, result.getDocuments().size()); assertEquals(addedDoc, result.getFirstDocument()); } //------------------------------------------------------------------------- public void test_search_name_noMatch() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(); request.setName("No match"); LegalEntitySearchResult result = master.search(request); assertEquals(0, result.getDocuments().size()); } public void test_search_name_match() { LegalEntitySearchRequest request = new LegalEntitySearchRequest(); request.setName(NAME); LegalEntitySearchResult result = master.search(request); assertEquals(1, result.getDocuments().size()); assertEquals(addedDoc, result.getFirstDocument()); } }