/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.bbg.test;
import com.opengamma.bbg.referencedata.ReferenceDataProvider;
import com.opengamma.bbg.referencedata.cache.MongoDBValueCachingReferenceDataProvider;
import com.opengamma.util.mongo.MongoConnector;
import com.opengamma.util.test.MongoTestUtils;
/**
* Encapsulates settings for writing Bloomberg reference data unit testing which
* can run through the shared MongoDB cache.
*/
public class MongoCachedReferenceData {
/**
* Wraps a Bloomberg reference data provider with Mongo for caching.
*
* @param underlying the underlying provider
* @param testClass the test class, not null
* @return the wrapped provider, not null
*/
public static MongoDBValueCachingReferenceDataProvider makeMongoProvider(ReferenceDataProvider underlying, Class<?> testClass) {
return makeMongoProvider(underlying, testClass, false);
}
/**
* Wraps a Bloomberg reference data provider with Mongo for caching.
*
* @param underlying the underlying provider
* @param testClass the test class, not null
* @param makeUnique whether to make the database totally unique
* @return the wrapped provider, not null
*/
public static MongoDBValueCachingReferenceDataProvider makeMongoProvider(ReferenceDataProvider underlying, Class<?> testClass, boolean makeUnique) {
MongoConnector mongoConnector = getMongoConnector(testClass, makeUnique);
MongoDBValueCachingReferenceDataProvider mongoProvider = new MongoDBValueCachingReferenceDataProvider(underlying, mongoConnector);
return mongoProvider;
}
/**
* Creates a Mongo connector specific to the specified class.
*
* @param testClass the test class, not null
* @param makeUnique whether to make the database totally unique
* @return the connector, not null
*/
private static MongoConnector getMongoConnector(Class<?> testClass, boolean makeUnique) {
return MongoTestUtils.makeTestConnector(testClass.getSimpleName(), makeUnique);
}
}