public void Comparing_One_ValueObjet_null_Must_be_Equal_False()
        {
            //Arrange
            var valueObject1 = new ValueObjectClass1();

            //Act
            valueObject1.Value1 = 2;

            //Assert
            Assert.False(valueObject1 == null);
        }
        public void Comparing_same_ValueObjet_Must_be_equaltrue()
        {
            //Arrange
            var valueObject1 = new ValueObjectClass1();
            var valueObject2 = new ValueObjectClass1();

            //Act
            valueObject1.Value1 = valueObject2.Value1 = 1;

            //Assert
            Assert.True(valueObject1 == valueObject2);
        }
        public void Comparing_ValueObjet_Copy_Must_be_Equal_True()
        {
            //Arrange
            var valueObject1 = new ValueObjectClass1();

            valueObject1.Value1 = 1;

            //Act
            var valueObject2 = valueObject1.GetCopy();

            //Assert
            Assert.True(valueObject1 == valueObject2);
        }
        public void Comparing_different_ValueObjet_Must_be_NotEqual_True()
        {
            //Arrange
            var valueObject1 = new ValueObjectClass1();
            var valueObject2 = new ValueObjectClass1();

            //Act
            valueObject1.Value1 = 2;
            valueObject2.Value1 = 1;

            //Assert
            Assert.True(valueObject1 != valueObject2);
        }
        public void Creating_same_values_ValueObjet_Must_be_same_hashcode()
        {
            //Arrange
            var valueObject1 = new ValueObjectClass1();
            var valueObject2 = new ValueObjectClass1();

            //Act
            valueObject1.Value1 = valueObject2.Value1 = 1;
            valueObject1.Value2 = valueObject2.Value2 = 2;

            //Assert
            Assert.True(valueObject1.GetHashCode() == valueObject2.GetHashCode());
        }