aboutsummaryrefslogtreecommitdiffstats
path: root/packfile/objects_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'packfile/objects_test.go')
-rw-r--r--packfile/objects_test.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/packfile/objects_test.go b/packfile/objects_test.go
new file mode 100644
index 0000000..07609e3
--- /dev/null
+++ b/packfile/objects_test.go
@@ -0,0 +1,55 @@
+package packfile
+
+import (
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestCalculateHash(t *testing.T) {
+ assert.Equal(t, "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", calculateHash("blob", []byte("")))
+ assert.Equal(t, "8ab686eafeb1f44702738c8b0f24f2567c36da6d", calculateHash("blob", []byte("Hello, World!\n")))
+}
+
+func TestSignature(t *testing.T) {
+ cases := map[string]Signature{
+ `Foo Bar <foo@bar.com> 1257894000 +0100`: {
+ Name: "Foo Bar",
+ Email: "foo@bar.com",
+ When: time.Unix(1257894000, 0),
+ },
+ `Foo Bar <> 1257894000 +0100`: {
+ Name: "Foo Bar",
+ Email: "",
+ When: time.Unix(1257894000, 0),
+ },
+ ` <> 1257894000`: {
+ Name: "",
+ Email: "",
+ When: time.Unix(1257894000, 0),
+ },
+ `Foo Bar <foo@bar.com>`: {
+ Name: "Foo Bar",
+ Email: "foo@bar.com",
+ When: time.Time{},
+ },
+ ``: {
+ Name: "",
+ Email: "",
+ When: time.Time{},
+ },
+ `<`: {
+ Name: "",
+ Email: "",
+ When: time.Time{},
+ },
+ }
+
+ for raw, exp := range cases {
+ got := NewSignature([]byte(raw))
+ assert.Equal(t, exp.Name, got.Name)
+ assert.Equal(t, exp.Email, got.Email)
+ assert.Equal(t, exp.When.Unix(), got.When.Unix())
+ }
+}