This is a fork of:
https://github.com/roglew/puppy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.7 KiB
82 lines
1.7 KiB
package main |
|
|
|
import ( |
|
"testing" |
|
"runtime" |
|
"time" |
|
"fmt" |
|
) |
|
|
|
func testStorage() *SQLiteStorage { |
|
s, _ := InMemoryStorage(NullLogger()) |
|
return s |
|
} |
|
|
|
func checkTags(t *testing.T, result, expected []string) { |
|
_, f, ln, _ := runtime.Caller(1) |
|
|
|
if len(result) != len(expected) { |
|
t.Errorf("Failed tag test at %s:%d. Expected %s, got %s", f, ln, expected, result) |
|
return |
|
} |
|
|
|
for i, a := range(result) { |
|
b := expected[i] |
|
if a != b { |
|
t.Errorf("Failed tag test at %s:%d. Expected %s, got %s", f, ln, expected, result) |
|
return |
|
} |
|
} |
|
} |
|
|
|
func TestTagging(t *testing.T) { |
|
req := testReq() |
|
storage := testStorage() |
|
defer storage.Close() |
|
|
|
err := SaveNewRequest(storage, req) |
|
testErr(t, err) |
|
req1, err := storage.LoadRequest(req.DbId) |
|
testErr(t, err) |
|
checkTags(t, req1.Tags(), []string{}) |
|
|
|
req.AddTag("foo") |
|
req.AddTag("bar") |
|
err = UpdateRequest(storage, req) |
|
testErr(t, err) |
|
req2, err := storage.LoadRequest(req.DbId) |
|
testErr(t, err) |
|
checkTags(t, req2.Tags(), []string{"foo", "bar"}) |
|
|
|
req.RemoveTag("foo") |
|
err = UpdateRequest(storage, req) |
|
testErr(t, err) |
|
req3, err := storage.LoadRequest(req.DbId) |
|
testErr(t, err) |
|
checkTags(t, req3.Tags(), []string{"bar"}) |
|
} |
|
|
|
|
|
func TestTime(t *testing.T) { |
|
req := testReq() |
|
req.StartDatetime = time.Unix(0, 1234567) |
|
req.EndDatetime = time.Unix(0, 2234567) |
|
storage := testStorage() |
|
defer storage.Close() |
|
|
|
err := SaveNewRequest(storage, req) |
|
testErr(t, err) |
|
|
|
req1, err := storage.LoadRequest(req.DbId) |
|
testErr(t, err) |
|
tstart := req1.StartDatetime.UnixNano() |
|
tend := req1.EndDatetime.UnixNano() |
|
|
|
if tstart != 1234567 { |
|
t.Errorf("Start time not saved properly. Expected 1234567, got %d", tstart) |
|
} |
|
|
|
if tend != 2234567 { |
|
t.Errorf("End time not saved properly. Expected 1234567, got %d", tend) |
|
} |
|
}
|
|
|