blob: 3fd3a5e35557049f0fa0e5868de6e540edfff9eb [file] [log] [blame]
Asim Shankar1ac80612014-08-08 16:04:09 -07001package audit_test
2
3import (
4 "testing"
5 "time"
6
Jiri Simsa519c5072014-09-17 21:37:57 -07007 "veyron.io/veyron/veyron/security/audit"
Asim Shankar1ac80612014-08-08 16:04:09 -07008)
9
10func TestEntryString(t *testing.T) {
11 timestamp, err := time.Parse(time.RFC3339, "2014-08-08T14:39:25-07:00") // "2014-08-08 12:56:40.698493437 -0700 PDT")
12 if err != nil {
13 t.Fatal(err)
14 }
15 var (
16 onearg = []interface{}{"Arg"}
17 manyargs = []interface{}{"Arg1", "Arg2"}
18 oneresult = []interface{}{"Result"}
19 manyresults = []interface{}{"Res1", "Res2"}
20 tests = []struct {
21 Entry audit.Entry
22 String string
23 }{
24 // No results, 0, 1 or multiple arguments
25 {audit.Entry{Method: "M"}, "2014-08-08T14:39:25-07:00: M()"},
26 {audit.Entry{Method: "M", Arguments: onearg}, "2014-08-08T14:39:25-07:00: M(Arg)"},
27 {audit.Entry{Method: "M", Arguments: manyargs}, "2014-08-08T14:39:25-07:00: M(Arg1, Arg2)"},
28 // 1 result, 0, 1 or multiple arguments
29 {audit.Entry{Method: "M", Results: oneresult}, "2014-08-08T14:39:25-07:00: M() = (Result)"},
30 {audit.Entry{Method: "M", Arguments: onearg, Results: oneresult}, "2014-08-08T14:39:25-07:00: M(Arg) = (Result)"},
31 {audit.Entry{Method: "M", Arguments: manyargs, Results: oneresult}, "2014-08-08T14:39:25-07:00: M(Arg1, Arg2) = (Result)"},
32 // Multiple results, 0, 1 or multiple arguments
33 {audit.Entry{Method: "M", Results: manyresults}, "2014-08-08T14:39:25-07:00: M() = (Res1, Res2)"},
34 {audit.Entry{Method: "M", Arguments: onearg, Results: manyresults}, "2014-08-08T14:39:25-07:00: M(Arg) = (Res1, Res2)"},
35 {audit.Entry{Method: "M", Arguments: manyargs, Results: manyresults}, "2014-08-08T14:39:25-07:00: M(Arg1, Arg2) = (Res1, Res2)"},
36 }
37 )
38
39 for _, test := range tests {
40 test.Entry.Timestamp = timestamp
41 if got, want := test.Entry.String(), test.String; got != want {
42 t.Errorf("Got %q want %q for [%#v]", got, want, test.Entry)
43 }
44 }
45}