Package com.opengamma.core.marketdatasnapshot.impl

Source Code of com.opengamma.core.marketdatasnapshot.impl.ManageableUnstructuredMarketDataSnapshotTest

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

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;

import java.util.Collections;

import org.testng.annotations.Test;

import com.google.common.collect.ImmutableSet;
import com.opengamma.core.marketdatasnapshot.ValueSnapshot;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ExternalIdBundle;
import com.opengamma.util.test.TestGroup;

/**
* Tests the {@link ManageableUnstructuredMarketDataSnapshot} class.
*/
@Test(groups = TestGroup.UNIT)
public class ManageableUnstructuredMarketDataSnapshotTest {

  private final ExternalId _eid1 = ExternalId.of("Foo", "1");
  private final ExternalId _eid2 = ExternalId.of("Foo", "2");
  private final ExternalId _eid3 = ExternalId.of("Foo", "3");

  public void testPutGetRemove_externalId() {

    final ManageableUnstructuredMarketDataSnapshot object = new ManageableUnstructuredMarketDataSnapshot();
    assertTrue(object.isEmpty());
    object.putValue(_eid1, "V1", new ValueSnapshot(11d));
    object.putValue(_eid1, "V2", new ValueSnapshot(12d));
    object.putValue(_eid2, "V1", new ValueSnapshot(21d));
    object.putValue(_eid2, "V2", new ValueSnapshot(22d));
    assertFalse(object.isEmpty());
    assertEquals(object.getTargets(), ImmutableSet.of(_eid1.toBundle(), _eid2.toBundle()));
    assertEquals(object.getValue(_eid1, "V1"), new ValueSnapshot(11d));
    assertEquals(object.getValue(_eid1, "V2"), new ValueSnapshot(12d));
    assertNull(object.getValue(_eid1, "V3"));
    assertEquals(object.getValue(_eid2, "V1"), new ValueSnapshot(21d));
    assertEquals(object.getValue(_eid2, "V2"), new ValueSnapshot(22d));
    assertNull(object.getValue(_eid2, "V3"));
    assertNull(object.getValue(_eid3, "V1"));
    assertNull(object.getValue(_eid3, "V2"));
    assertEquals(object.getValue(ExternalIdBundle.of(_eid1, _eid3), "V1"), new ValueSnapshot(11d));
    final ManageableUnstructuredMarketDataSnapshot cloned = new ManageableUnstructuredMarketDataSnapshot(object);
    object.removeValue(_eid1, "V1");
    object.removeValue(_eid2, "V1");
    assertEquals(object.getTargets(), ImmutableSet.of(_eid1.toBundle(), _eid2.toBundle()));
    assertNull(object.getValue(_eid1, "V1"));
    assertEquals(object.getValue(_eid1, "V2"), new ValueSnapshot(12d));
    assertNull(object.getValue(_eid2, "V1"));
    assertEquals(object.getValue(_eid2, "V2"), new ValueSnapshot(22d));
    object.removeValue(_eid1, "V2");
    assertEquals(object.getTargets(), ImmutableSet.of(_eid2.toBundle()));
    object.removeValue(_eid2, "V2");
    assertEquals(object.getTargets(), Collections.emptySet());
    assertTrue(object.isEmpty());
    assertEquals(cloned.getValue(_eid1, "V1"), new ValueSnapshot(11d));
    assertEquals(cloned.getValue(_eid1, "V2"), new ValueSnapshot(12d));
    assertEquals(cloned.getValue(_eid2, "V1"), new ValueSnapshot(21d));
    assertEquals(cloned.getValue(_eid2, "V2"), new ValueSnapshot(22d));
  }

  public void testPutGetRemove_externalIdBundle() {
    final ManageableUnstructuredMarketDataSnapshot object = new ManageableUnstructuredMarketDataSnapshot();
    assertTrue(object.isEmpty());
    object.putValue(ExternalIdBundle.of(_eid1, _eid2), "V1", new ValueSnapshot(1d));
    object.putValue(ExternalIdBundle.of(_eid2, _eid3), "V2", new ValueSnapshot(2d));
    assertEquals(object.getTargets(), ImmutableSet.of(ExternalIdBundle.of(_eid1, _eid2), ExternalIdBundle.of(_eid2, _eid3)));
    assertFalse(object.isEmpty());
    assertEquals(object.getValue(ExternalIdBundle.of(_eid1, _eid2), "V1"), new ValueSnapshot(1d));
    assertEquals(object.getValue(ExternalIdBundle.of(_eid1, _eid2), "V2"), new ValueSnapshot(2d));
    assertEquals(object.getValue(_eid1, "V1"), new ValueSnapshot(1d));
    assertNull(object.getValue(_eid1, "V2"));
    assertEquals(object.getValue(_eid2, "V1"), new ValueSnapshot(1d));
    assertEquals(object.getValue(_eid2, "V2"), new ValueSnapshot(2d));
    object.putValue(ExternalIdBundle.of(_eid2, _eid3), "V1", new ValueSnapshot(3d));
    assertEquals(object.getTargets(), ImmutableSet.of(ExternalIdBundle.of(_eid2, _eid3)));
    assertNull(object.getValue(_eid1, "V1"));
    assertNull(object.getValue(_eid1, "V2"));
    assertEquals(object.getValue(_eid2, "V1"), new ValueSnapshot(3d));
    assertEquals(object.getValue(_eid2, "V2"), new ValueSnapshot(2d));
    assertEquals(object.getValue(_eid3, "V1"), new ValueSnapshot(3d));
    assertEquals(object.getValue(_eid3, "V2"), new ValueSnapshot(2d));
    final ManageableUnstructuredMarketDataSnapshot cloned = new ManageableUnstructuredMarketDataSnapshot(object);
    object.removeValue(ExternalIdBundle.of(_eid2, _eid3), "V1");
    assertEquals(object.getTargets(), ImmutableSet.of(ExternalIdBundle.of(_eid2, _eid3)));
    assertNull(object.getValue(_eid2, "V1"));
    assertEquals(object.getValue(_eid2, "V2"), new ValueSnapshot(2d));
    assertNull(object.getValue(_eid3, "V1"));
    assertEquals(object.getValue(_eid3, "V2"), new ValueSnapshot(2d));
    object.removeValue(ExternalIdBundle.of(_eid1, _eid2), "V2");
    assertEquals(object.getTargets(), Collections.emptySet());
    assertTrue(object.isEmpty());
    assertEquals(cloned.getValue(_eid2, "V1"), new ValueSnapshot(3d));
    assertEquals(cloned.getValue(_eid2, "V2"), new ValueSnapshot(2d));
    assertEquals(cloned.getValue(_eid3, "V1"), new ValueSnapshot(3d));
  }

}
TOP

Related Classes of com.opengamma.core.marketdatasnapshot.impl.ManageableUnstructuredMarketDataSnapshotTest

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.