public void TestProjectEqualsWhenAllPropertiesEqual() { // Arrange var testProjectAnalyzerResult = Mock.Of <IAnalyzerResult>(); var testCase1Id = Guid.NewGuid(); var fileA = new TestFile { FilePath = "/c/", Source = "bla", Tests = new HashSet <TestCase> { new TestCase { Id = testCase1Id, Line = 1, Name = "test1", Source = "bla" }, new TestCase { Id = Guid.NewGuid(), Line = 2, Name = "test2", Source = "bla" } } }; var fileB = new TestFile { FilePath = "/c/", Source = "bla", Tests = new HashSet <TestCase> { new TestCase { Id = testCase1Id, Line = 1, Name = "test1", Source = "bla" } } }; var testProjectA = new TestProject { TestProjectAnalyzerResult = testProjectAnalyzerResult, TestFiles = new HashSet <TestFile> { fileA } }; var testProjectB = new TestProject { TestProjectAnalyzerResult = testProjectAnalyzerResult, TestFiles = new HashSet <TestFile> { fileB } }; // Assert testProjectA.ShouldBe(testProjectB); testProjectA.GetHashCode().ShouldBe(testProjectB.GetHashCode()); }