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  }