/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.core.position.impl; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertSame; import java.math.BigDecimal; import java.net.URI; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.threeten.bp.Instant; import com.opengamma.core.position.PositionSource; import com.opengamma.id.ExternalId; import com.opengamma.id.ObjectId; import com.opengamma.id.UniqueId; import com.opengamma.id.VersionCorrection; import com.opengamma.transport.jaxrs.FudgeResponse; import com.opengamma.util.test.TestGroup; import com.sun.jersey.api.client.ClientResponse.Status; /** * Tests DataPositionSourceResource. */ @Test(groups = TestGroup.UNIT) public class DataPositionSourceResourceTest { private static final ObjectId OID = ObjectId.of("Test", "A"); private static final UniqueId UID = OID.atVersion("B"); private static final VersionCorrection VC = VersionCorrection.LATEST.withLatestFixed(Instant.now()); private static final ExternalId EID = ExternalId.of("A", "B"); private PositionSource _underlying; private UriInfo _uriInfo; private DataPositionSourceResource _resource; @BeforeMethod public void setUp() { _underlying = mock(PositionSource.class); _uriInfo = mock(UriInfo.class); when(_uriInfo.getBaseUri()).thenReturn(URI.create("testhost")); _resource = new DataPositionSourceResource(_underlying); } //------------------------------------------------------------------------- @Test public void testGetPortfolioByUid() { final SimplePortfolio target = new SimplePortfolio("Test"); when(_underlying.getPortfolio(eq(UID), eq(VersionCorrection.LATEST))).thenReturn(target); final Response test = _resource.getPortfolio(OID.toString(), UID.getVersion(), null, null); assertEquals(Status.OK.getStatusCode(), test.getStatus()); assertSame(target, test.getEntity()); } @Test public void testGetPortfolioByOid() { final SimplePortfolio target = new SimplePortfolio("Test"); when(_underlying.getPortfolio(eq(OID), eq(VC))).thenReturn(target); final Response test = _resource.getPortfolio(OID.toString(), null, VC.getVersionAsOfString(), VC.getCorrectedToString()); assertEquals(Status.OK.getStatusCode(), test.getStatus()); assertSame(target, test.getEntity()); } @Test public void testGetNodeByUid() { final SimplePortfolioNode target = new SimplePortfolioNode("Test"); when(_underlying.getPortfolioNode(eq(UID), eq(VersionCorrection.LATEST))).thenReturn(target); final Response test = _resource.getNode(OID.toString(), UID.getVersion(), null, null); assertEquals(Status.OK.getStatusCode(), test.getStatus()); assertSame(target, FudgeResponse.unwrap(test.getEntity())); } @Test public void testGetPositionByUid() { final SimplePosition target = new SimplePosition(BigDecimal.ONE, EID); when(_underlying.getPosition(eq(UID))).thenReturn(target); final Response test = _resource.getPosition(OID.toString(), UID.getVersion(), null, null); assertEquals(Status.OK.getStatusCode(), test.getStatus()); assertSame(target, test.getEntity()); } @Test public void testGetPositionByOid() { final SimplePosition target = new SimplePosition(BigDecimal.ONE, EID); when(_underlying.getPosition(eq(OID), eq(VC))).thenReturn(target); final Response test = _resource.getPosition(OID.toString(), null, VC.getVersionAsOfString(), VC.getCorrectedToString()); assertEquals(Status.OK.getStatusCode(), test.getStatus()); assertSame(target, test.getEntity()); } @Test public void testGetTradeByUid() { final SimpleTrade target = new SimpleTrade(); target.setQuantity(BigDecimal.ONE); when(_underlying.getTrade(eq(UID))).thenReturn(target); final Response test = _resource.getTrade(OID.toString(), UID.getVersion()); assertEquals(Status.OK.getStatusCode(), test.getStatus()); assertSame(target, test.getEntity()); } }