aboutsummaryrefslogtreecommitdiffstats
path: root/bug/operations/operation_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'bug/operations/operation_test.go')
-rw-r--r--bug/operations/operation_test.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/bug/operations/operation_test.go b/bug/operations/operation_test.go
new file mode 100644
index 00000000..1bd15f78
--- /dev/null
+++ b/bug/operations/operation_test.go
@@ -0,0 +1,57 @@
+package operations
+
+import (
+ "github.com/MichaelMure/git-bug/bug"
+ "testing"
+)
+
+// Different type with the same fields
+type CreateOperation2 struct {
+ Title string
+ Message string
+}
+
+func (op CreateOperation2) OpType() OperationType {
+ return UNKNOW
+}
+
+func (op CreateOperation2) Apply(snapshot bug.Snapshot) bug.Snapshot {
+ // no-op
+ return snapshot
+}
+
+func TestOperationsEquality(t *testing.T) {
+ var rene = bug.Person{
+ Name: "René Descartes",
+ Email: "rene@descartes.fr",
+ }
+
+ var A Operation = NewCreateOp(rene, "title", "message")
+ var B Operation = NewCreateOp(rene, "title", "message")
+ var C Operation = NewCreateOp(rene, "title", "different message")
+
+ if A != B {
+ t.Fatal("Equal value operations should be tested equals")
+ }
+
+ if A == C {
+ t.Fatal("Different value operations should be tested different")
+ }
+
+ D := CreateOperation2{Title: "title", Message: "message"}
+
+ if A == D {
+ t.Fatal("Operations equality should handle the type")
+ }
+
+ var isaac = bug.Person{
+ Name: "Isaac Newton",
+ Email: "isaac@newton.uk",
+ }
+
+ var E Operation = NewCreateOp(isaac, "title", "message")
+
+ if A == E {
+ t.Fatal("Operation equality should handle the author")
+ }
+}