{"action":"closed","issue":{"url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/755","labels_url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/755/labels{/name}","comments_url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/755/comments","events_url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/755/events","html_url":"https://github.com/rubberduck-vba/Rubberduck/issues/755","id":103555521,"number":755,"title":"Implement a more permissive AssertClass","user":{"login":"retailcoder","id":5751684,"avatar_url":"https://avatars.githubusercontent.com/u/5751684?v=3","gravatar_id":"","url":"https://api.github.com/users/retailcoder","html_url":"https://github.com/retailcoder","followers_url":"https://api.github.com/users/retailcoder/followers","following_url":"https://api.github.com/users/retailcoder/following{/other_user}","gists_url":"https://api.github.com/users/retailcoder/gists{/gist_id}","starred_url":"https://api.github.com/users/retailcoder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/retailcoder/subscriptions","organizations_url":"https://api.github.com/users/retailcoder/orgs","repos_url":"https://api.github.com/users/retailcoder/repos","events_url":"https://api.github.com/users/retailcoder/events{/privacy}","received_events_url":"https://api.github.com/users/retailcoder/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/labels/enhancement","name":"enhancement","color":"FEFEFE"},{"url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/labels/unit-testing","name":"unit-testing","color":"DDDDDd"},{"url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/labels/up-for-grabs","name":"up-for-grabs","color":"009800"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-08-27T17:19:13Z","updated_at":"2015-09-22T19:05:28Z","closed_at":"2015-09-22T19:05:28Z","body":"The COM-visible `Rubberduck.AssertClass` is implementing `AreEqual` in a type-safe way that is *expected* in .net but that can be surprising in VBA:\r\n\r\n            if (expected.GetType() != actual.GetType())\r\n            {\r\n                AssertHandler.OnAssertInconclusive(\"[expected] and [actual] values are not the same type.\");\r\n                return;\r\n            }\r\n\r\nLet's implement and expose a `PermissiveAssertClass` that implements equality checks in a more VBA-like way - this involves type checks, casts and `TryParse` calls that will probably impact performance, but if done right can enhance usability."}}