public void Equatable_GetHash_ShouldEqual() { var pc1 = new ProjectConfig("pc1", DateTime.UtcNow, "etag1"); var pc2 = new ProjectConfig("pc1", DateTime.UtcNow, "etag1"); var pc3 = new ProjectConfig("pc1", DateTime.UtcNow, "etag1"); HashSet <ProjectConfig> set = new HashSet <ProjectConfig>(3); Assert.IsTrue(set.Add(pc1)); Assert.IsFalse(set.Add(pc1)); Assert.IsFalse(set.Add(pc2)); Assert.IsFalse(set.Add(pc3)); Assert.AreEqual(pc1.GetHashCode(), pc2.GetHashCode()); }