34 lines
1.1 KiB
Go
34 lines
1.1 KiB
Go
package ingress
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"example.com/siem-greenfield/internal/contracts"
|
|
)
|
|
|
|
func TestValidateCompatiblePayload(t *testing.T) {
|
|
p := contracts.LogPayload{Hostname: "PC01", Channel: "Security", EventID: 4625, Source: "agent", Time: time.Now().UTC(), Metadata: &contracts.EventMetadataPayload{TargetUser: "alice"}}
|
|
if err := validate(&p); err != nil {
|
|
t.Fatalf("valid payload rejected: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestValidateRequiresMessageOrMetadata(t *testing.T) {
|
|
p := contracts.LogPayload{Hostname: "PC01", Channel: "Security", EventID: 4625, Source: "agent", Time: time.Now().UTC()}
|
|
if err := validate(&p); err == nil {
|
|
t.Fatal("expected validation error")
|
|
}
|
|
}
|
|
|
|
func TestBatchUIDIsDeterministic(t *testing.T) {
|
|
b := []contracts.LogPayload{{Hostname: "PC01", Channel: "Security", EventID: 4625, Source: "agent", Time: time.Date(2026, 7, 23, 12, 0, 0, 0, time.UTC), Metadata: &contracts.EventMetadataPayload{TargetUser: "alice"}}}
|
|
a := batchUID("agent-1", b)
|
|
if a == "" || a != batchUID("agent-1", b) {
|
|
t.Fatalf("batch uid is not deterministic")
|
|
}
|
|
if a == batchUID("agent-2", b) {
|
|
t.Fatalf("batch uid must be scoped to agent")
|
|
}
|
|
}
|