Package com.opengamma.engine.marketdata

Source Code of com.opengamma.engine.marketdata.InMemoryLKVMarketDataProviderTest

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

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

import org.testng.annotations.Test;

import com.google.common.collect.ImmutableSet;
import com.opengamma.engine.ComputationTargetSpecification;
import com.opengamma.engine.marketdata.spec.LiveMarketDataSpecification;
import com.opengamma.engine.marketdata.spec.MarketData;
import com.opengamma.engine.target.ComputationTargetRequirement;
import com.opengamma.engine.value.ValueRequirement;
import com.opengamma.engine.value.ValueSpecification;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ExternalIdBundle;
import com.opengamma.id.UniqueId;
import com.opengamma.util.test.TestGroup;

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

  public void testPermissions() {
    final InMemoryLKVMarketDataProvider provider = new InMemoryLKVMarketDataProvider();
    final MarketDataPermissionProvider permissions = provider.getPermissionProvider();
    assertTrue(permissions instanceof PermissiveMarketDataPermissionProvider);
  }

  public void testCompatible() {
    final InMemoryLKVMarketDataProvider provider = new InMemoryLKVMarketDataProvider();
    assertTrue(provider.isCompatible(new LiveMarketDataSpecification()));
  }

  public void testAddRemoveValues() {
    final InMemoryLKVMarketDataProvider provider = new InMemoryLKVMarketDataProvider();
    assertTrue(provider.getAllValueKeys().isEmpty());
    provider.addValue(new ValueRequirement("Foo", ComputationTargetSpecification.NULL), "FooValue");
    assertEquals(provider.getAllValueKeys().size(), 1);
    provider.addValue(new ValueRequirement("Bar", ComputationTargetSpecification.NULL), "BarValue");
    assertEquals(provider.getAllValueKeys().size(), 2);
    final ExternalIdBundle identifiers = ExternalIdBundle.of(ExternalId.of("A", "1"), ExternalId.of("B", "1"));
    provider.addValue(new ValueRequirement("Foo", ComputationTargetRequirement.of(identifiers)), "FooValue");
    provider.addValue(new ValueRequirement("Bar", ComputationTargetRequirement.of(identifiers)), "BarValue");
    assertEquals(provider.getAllValueKeys().size(), 4);
    provider.removeValue(new ValueRequirement("Foo", ComputationTargetSpecification.NULL));
    assertEquals(provider.getAllValueKeys().size(), 3);
    provider.removeValue(new ValueRequirement("Bar", ComputationTargetSpecification.NULL));
    assertEquals(provider.getAllValueKeys().size(), 2);
  }

  public void testAvailabilityAndSnapshot() {
    final InMemoryLKVMarketDataProvider provider = new InMemoryLKVMarketDataProvider();
    ValueSpecification fooNull = provider.getAvailabilityProvider(MarketData.live()).getAvailability(ComputationTargetSpecification.NULL, null,
        new ValueRequirement("Foo", ComputationTargetSpecification.NULL));
    assertNull(fooNull);
    provider.addValue(new ValueRequirement("Foo", ComputationTargetSpecification.NULL), "FooValue1");
    fooNull = provider.getAvailabilityProvider(MarketData.live()).getAvailability(ComputationTargetSpecification.NULL, null, new ValueRequirement("Foo", ComputationTargetSpecification.NULL));
    assertNotNull(fooNull);
    provider.addValue(new ValueRequirement("Bar", ComputationTargetSpecification.NULL), "BarValue1");
    final ValueSpecification barNull = provider.getAvailabilityProvider(MarketData.live()).getAvailability(ComputationTargetSpecification.NULL, null,
        new ValueRequirement("Bar", ComputationTargetSpecification.NULL));
    assertNotNull(barNull);
    final ExternalIdBundle identifiers = ExternalIdBundle.of(ExternalId.of("A", "1"), ExternalId.of("B", "1"));
    provider.addValue(new ValueRequirement("Foo", ComputationTargetRequirement.of(identifiers)), "FooValue2");
    final ValueSpecification foo = provider.getAvailabilityProvider(MarketData.live()).getAvailability(ComputationTargetSpecification.of(UniqueId.of("X", "1")), identifiers,
        new ValueRequirement("Foo", ComputationTargetRequirement.of(identifiers)));
    assertNotNull(foo);
    assertEquals(provider.getAllValueKeys(), ImmutableSet.of(fooNull, barNull, foo));
    assertEquals(provider.getCurrentValue(fooNull), "FooValue1");
    assertEquals(provider.getCurrentValue(barNull), "BarValue1");
    assertEquals(provider.getCurrentValue(foo), "FooValue2");
    MarketDataSnapshot snapshot = provider.snapshot(MarketData.live());
    snapshot.init();
    provider.addValue(fooNull, "FooValue3");
    assertEquals(provider.getCurrentValue(fooNull), "FooValue3");
    assertEquals(snapshot.query(fooNull), "FooValue1");
    assertEquals(snapshot.query(barNull), "BarValue1");
    assertEquals(snapshot.query(foo), "FooValue2");
    snapshot = provider.snapshot(MarketData.live());
    snapshot.init();
    assertEquals(snapshot.query(fooNull), "FooValue3");
  }

}
TOP

Related Classes of com.opengamma.engine.marketdata.InMemoryLKVMarketDataProviderTest

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.