Package com.opengamma.master.marketdatasnapshot.impl

Source Code of com.opengamma.master.marketdatasnapshot.impl.InMemorySnapshotMasterTest

/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.master.marketdatasnapshot.impl;

import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNotNull;
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertSame;

import java.util.HashMap;
import java.util.List;

import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableSet;
import com.opengamma.DataNotFoundException;
import com.opengamma.core.marketdatasnapshot.YieldCurveKey;
import com.opengamma.core.marketdatasnapshot.YieldCurveSnapshot;
import com.opengamma.core.marketdatasnapshot.impl.ManageableMarketDataSnapshot;
import com.opengamma.core.marketdatasnapshot.impl.ManageableUnstructuredMarketDataSnapshot;
import com.opengamma.id.ObjectId;
import com.opengamma.id.ObjectIdSupplier;
import com.opengamma.id.UniqueId;
import com.opengamma.master.marketdatasnapshot.MarketDataSnapshotDocument;
import com.opengamma.master.marketdatasnapshot.MarketDataSnapshotHistoryRequest;
import com.opengamma.master.marketdatasnapshot.MarketDataSnapshotHistoryResult;
import com.opengamma.master.marketdatasnapshot.MarketDataSnapshotSearchRequest;
import com.opengamma.master.marketdatasnapshot.MarketDataSnapshotSearchResult;
import com.opengamma.util.test.TestGroup;

/**
* Test {@link InMemorySnapshotMaster}.
*/
@Test(groups = TestGroup.UNIT)
public class InMemorySnapshotMasterTest {

  // TODO Move the logical tests from here to the generic SnapshotMasterTestCase then we can just extend from that

  private static final UniqueId OTHER_UID = UniqueId.of("U", "1");
  private static final ManageableMarketDataSnapshot SNAP1 = new ManageableMarketDataSnapshot("Test 1", new ManageableUnstructuredMarketDataSnapshot(),new HashMap<YieldCurveKey, YieldCurveSnapshot>(12));
  private static final ManageableMarketDataSnapshot SNAP2 = new ManageableMarketDataSnapshot("Test 2", new ManageableUnstructuredMarketDataSnapshot(),new HashMap<YieldCurveKey, YieldCurveSnapshot>(12));
 

  private InMemorySnapshotMaster _testEmpty;
  private InMemorySnapshotMaster _testPopulated;
  private MarketDataSnapshotDocument _doc1;
  private MarketDataSnapshotDocument _doc2;

  @BeforeMethod
  public void setUp() {
    _testEmpty = new InMemorySnapshotMaster(new ObjectIdSupplier("Test"));
    _testPopulated = new InMemorySnapshotMaster(new ObjectIdSupplier("Test"));
    _doc1 = new MarketDataSnapshotDocument();
    _doc1.setSnapshot(SNAP1);
    _doc1 = _testPopulated.add(_doc1);
    _doc2 = new MarketDataSnapshotDocument();
    _doc2.setSnapshot(SNAP2);
    _doc2 = _testPopulated.add(_doc2);
  }

  //-------------------------------------------------------------------------
  @Test(expectedExceptions = IllegalArgumentException.class)
  public void test_constructor_nullSupplier() {
    new InMemorySnapshotMaster((Supplier<ObjectId>) null);
  }

  public void test_defaultSupplier() {
    InMemorySnapshotMaster master = new InMemorySnapshotMaster();
    MarketDataSnapshotDocument doc = new MarketDataSnapshotDocument();
    doc.setSnapshot(SNAP1);
    MarketDataSnapshotDocument added = master.add(doc);
    assertEquals("MemSnap", added.getUniqueId().getScheme());
  }

  public void test_alternateSupplier() {
    InMemorySnapshotMaster master = new InMemorySnapshotMaster(new ObjectIdSupplier("Hello"));
    MarketDataSnapshotDocument doc = new MarketDataSnapshotDocument();
    doc.setSnapshot(SNAP1);
    MarketDataSnapshotDocument added = master.add(doc);
    assertEquals("Hello", added.getUniqueId().getScheme());
  }

  //-------------------------------------------------------------------------
  public void test_search_emptyMaster() {
    MarketDataSnapshotSearchRequest request = new MarketDataSnapshotSearchRequest();
    MarketDataSnapshotSearchResult result = _testEmpty.search(request);
    assertEquals(0, result.getPaging().getTotalItems());
    assertEquals(0, result.getDocuments().size());
  }

  public void test_search_populatedMaster_all() {
    MarketDataSnapshotSearchRequest request = new MarketDataSnapshotSearchRequest();
    MarketDataSnapshotSearchResult result = _testPopulated.search(request);
    assertEquals(2, result.getPaging().getTotalItems());
    List<MarketDataSnapshotDocument> docs = result.getDocuments();
    assertEquals(2, docs.size());
    assertEquals(true, docs.contains(_doc1));
    assertEquals(true, docs.contains(_doc2));
  }

  public void test_search_populatedMaster_filterByName() {
    MarketDataSnapshotSearchRequest request = new MarketDataSnapshotSearchRequest();
    request.setName("*est 2");
    MarketDataSnapshotSearchResult result = _testPopulated.search(request);
    assertEquals(1, result.getPaging().getTotalItems());
    List<MarketDataSnapshotDocument> docs = result.getDocuments();
    assertEquals(1, docs.size());
    assertEquals(true, docs.contains(_doc2));
  }
 
  public void test_search_populatedMaster_filterById() {
    MarketDataSnapshotSearchRequest request = new MarketDataSnapshotSearchRequest();
    request.setSnapshotIds(ImmutableSet.of(_doc1.getUniqueId().getObjectId()));
    MarketDataSnapshotSearchResult result = _testPopulated.search(request);
    assertEquals(1, result.getPaging().getTotalItems());
    MarketDataSnapshotDocument doc = result.getFirstDocument();
    assertEquals(_doc1.getUniqueId(), doc.getUniqueId());
  }

  public void test_history_emptyMaster() {
    MarketDataSnapshotHistoryRequest request = new MarketDataSnapshotHistoryRequest();
    request.setObjectId(_doc1.getUniqueId().getObjectId());
    MarketDataSnapshotHistoryResult result = _testEmpty.history(request);
    assertEquals(0, result.getPaging().getTotalItems());
    assertEquals(0, result.getDocuments().size());
  }

  public void test_history_populatedMaster() {
    MarketDataSnapshotHistoryRequest request = new MarketDataSnapshotHistoryRequest();
    request.setObjectId(_doc1.getUniqueId().getObjectId());
    MarketDataSnapshotHistoryResult result = _testPopulated.history(request);
    assertEquals(1, result.getPaging().getTotalItems());
    assertEquals(1, result.getDocuments().size());
  }

  //-------------------------------------------------------------------------
  @Test(expectedExceptions = DataNotFoundException.class)
  public void test_get_emptyMaster() {
    assertNull(_testEmpty.get(OTHER_UID));
  }

  public void test_get_populatedMaster() {
    assertSame(_doc1, _testPopulated.get(_doc1.getUniqueId()));
    assertSame(_doc2, _testPopulated.get(_doc2.getUniqueId()));
  }

  //-------------------------------------------------------------------------
  public void test_add_emptyMaster() {
    MarketDataSnapshotDocument doc = new MarketDataSnapshotDocument();
    doc.setSnapshot(SNAP1);
    MarketDataSnapshotDocument added = _testEmpty.add(doc);
    assertNotNull(added.getVersionFromInstant());
    assertNotNull(added.getCorrectionFromInstant());
    assertEquals(added.getVersionFromInstant(), added.getCorrectionFromInstant());
    assertEquals("Test", added.getUniqueId().getScheme());
    assertSame(SNAP1, added.getSnapshot());
  }

  //-------------------------------------------------------------------------
  @Test(expectedExceptions = DataNotFoundException.class)
  public void test_update_emptyMaster() {
    MarketDataSnapshotDocument doc = new MarketDataSnapshotDocument();
    doc.setSnapshot(SNAP1);
    doc.setUniqueId(OTHER_UID);
    _testEmpty.update(doc);
  }

  public void test_update_populatedMaster() {
    MarketDataSnapshotDocument doc = new MarketDataSnapshotDocument();
    doc.setSnapshot(SNAP1);
    doc.setUniqueId(_doc1.getUniqueId());
    MarketDataSnapshotDocument updated = _testPopulated.update(doc);
    assertEquals(_doc1.getUniqueId(), updated.getUniqueId());
    assertNotNull(_doc1.getVersionFromInstant());
    assertNotNull(updated.getVersionFromInstant());
  }

  //-------------------------------------------------------------------------
  @Test(expectedExceptions = DataNotFoundException.class)
  public void test_remove_emptyMaster() {
    _testEmpty.remove(OTHER_UID);
  }

  public void test_remove_populatedMaster() {
    _testPopulated.remove(_doc1.getUniqueId());
    MarketDataSnapshotSearchRequest request = new MarketDataSnapshotSearchRequest();
    MarketDataSnapshotSearchResult result = _testPopulated.search(request);
    assertEquals(1, result.getPaging().getTotalItems());
    List<MarketDataSnapshotDocument> docs = result.getDocuments();
    assertEquals(1, docs.size());
    assertEquals(true, docs.contains(_doc2));
  }

}
TOP

Related Classes of com.opengamma.master.marketdatasnapshot.impl.InMemorySnapshotMasterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.