Package com.opengamma.engine.target.logger

Source Code of com.opengamma.engine.target.logger.LoggedResolutionTradeTest

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

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertSame;

import java.math.BigDecimal;
import java.util.Map;

import org.mockito.Mockito;
import org.testng.annotations.Test;
import org.threeten.bp.LocalDate;
import org.threeten.bp.OffsetTime;

import com.opengamma.core.position.Counterparty;
import com.opengamma.core.position.Trade;
import com.opengamma.core.security.Security;
import com.opengamma.core.security.SecurityLink;
import com.opengamma.core.security.impl.SimpleSecurityLink;
import com.opengamma.engine.ComputationTargetSpecification;
import com.opengamma.engine.target.ComputationTargetRequirement;
import com.opengamma.engine.target.ComputationTargetType;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ObjectId;
import com.opengamma.id.UniqueId;
import com.opengamma.util.money.Currency;
import com.opengamma.util.test.TestGroup;

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

  public void getQuantity() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    Mockito.when(trade.getQuantity()).thenReturn(BigDecimal.ONE);
    assertEquals(logged.getQuantity(), BigDecimal.ONE);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getSecurityLink() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final SecurityLink link = Mockito.mock(SecurityLink.class);
    Mockito.when(trade.getSecurityLink()).thenReturn(link);
    assertSame(logged.getSecurityLink(), link);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getSecurity_externalId() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final Security security = Mockito.mock(Security.class);
    Mockito.when(security.getUniqueId()).thenReturn(UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.when(trade.getSecurity()).thenReturn(security);
    Mockito.when(trade.getSecurityLink()).thenReturn(new SimpleSecurityLink(ExternalId.of("Foo", "Bar")));
    assertSame(logged.getSecurity(), security);
    Mockito.verify(logger).log(new ComputationTargetRequirement(ComputationTargetType.SECURITY, ExternalId.of("Foo", "Bar")), UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.verifyNoMoreInteractions(logger);
  }

  public void getSecurity_objectId() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final Security security = Mockito.mock(Security.class);
    Mockito.when(security.getUniqueId()).thenReturn(UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.when(trade.getSecurity()).thenReturn(security);
    Mockito.when(trade.getSecurityLink()).thenReturn(new SimpleSecurityLink(ObjectId.of("Foo", "Bar")));
    assertSame(logged.getSecurity(), security);
    Mockito.verify(logger).log(new ComputationTargetSpecification(ComputationTargetType.SECURITY, UniqueId.of("Foo", "Bar")), UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.verifyNoMoreInteractions(logger);
  }

  @SuppressWarnings("unchecked")
  public void getAttributes() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final Map<String, String> attributes = Mockito.mock(Map.class);
    Mockito.when(trade.getAttributes()).thenReturn(attributes);
    assertSame(logged.getAttributes(), attributes);
    Mockito.verifyZeroInteractions(logger);
  }

  @SuppressWarnings("unchecked")
  public void setAttributes() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final Map<String, String> param = Mockito.mock(Map.class);
    logged.setAttributes(param);
    Mockito.verify(trade).setAttributes(param);
    Mockito.verifyZeroInteractions(logger);
  }

  public void addAttribute() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    logged.addAttribute("Foo", "Bar");
    Mockito.verify(trade).addAttribute("Foo", "Bar");
    Mockito.verifyZeroInteractions(logger);
  }

  public void getCounterparty() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final Counterparty result = Mockito.mock(Counterparty.class);
    Mockito.when(trade.getCounterparty()).thenReturn(result);
    assertSame(logged.getCounterparty(), result);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getTradeDate() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final LocalDate result = LocalDate.now();
    Mockito.when(trade.getTradeDate()).thenReturn(result);
    assertSame(logged.getTradeDate(), result);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getTradeTime() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final OffsetTime result = OffsetTime.now();
    Mockito.when(trade.getTradeTime()).thenReturn(result);
    assertSame(logged.getTradeTime(), result);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getPremium() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final Double result = 42d;
    Mockito.when(trade.getPremium()).thenReturn(result);
    assertSame(logged.getPremium(), result);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getPremiumCurrency() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final Currency result = Currency.USD;
    Mockito.when(trade.getPremiumCurrency()).thenReturn(result);
    assertSame(logged.getPremiumCurrency(), result);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getPremiumDate() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final LocalDate result = LocalDate.now();
    Mockito.when(trade.getPremiumDate()).thenReturn(result);
    assertSame(logged.getPremiumDate(), result);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getPremiumTime() {
    final Trade trade = Mockito.mock(Trade.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Trade logged = new LoggedResolutionTrade(trade, logger);
    final OffsetTime result = OffsetTime.now();
    Mockito.when(trade.getPremiumTime()).thenReturn(result);
    assertSame(logged.getPremiumTime(), result);
    Mockito.verifyZeroInteractions(logger);
  }

}
TOP

Related Classes of com.opengamma.engine.target.logger.LoggedResolutionTradeTest

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.