package org.marketcetera.trade;
import org.marketcetera.util.misc.ClassVersion;
import org.junit.Test;
import static org.junit.Assert.*;
import java.math.BigDecimal;
import java.util.Map;
import java.util.HashMap;
/* $License$ */
/**
* Tests {@link OrderSingleSuggestion}
*
* @author anshul@marketcetera.com
* @version $Id: OrderSingleSuggestionTest.java 16154 2012-07-14 16:34:05Z colin $
* @since 1.0.0
*/
@ClassVersion("$Id: OrderSingleSuggestionTest.java 16154 2012-07-14 16:34:05Z colin $") //$NON-NLS-1$
public class OrderSingleSuggestionTest extends TypesTestBase {
/**
* Verifies default attributes of objects returned via
* {@link org.marketcetera.trade.Factory#createOrderSingleSuggestion()}
*/
@Test
public void pojoDefaults() {
OrderSingleSuggestion suggest = sFactory.createOrderSingleSuggestion();
assertSuggestionValues(suggest, null, null);
assertNull(suggest.getOrder());
//Verify toString() doesn't fail.
suggest.toString();
assertNotSame(suggest, sFactory.createOrderSingleSuggestion());
}
/**
* Verifies setters of objects returned via
* {@link org.marketcetera.trade.Factory#createOrderSingleSuggestion()}
*/
@Test
public void pojoSetters() {
OrderSingleSuggestion suggest = sFactory.createOrderSingleSuggestion();
checkSetters(suggest);
}
private void checkSetters(OrderSingleSuggestion inSuggest) {
checkSuggestionSetters(inSuggest);
inSuggest.setOrder(null);
assertNull(inSuggest.getOrder());
final OrderSingle order = sFactory.createOrderSingle();
order.setAccount("acc");
Map<String, String> custom = new HashMap<String, String>();
custom.put("343","what?");
custom.put("737","no");
order.setCustomFields(custom);
order.setBrokerID(new BrokerID("bro"));
order.setOrderCapacity(OrderCapacity.Agency);
order.setOrderID(new OrderID("orde"));
order.setOrderType(OrderType.Limit);
order.setPositionEffect(PositionEffect.Open);
order.setPrice(new BigDecimal("983.32"));
order.setQuantity(new BigDecimal("3.365"));
order.setSide(Side.Sell);
order.setInstrument(new Equity("IBM"));
order.setTimeInForce(TimeInForce.AtTheClose);
OrderSingle clone = order.clone();
inSuggest.setOrder(order);
assertNotSame(order, inSuggest.getOrder());
assertOrderSingleEquals(order, inSuggest.getOrder());
//Verify toString() doesn't fail
inSuggest.toString();
//Verify updating the order that was set doesn't change suggestion's copy
OrderSingleTest.check(order);
assertOrderSingleEquals(clone, inSuggest.getOrder());
//Verify updating returned order doesn't change suggestion's copy
OrderSingleTest.check(inSuggest.getOrder());
assertOrderSingleEquals(clone, inSuggest.getOrder());
inSuggest.setOrder(null);
assertNull(inSuggest.getOrder());
}
}