blob: a6cdc354c6640ae082286e33dd43449e905398a0 [file] [log] [blame]
Jiri Simsad7616c92015-03-24 23:44:30 -07001// Copyright 2015 The Vanadium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
Asim Shankar1ac80612014-08-08 16:04:09 -07005package audit_test
6
7import (
8 "testing"
9 "time"
10
Todd Wangb3511492015-04-07 23:32:34 -070011 "v.io/x/ref/lib/security/audit"
Asim Shankar1ac80612014-08-08 16:04:09 -070012)
13
14func TestEntryString(t *testing.T) {
15 timestamp, err := time.Parse(time.RFC3339, "2014-08-08T14:39:25-07:00") // "2014-08-08 12:56:40.698493437 -0700 PDT")
16 if err != nil {
17 t.Fatal(err)
18 }
19 var (
20 onearg = []interface{}{"Arg"}
21 manyargs = []interface{}{"Arg1", "Arg2"}
22 oneresult = []interface{}{"Result"}
23 manyresults = []interface{}{"Res1", "Res2"}
24 tests = []struct {
25 Entry audit.Entry
26 String string
27 }{
28 // No results, 0, 1 or multiple arguments
29 {audit.Entry{Method: "M"}, "2014-08-08T14:39:25-07:00: M()"},
30 {audit.Entry{Method: "M", Arguments: onearg}, "2014-08-08T14:39:25-07:00: M(Arg)"},
31 {audit.Entry{Method: "M", Arguments: manyargs}, "2014-08-08T14:39:25-07:00: M(Arg1, Arg2)"},
32 // 1 result, 0, 1 or multiple arguments
33 {audit.Entry{Method: "M", Results: oneresult}, "2014-08-08T14:39:25-07:00: M() = (Result)"},
34 {audit.Entry{Method: "M", Arguments: onearg, Results: oneresult}, "2014-08-08T14:39:25-07:00: M(Arg) = (Result)"},
35 {audit.Entry{Method: "M", Arguments: manyargs, Results: oneresult}, "2014-08-08T14:39:25-07:00: M(Arg1, Arg2) = (Result)"},
36 // Multiple results, 0, 1 or multiple arguments
37 {audit.Entry{Method: "M", Results: manyresults}, "2014-08-08T14:39:25-07:00: M() = (Res1, Res2)"},
38 {audit.Entry{Method: "M", Arguments: onearg, Results: manyresults}, "2014-08-08T14:39:25-07:00: M(Arg) = (Res1, Res2)"},
39 {audit.Entry{Method: "M", Arguments: manyargs, Results: manyresults}, "2014-08-08T14:39:25-07:00: M(Arg1, Arg2) = (Res1, Res2)"},
40 }
41 )
42
43 for _, test := range tests {
44 test.Entry.Timestamp = timestamp
45 if got, want := test.Entry.String(), test.String; got != want {
46 t.Errorf("Got %q want %q for [%#v]", got, want, test.Entry)
47 }
48 }
49}