feat(schema): testing utilities (#20705)

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
Aaron Craelius
2024-07-31 06:58:30 +00:00
committed by GitHub
co-authored by coderabbitai[bot]
parent 6eea0ae6d2
commit e7844e640c
40 changed files with 2147 additions and 2 deletions
+15
View File
@@ -0,0 +1,15 @@
package appdata
// PacketForwarder creates a listener which listens to all callbacks and forwards all packets to the provided
// function. This is intended to be used primarily for tests and debugging.
func PacketForwarder(f func(Packet) error) Listener {
return Listener{
InitializeModuleData: func(data ModuleInitializationData) error { return f(data) },
OnTx: func(data TxData) error { return f(data) },
OnEvent: func(data EventData) error { return f(data) },
OnKVPair: func(data KVPairData) error { return f(data) },
OnObjectUpdate: func(data ObjectUpdateData) error { return f(data) },
StartBlock: func(data StartBlockData) error { return f(data) },
Commit: func(data CommitData) error { return f(data) },
}
}
+39
View File
@@ -0,0 +1,39 @@
package appdata
import (
"reflect"
"testing"
)
func TestPacketForwarder(t *testing.T) {
var received []Packet
listener := PacketForwarder(func(packet Packet) error {
received = append(received, packet)
return nil
})
expected := []Packet{
ModuleInitializationData{},
StartBlockData{},
TxData{},
EventData{},
KVPairData{},
ObjectUpdateData{},
CommitData{},
}
for i, packet := range expected {
err := listener.SendPacket(packet)
if err != nil {
t.Fatal(err)
}
if len(received) != i+1 {
t.Fatalf("didn't receive packet %v", packet)
}
if !reflect.DeepEqual(received[i], packet) {
t.Fatalf("received packet %v, expected %v", received[i], packet)
}
}
}