From e02294c8f372156945bbc43d70d4d36a07a3fbcf Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Thu, 12 Jul 2018 21:31:41 +0200 Subject: add the first 2 operations --- bug/operations/operation_test.go | 57 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 bug/operations/operation_test.go (limited to 'bug/operations/operation_test.go') 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") + } +} -- cgit