Package com.opengamma.web.security

Source Code of com.opengamma.web.security.AbstractWebSecurityResourceTestCase

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

import java.util.List;
import java.util.Map;

import javax.ws.rs.core.UriInfo;

import org.joda.beans.JodaBeanUtils;
import org.springframework.core.io.FileSystemResourceLoader;
import org.springframework.mock.web.MockServletContext;
import org.testng.annotations.BeforeMethod;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.opengamma.core.historicaltimeseries.HistoricalTimeSeriesSource;
import com.opengamma.financial.security.FinancialSecurity;
import com.opengamma.financial.security.test.AbstractSecurityTestCaseAdapter;
import com.opengamma.master.historicaltimeseries.HistoricalTimeSeriesMaster;
import com.opengamma.master.historicaltimeseries.impl.InMemoryHistoricalTimeSeriesMaster;
import com.opengamma.master.orgs.OrganizationMaster;
import com.opengamma.master.orgs.impl.InMemoryOrganizationMaster;
import com.opengamma.master.security.SecurityDocument;
import com.opengamma.master.security.SecurityLoader;
import com.opengamma.master.security.SecurityLoaderRequest;
import com.opengamma.master.security.SecurityLoaderResult;
import com.opengamma.master.security.SecurityMaster;
import com.opengamma.master.security.impl.AbstractSecurityLoader;
import com.opengamma.master.security.impl.InMemorySecurityMaster;
import com.opengamma.util.test.TestGroup;
import com.opengamma.web.FreemarkerOutputter;
import com.opengamma.web.MockUriInfo;
import com.opengamma.web.WebResourceTestUtils;

import freemarker.template.Configuration;

/**
*
*/
public abstract class AbstractWebSecurityResourceTestCase extends AbstractSecurityTestCaseAdapter {

  protected HistoricalTimeSeriesSource _htsSource;
  protected SecurityMaster _secMaster;
  protected SecurityLoader _secLoader;
  protected WebSecuritiesResource _webSecuritiesResource;
  protected Map<Class<?>, List<FinancialSecurity>> _securities = Maps.newHashMap();
  protected UriInfo _uriInfo;
  protected OrganizationMaster _orgMaster;

  @BeforeMethod(groups = TestGroup.UNIT)
  public void setUp() throws Exception {
    _uriInfo = new MockUriInfo();
    _secMaster = new InMemorySecurityMaster();
    _secLoader = new AbstractSecurityLoader() {
      @Override
      protected SecurityLoaderResult doBulkLoad(SecurityLoaderRequest request) {
        throw new UnsupportedOperationException("load security not supported");
      }
    };
    _orgMaster = new InMemoryOrganizationMaster();
   
    HistoricalTimeSeriesMaster htsMaster = new InMemoryHistoricalTimeSeriesMaster();
    addSecurity(WebResourceTestUtils.getEquitySecurity());
    addSecurity(WebResourceTestUtils.getBondFutureSecurity());
       
    _webSecuritiesResource = new WebSecuritiesResource(_secMaster, _secLoader, htsMaster, _orgMaster);
    MockServletContext sc = new MockServletContext("/web-engine", new FileSystemResourceLoader());
    Configuration cfg = FreemarkerOutputter.createConfiguration();
    cfg.setServletContextForTemplateLoading(sc, "WEB-INF/pages");
    FreemarkerOutputter.init(sc, cfg);
    _webSecuritiesResource.setServletContext(sc);
    _webSecuritiesResource.setUriInfo(_uriInfo);
   
  }

  private void addSecurity(FinancialSecurity security) {
    FinancialSecurity clone = JodaBeanUtils.clone(security);
    SecurityDocument secDoc = _secMaster.add(new SecurityDocument(security));
    List<FinancialSecurity> securities = _securities.get(clone.getClass());
    if (securities == null) {
      securities = Lists.newArrayList();
      _securities.put(clone.getClass(), securities);
    }
    securities.add((FinancialSecurity) secDoc.getSecurity());
  }

}
TOP

Related Classes of com.opengamma.web.security.AbstractWebSecurityResourceTestCase

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.