package com.activequant.trading.orderbook;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import com.activequant.domainmodel.trade.order.LimitOrder;
import com.activequant.domainmodel.trade.order.OrderSide;
import com.activequant.trading.virtual.LimitOrderBook;
import com.activequant.trading.virtual.VirtualExchange;
import com.activequant.transport.memory.InMemoryTransportFactory;
public class OrderBookTest extends TestCase {
/**
* @return the suite of tests being tested
*/
public static Test suite() {
return new TestSuite(OrderBookTest.class);
}
public void testAddingAndSorting1(){
LimitOrder o1 = new LimitOrder();
o1.setLimitPrice(100.0);
o1.setOrderSide(OrderSide.BUY);
LimitOrder o2 = new LimitOrder();
o2.setLimitPrice(101.0);
o2.setOrderSide(OrderSide.BUY);
LimitOrderBook ob = new LimitOrderBook(new VirtualExchange(new InMemoryTransportFactory()), "TESTBOOK");
ob.addOrder(o1);
ob.addOrder(o2);
assertEquals(o2, ob.buySide().get(0));
assertEquals(o1, ob.buySide().get(1));
}
public void testAddingAndSorting2(){
LimitOrder o1 = new LimitOrder();
o1.setLimitPrice(100.0);
o1.setOrderSide(OrderSide.SELL);
LimitOrder o2 = new LimitOrder();
o2.setLimitPrice(101.0);
o2.setOrderSide(OrderSide.SELL);
LimitOrderBook ob = new LimitOrderBook(new VirtualExchange(new InMemoryTransportFactory()), "TESTBOOK");
ob.addOrder(o1);
ob.addOrder(o2);
assertEquals(o1, ob.sellSide().get(0));
assertEquals(o2, ob.sellSide().get(1));
}
}