com.opengamma.web.position.WebPositionsResourceTest.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.web.position.WebPositionsResourceTest.java

Source

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

import static com.opengamma.web.WebResourceTestUtils.assertJSONObjectEquals;
import static com.opengamma.web.WebResourceTestUtils.loadJson;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNotNull;

import java.util.Collections;

import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;

import org.apache.commons.lang.StringUtils;
import org.json.JSONObject;
import org.testng.annotations.Test;

import com.opengamma.util.test.TestGroup;

/**
 * Test {@link WebPositionsResource}.
 */
@Test(groups = TestGroup.UNIT)
public class WebPositionsResourceTest extends AbstractWebPositionResourceTestCase {

    @Test
    public void testAddPositionWithTrades() throws Exception {
        String tradesJson = getTradesJson();
        Response response = _webPositionsResource.postJSON("10", SEC_ID.getScheme().getName(), SEC_ID.getValue(),
                tradesJson);
        assertNotNull(response);
        assertEquals(201, response.getStatus());
        assertEquals("/positions/MemPos~1", getActualURL(response));
        assertPositionAndTrades();
    }

    @Test
    public void testAddPositionWithEmptyTrades() throws Exception {
        String tradesJson = EMPTY_TRADES;
        Response response = _webPositionsResource.postJSON("10", SEC_ID.getScheme().getName(), SEC_ID.getValue(),
                tradesJson);
        assertNotNull(response);
        assertEquals(201, response.getStatus());
        assertEquals("/positions/MemPos~1", getActualURL(response));
        assertPositionWithNoTrades();
    }

    @Test
    public void testAddPositionWithNoTrades() throws Exception {
        Response response = _webPositionsResource.postJSON("10", SEC_ID.getScheme().getName(), SEC_ID.getValue(),
                null);
        assertNotNull(response);
        assertEquals(201, response.getStatus());
        assertEquals("/positions/MemPos~1", getActualURL(response));
        assertPositionWithNoTrades();
    }

    @Test
    public void testGetAllPositions() throws Exception {
        populatePositionMaster();
        MultivaluedMap<String, String> queryParameters = _uriInfo.getQueryParameters();
        queryParameters.putSingle("identifier", StringUtils.EMPTY);
        queryParameters.putSingle("minquantity", StringUtils.EMPTY);
        queryParameters.putSingle("maxquantity", StringUtils.EMPTY);
        queryParameters.put("tradeId", Collections.<String>emptyList());
        queryParameters.put("positionId", Collections.<String>emptyList());

        String allPositions = _webPositionsResource.getJSON(null, null, null, null, null, null,
                queryParameters.get("positionId"), queryParameters.get("tradeId"));
        assertNotNull(allPositions);
        assertJSONObjectEquals(loadJson("com/opengamma/web/position/allPositionsJson.txt"),
                new JSONObject(allPositions));
    }
}