diff --git a/plugins/inputs/windows_event_log/wineventlog/wineventlogrecord_test.go b/plugins/inputs/windows_event_log/wineventlog/wineventlogrecord_test.go new file mode 100644 index 0000000000..3ecf8ec9b0 --- /dev/null +++ b/plugins/inputs/windows_event_log/wineventlog/wineventlogrecord_test.go @@ -0,0 +1,67 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: MIT + +//go:build windows +// +build windows + +package wineventlog + +import ( + "encoding/xml" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestUnmarshalWinEvtRecord(t *testing.T) { + tests := []struct { + xml string + wEvtRecord windowsEventLogRecord + }{ + { + xml: ` + + + 2022-10-28T22:33:25Z + RulesEngine + 2 + + + `, + wEvtRecord: windowsEventLogRecord{ + EventData: EventData{ + Data: []Datum{ + {"2022-10-28T22:33:25Z"}, + {"RulesEngine"}, + {"2"}, + }, + }, + }, + }, + { + xml: ` + + + + 0 + 2022-10-26T20:24:13.4253261Z + + + + `, + wEvtRecord: windowsEventLogRecord{ + UserData: UserData{ + Data: []Datum{ + {"0"}, + {"2022-10-26T20:24:13.4253261Z"}, + }, + }, + }, + }, + } + + for _, test := range tests { + record := new(windowsEventLogRecord) + xml.Unmarshal([]byte(test.xml), record) + assert.Equal(t, test.wEvtRecord, record) + } +}