public void ShouldExhibitValueTypeEquality() { ResourceId resourceId1 = new ResourceId("A"); ResourceId resourceId2 = new ResourceId("A"); ResourceId resourceId3 = new ResourceId("B"); Assert.True(resourceId1.Equals(resourceId2)); Assert.False(resourceId1.Equals(resourceId3)); Assert.True(resourceId1.Equals(resourceId1)); Assert.False(resourceId1.Equals(new object())); Assert.False(resourceId1.Equals(null)); Assert.True(resourceId1.GetHashCode().Equals(resourceId2.GetHashCode())); Assert.False(resourceId1.GetHashCode().Equals(resourceId3.GetHashCode())); Assert.True(resourceId1.GetHashCode().Equals(resourceId1.GetHashCode())); Assert.False(resourceId1.GetHashCode().Equals(new object().GetHashCode())); }