feat(schema): testing utilities (#20705)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
coderabbitai[bot]
parent
6eea0ae6d2
commit
e7844e640c
@@ -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) },
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user