4 "github.com/vapor/application/mov/mock"
7 "github.com/vapor/application/mov/common"
8 "github.com/vapor/protocol/bc"
9 "github.com/vapor/testutil"
14 asset1 = bc.NewAssetID([32]byte{1})
15 asset2 = bc.NewAssetID([32]byte{2})
16 asset3 = bc.NewAssetID([32]byte{3})
17 asset4 = bc.NewAssetID([32]byte{4})
19 order1 = &common.Order{FromAssetID: assetID1, ToAssetID: assetID2, Rate: 0.1}
20 order2 = &common.Order{FromAssetID: assetID1, ToAssetID: assetID2, Rate: 0.2}
21 order3 = &common.Order{FromAssetID: assetID1, ToAssetID: assetID2, Rate: 0.3}
22 order4 = &common.Order{FromAssetID: assetID1, ToAssetID: assetID2, Rate: 0.4}
23 order5 = &common.Order{FromAssetID: assetID1, ToAssetID: assetID2, Rate: 0.5}
26 func TestTradePairIterator(t *testing.T) {
29 storeTradePairs []*common.TradePair
30 wantTradePairs []*common.TradePair
34 storeTradePairs: []*common.TradePair{
48 wantTradePairs: []*common.TradePair{
64 desc: "num of trade pairs more than one return",
65 storeTradePairs: []*common.TradePair{
83 wantTradePairs: []*common.TradePair{
103 desc: "store is empty",
104 storeTradePairs: []*common.TradePair{},
105 wantTradePairs: []*common.TradePair{},
109 for i, c := range cases {
110 store := mock.NewMovStore(c.storeTradePairs, nil)
111 var gotTradePairs []*common.TradePair
112 iterator := NewTradePairIterator(store)
113 for iterator.HasNext() {
114 gotTradePairs = append(gotTradePairs, iterator.Next())
116 if !testutil.DeepEqual(c.wantTradePairs, gotTradePairs) {
117 t.Errorf("#%d(%s):got trade pairs is not equals want trade pairs", i, c.desc)
122 func TestOrderIterator(t *testing.T) {
125 tradePair *common.TradePair
126 storeOrders []*common.Order
127 wantOrders []*common.Order
131 tradePair: &common.TradePair{FromAssetID: assetID1, ToAssetID: assetID2},
132 storeOrders: []*common.Order{order1, order2, order3},
133 wantOrders: []*common.Order{order1, order2, order3},
136 desc: "num of orders more than one return",
137 tradePair: &common.TradePair{FromAssetID: assetID1, ToAssetID: assetID2},
138 storeOrders: []*common.Order{order1, order2, order3, order4, order5},
139 wantOrders: []*common.Order{order1, order2, order3, order4, order5},
142 desc: "only one order",
143 tradePair: &common.TradePair{FromAssetID: assetID1, ToAssetID: assetID2},
144 storeOrders: []*common.Order{order1},
145 wantOrders: []*common.Order{order1},
148 desc: "store is empty",
149 tradePair: &common.TradePair{FromAssetID: assetID1, ToAssetID: assetID2},
150 storeOrders: []*common.Order{},
151 wantOrders: []*common.Order{},
155 for i, c := range cases {
156 store := mock.NewMovStore(nil, c.storeOrders)
158 var gotOrders []*common.Order
159 iterator := NewOrderIterator(store, c.tradePair)
160 for iterator.HasNext() {
161 gotOrders = append(gotOrders, iterator.NextBatch()...)
163 if !testutil.DeepEqual(c.wantOrders, gotOrders) {
164 t.Errorf("#%d(%s):got orders it not equals want orders", i, c.desc)