From fe2db9239232555fdb66ffcb12083b4bd1c7affd Mon Sep 17 00:00:00 2001 From: Anthony Rubick <68485672+AnthonyMichaelTDM@users.noreply.github.com> Date: Sun, 20 Jul 2025 22:05:46 -0700 Subject: [PATCH] test: event deserialization --- src/mod/plugins/event_system_test.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/mod/plugins/event_system_test.go b/src/mod/plugins/event_system_test.go index c12f2ab..614b195 100644 --- a/src/mod/plugins/event_system_test.go +++ b/src/mod/plugins/event_system_test.go @@ -83,6 +83,31 @@ func TestEventDeSerialization(t *testing.T) { if err := zoraxy_plugin.ParseEvent(jsonData, &deserializedEvent); err != nil { t.Fatalf("Failed to parse event: %v", err) } + + // Compare the original event with the deserialized event + if deserializedEvent.Name != test.event.Name || deserializedEvent.Timestamp != test.event.Timestamp { + t.Fatalf("Deserialized event does not match original.\nGot: %+v\nWant: %+v", deserializedEvent, test.event) + } + + switch data := deserializedEvent.Data.(type) { + case *zoraxy_plugin.BlacklistedIPBlockedEvent: + originalData, ok := test.event.Data.(*zoraxy_plugin.BlacklistedIPBlockedEvent) + if !ok || *data != *originalData { + t.Fatalf("Deserialized BlacklistedIPBlockedEvent does not match original.\nGot: %+v\nWant: %+v", data, originalData) + } + case *zoraxy_plugin.AccessRuleCreatedEvent: + originalData, ok := test.event.Data.(*zoraxy_plugin.AccessRuleCreatedEvent) + if !ok || *data != *originalData { + t.Fatalf("Deserialized AccessRuleCreatedEvent does not match original.\nGot: %+v\nWant: %+v", data, originalData) + } + case *zoraxy_plugin.BlacklistToggledEvent: + originalData, ok := test.event.Data.(*zoraxy_plugin.BlacklistToggledEvent) + if !ok || *data != *originalData { + t.Fatalf("Deserialized BlacklistToggledEvent does not match original.\nGot: %+v\nWant: %+v", data, originalData) + } + default: + t.Fatalf("Unknown event type: %T", data) + } }) } }