Add file mode indexer unit tests for watched address methods
This commit is contained in:
parent
7481861d58
commit
319b13c44e
@ -44,4 +44,5 @@ var TestConfig = Config{
|
||||
ID: "mockNodeID",
|
||||
ClientName: "go-ethereum",
|
||||
},
|
||||
WatchedAddressesFilePath: "./statediffing_watched_addresses_test_file.sql",
|
||||
}
|
||||
|
@ -1094,3 +1094,305 @@ func TestFileWatchAddressMethods(t *testing.T) {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestFileWatchAddressMethods(t *testing.T) {
|
||||
setupIndexer(t)
|
||||
defer tearDown(t)
|
||||
|
||||
type res struct {
|
||||
Address string `db:"address"`
|
||||
CreatedAt uint64 `db:"created_at"`
|
||||
WatchedAt uint64 `db:"watched_at"`
|
||||
LastFilledAt uint64 `db:"last_filled_at"`
|
||||
}
|
||||
pgStr := "SELECT * FROM eth_meta.watched_addresses"
|
||||
|
||||
t.Run("Insert watched addresses", func(t *testing.T) {
|
||||
args := []sdtypes.WatchAddressArg{
|
||||
{
|
||||
Address: contract1Address,
|
||||
CreatedAt: contract1CreatedAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
},
|
||||
}
|
||||
expectedData := []res{
|
||||
{
|
||||
Address: contract1Address,
|
||||
CreatedAt: contract1CreatedAt,
|
||||
WatchedAt: watchedAt1,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
WatchedAt: watchedAt1,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
}
|
||||
|
||||
ind.InsertWatchedAddresses(args, big.NewInt(int64(watchedAt1)))
|
||||
dumpWatchedAddressesFileData(t)
|
||||
|
||||
rows := []res{}
|
||||
err = sqlxdb.Select(&rows, pgStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectTrue(t, len(rows) == len(expectedData))
|
||||
for idx, row := range rows {
|
||||
test_helpers.ExpectEqual(t, row, expectedData[idx])
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Insert watched addresses (some already watched)", func(t *testing.T) {
|
||||
args := []sdtypes.WatchAddressArg{
|
||||
{
|
||||
Address: contract3Address,
|
||||
CreatedAt: contract3CreatedAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
},
|
||||
}
|
||||
expectedData := []res{
|
||||
{
|
||||
Address: contract1Address,
|
||||
CreatedAt: contract1CreatedAt,
|
||||
WatchedAt: watchedAt1,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
WatchedAt: watchedAt1,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
{
|
||||
Address: contract3Address,
|
||||
CreatedAt: contract3CreatedAt,
|
||||
WatchedAt: watchedAt2,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
}
|
||||
|
||||
ind.InsertWatchedAddresses(args, big.NewInt(int64(watchedAt2)))
|
||||
dumpWatchedAddressesFileData(t)
|
||||
|
||||
rows := []res{}
|
||||
err = sqlxdb.Select(&rows, pgStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectTrue(t, len(rows) == len(expectedData))
|
||||
for idx, row := range rows {
|
||||
test_helpers.ExpectEqual(t, row, expectedData[idx])
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Remove watched addresses", func(t *testing.T) {
|
||||
args := []sdtypes.WatchAddressArg{
|
||||
{
|
||||
Address: contract3Address,
|
||||
CreatedAt: contract3CreatedAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
},
|
||||
}
|
||||
expectedData := []res{
|
||||
{
|
||||
Address: contract1Address,
|
||||
CreatedAt: contract1CreatedAt,
|
||||
WatchedAt: watchedAt1,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
}
|
||||
|
||||
ind.RemoveWatchedAddresses(args)
|
||||
dumpWatchedAddressesFileData(t)
|
||||
|
||||
rows := []res{}
|
||||
err = sqlxdb.Select(&rows, pgStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectTrue(t, len(rows) == len(expectedData))
|
||||
for idx, row := range rows {
|
||||
test_helpers.ExpectEqual(t, row, expectedData[idx])
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Remove watched addresses (some non-watched)", func(t *testing.T) {
|
||||
args := []sdtypes.WatchAddressArg{
|
||||
{
|
||||
Address: contract1Address,
|
||||
CreatedAt: contract1CreatedAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
},
|
||||
}
|
||||
expectedData := []res{}
|
||||
|
||||
ind.RemoveWatchedAddresses(args)
|
||||
dumpWatchedAddressesFileData(t)
|
||||
|
||||
rows := []res{}
|
||||
err = sqlxdb.Select(&rows, pgStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectTrue(t, len(rows) == len(expectedData))
|
||||
for idx, row := range rows {
|
||||
test_helpers.ExpectEqual(t, row, expectedData[idx])
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Set watched addresses", func(t *testing.T) {
|
||||
args := []sdtypes.WatchAddressArg{
|
||||
{
|
||||
Address: contract1Address,
|
||||
CreatedAt: contract1CreatedAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
},
|
||||
{
|
||||
Address: contract3Address,
|
||||
CreatedAt: contract3CreatedAt,
|
||||
},
|
||||
}
|
||||
expectedData := []res{
|
||||
{
|
||||
Address: contract1Address,
|
||||
CreatedAt: contract1CreatedAt,
|
||||
WatchedAt: watchedAt2,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
WatchedAt: watchedAt2,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
{
|
||||
Address: contract3Address,
|
||||
CreatedAt: contract3CreatedAt,
|
||||
WatchedAt: watchedAt2,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
}
|
||||
|
||||
ind.SetWatchedAddresses(args, big.NewInt(int64(watchedAt2)))
|
||||
dumpWatchedAddressesFileData(t)
|
||||
|
||||
rows := []res{}
|
||||
err = sqlxdb.Select(&rows, pgStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectTrue(t, len(rows) == len(expectedData))
|
||||
for idx, row := range rows {
|
||||
test_helpers.ExpectEqual(t, row, expectedData[idx])
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Set watched addresses (some already watched)", func(t *testing.T) {
|
||||
args := []sdtypes.WatchAddressArg{
|
||||
{
|
||||
Address: contract4Address,
|
||||
CreatedAt: contract4CreatedAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
},
|
||||
{
|
||||
Address: contract3Address,
|
||||
CreatedAt: contract3CreatedAt,
|
||||
},
|
||||
}
|
||||
expectedData := []res{
|
||||
{
|
||||
Address: contract4Address,
|
||||
CreatedAt: contract4CreatedAt,
|
||||
WatchedAt: watchedAt3,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
{
|
||||
Address: contract2Address,
|
||||
CreatedAt: contract2CreatedAt,
|
||||
WatchedAt: watchedAt3,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
{
|
||||
Address: contract3Address,
|
||||
CreatedAt: contract3CreatedAt,
|
||||
WatchedAt: watchedAt3,
|
||||
LastFilledAt: lastFilledAt,
|
||||
},
|
||||
}
|
||||
|
||||
ind.SetWatchedAddresses(args, big.NewInt(int64(watchedAt3)))
|
||||
dumpWatchedAddressesFileData(t)
|
||||
|
||||
rows := []res{}
|
||||
err = sqlxdb.Select(&rows, pgStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectTrue(t, len(rows) == len(expectedData))
|
||||
for idx, row := range rows {
|
||||
test_helpers.ExpectEqual(t, row, expectedData[idx])
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Clear watched addresses", func(t *testing.T) {
|
||||
expectedData := []res{}
|
||||
|
||||
ind.ClearWatchedAddresses()
|
||||
dumpWatchedAddressesFileData(t)
|
||||
|
||||
rows := []res{}
|
||||
err = sqlxdb.Select(&rows, pgStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectTrue(t, len(rows) == len(expectedData))
|
||||
for idx, row := range rows {
|
||||
test_helpers.ExpectEqual(t, row, expectedData[idx])
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Clear watched addresses (empty table)", func(t *testing.T) {
|
||||
expectedData := []res{}
|
||||
|
||||
ind.ClearWatchedAddresses()
|
||||
dumpWatchedAddressesFileData(t)
|
||||
|
||||
rows := []res{}
|
||||
err = sqlxdb.Select(&rows, pgStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
expectTrue(t, len(rows) == len(expectedData))
|
||||
for idx, row := range rows {
|
||||
test_helpers.ExpectEqual(t, row, expectedData[idx])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user