github.com/observiq/carbon@v0.9.11-0.20200820160507-1b872e368a5e/operator/builtin/input/windows/xml_test.go (about) 1 // +build windows 2 3 package windows 4 5 import ( 6 "testing" 7 "time" 8 9 "github.com/observiq/carbon/entry" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestParseValidTimestamp(t *testing.T) { 14 xml := EventXML{ 15 TimeCreated: TimeCreated{ 16 SystemTime: "2020-07-30T01:01:01.123456789Z", 17 }, 18 } 19 timestamp := xml.parseTimestamp() 20 expected, _ := time.Parse(time.RFC3339Nano, "2020-07-30T01:01:01.123456789Z") 21 require.Equal(t, expected, timestamp) 22 } 23 24 func TestParseInvalidTimestamp(t *testing.T) { 25 xml := EventXML{ 26 TimeCreated: TimeCreated{ 27 SystemTime: "invalid", 28 }, 29 } 30 timestamp := xml.parseTimestamp() 31 require.Equal(t, time.Now().Year(), timestamp.Year()) 32 require.Equal(t, time.Now().Month(), timestamp.Month()) 33 require.Equal(t, time.Now().Day(), timestamp.Day()) 34 } 35 36 func TestParseSeverity(t *testing.T) { 37 xmlCritical := EventXML{Level: "Critical"} 38 xmlError := EventXML{Level: "Error"} 39 xmlWarning := EventXML{Level: "Warning"} 40 xmlInformation := EventXML{Level: "Information"} 41 xmlUnknown := EventXML{Level: "Unknown"} 42 require.Equal(t, entry.Critical, xmlCritical.parseSeverity()) 43 require.Equal(t, entry.Error, xmlError.parseSeverity()) 44 require.Equal(t, entry.Warning, xmlWarning.parseSeverity()) 45 require.Equal(t, entry.Info, xmlInformation.parseSeverity()) 46 require.Equal(t, entry.Default, xmlUnknown.parseSeverity()) 47 } 48 49 func TestParseRecord(t *testing.T) { 50 xml := EventXML{ 51 EventID: EventID{ 52 ID: 1, 53 Qualifiers: 2, 54 }, 55 Provider: Provider{ 56 Name: "provider", 57 GUID: "guid", 58 EventSourceName: "event source", 59 }, 60 TimeCreated: TimeCreated{ 61 SystemTime: "2020-07-30T01:01:01.123456789Z", 62 }, 63 Computer: "computer", 64 Channel: "application", 65 RecordID: 1, 66 Level: "Information", 67 Message: "message", 68 Task: "task", 69 Opcode: "opcode", 70 Keywords: []string{"keyword"}, 71 } 72 73 expected := map[string]interface{}{ 74 "event_id": map[string]interface{}{ 75 "id": uint32(1), 76 "qualifiers": uint16(2), 77 }, 78 "provider": map[string]interface{}{ 79 "name": "provider", 80 "guid": "guid", 81 "event_source": "event source", 82 }, 83 "system_time": "2020-07-30T01:01:01.123456789Z", 84 "computer": "computer", 85 "channel": "application", 86 "record_id": uint64(1), 87 "level": "Information", 88 "message": "message", 89 "task": "task", 90 "opcode": "opcode", 91 "keywords": []string{"keyword"}, 92 } 93 94 require.Equal(t, expected, xml.parseRecord()) 95 }