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  }