github.com/loomnetwork/gamechain@v0.0.0-20200406110549-36c47eb97a92/oracle/oracle_test.go (about) 1 package oracle 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestRecentHashPool(t *testing.T) { 11 recentHashPool := newRecentHashPool(4 * time.Second) 12 recentHashPool.startCleanupRoutine() 13 14 require.True(t, recentHashPool.addHash([]byte{1, 2, 3}), "adding hash for first time should succed") 15 16 require.False(t, recentHashPool.addHash([]byte{1, 2, 3}), "adding duplicate hash shouldnt be allowed") 17 18 time.Sleep(5 * time.Second) 19 20 require.True(t, recentHashPool.addHash([]byte{1, 2, 3}), "after timeout, hash should be allowed") 21 } 22 23 func TestTransferGatewayOraclePlasmachainEventSort(t *testing.T) { 24 events := []*plasmachainEventInfo{ 25 {BlockNum: 5, TxIdx: 0}, 26 {BlockNum: 5, TxIdx: 1}, 27 {BlockNum: 5, TxIdx: 4}, 28 {BlockNum: 3, TxIdx: 3}, 29 {BlockNum: 3, TxIdx: 7}, 30 {BlockNum: 3, TxIdx: 1}, 31 {BlockNum: 8, TxIdx: 4}, 32 {BlockNum: 8, TxIdx: 1}, 33 {BlockNum: 9, TxIdx: 0}, 34 {BlockNum: 10, TxIdx: 5}, 35 {BlockNum: 1, TxIdx: 2}, 36 } 37 sortedEvents := []*plasmachainEventInfo{ 38 {BlockNum: 1, TxIdx: 2}, 39 {BlockNum: 3, TxIdx: 1}, 40 {BlockNum: 3, TxIdx: 3}, 41 {BlockNum: 3, TxIdx: 7}, 42 {BlockNum: 5, TxIdx: 0}, 43 {BlockNum: 5, TxIdx: 1}, 44 {BlockNum: 5, TxIdx: 4}, 45 {BlockNum: 8, TxIdx: 1}, 46 {BlockNum: 8, TxIdx: 4}, 47 {BlockNum: 9, TxIdx: 0}, 48 {BlockNum: 10, TxIdx: 5}, 49 } 50 sortPlasmachainEvents(events) 51 require.EqualValues(t, sortedEvents, events, "wrong sort order") 52 }