{"action":"opened","issue":{"url":"https://api.github.com/repos/slvnperron/NUnit-GroupAssert/issues/2","labels_url":"https://api.github.com/repos/slvnperron/NUnit-GroupAssert/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/slvnperron/NUnit-GroupAssert/issues/2/comments","events_url":"https://api.github.com/repos/slvnperron/NUnit-GroupAssert/issues/2/events","html_url":"https://github.com/slvnperron/NUnit-GroupAssert/issues/2","id":56547494,"number":2,"title":"AssertGroup depends on object status","user":{"login":"veelenga","id":3624712,"avatar_url":"https://avatars.githubusercontent.com/u/3624712?v=3","gravatar_id":"","url":"https://api.github.com/users/veelenga","html_url":"https://github.com/veelenga","followers_url":"https://api.github.com/users/veelenga/followers","following_url":"https://api.github.com/users/veelenga/following{/other_user}","gists_url":"https://api.github.com/users/veelenga/gists{/gist_id}","starred_url":"https://api.github.com/users/veelenga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/veelenga/subscriptions","organizations_url":"https://api.github.com/users/veelenga/orgs","repos_url":"https://api.github.com/users/veelenga/repos","events_url":"https://api.github.com/users/veelenga/events{/privacy}","received_events_url":"https://api.github.com/users/veelenga/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-02-04T16:10:21Z","updated_at":"2015-02-04T16:10:21Z","closed_at":null,"body":"As group assertion depends on delayed evaluation, it does not work with mutable objects:\r\n\r\n```C#\r\n    class Sample\r\n    {\r\n        public class Obj\r\n        {\r\n            public int Value { get; set; }\r\n\r\n            public Obj(int Value)\r\n            {\r\n                this.Value = Value;\r\n            }\r\n\r\n            public override bool Equals(System.Object o)\r\n            {\r\n                if (o is Obj)\r\n                {\r\n                    return (o as Obj).Value == this.Value;\r\n                }\r\n                return false;\r\n            }\r\n\r\n        }\r\n\r\n        [Test]\r\n        public void test()\r\n        {\r\n            var group = new AssertGroup();\r\n\r\n            Obj o1 = new Obj(10);\r\n            Obj o2 = new Obj(11);\r\n\r\n            Console.WriteLine(o1.Equals(o2)); // false\r\n\r\n            group.Add(() => Assert.AreEqual(o1, o2)); // this does not fail test!!!!\r\n\r\n            o2.Value = o1.Value;\r\n\r\n            Console.WriteLine(o1.Equals(o2)); // true\r\n\r\n            group.Verify();\r\n        }\r\n    }\r\n```\r\nTest passed.\r\nAnd if you comment mutation, test will fail:\r\n````C#\r\n // o2.Value = o1.Value;\r\n````\r\n\r\nDo I expect something wrong ? Thanks"}}