public void Not_Equal_When_HpKode_Is_Different()
        {
            var x = new CommercialProduct
            {
                FsNaam = "A",
                HpKode = 1,
                HpNamN = 2,
                MsNaam = "B",
                MutKod = MutKod.RecordUpdated,
                TsEmbM = 3,
                XsEmbM = 4
            };
            var y = new CommercialProduct
            {
                FsNaam = "A",
                HpKode = 2,
                HpNamN = 2,
                MsNaam = "B",
                MutKod = MutKod.RecordUpdated,
                TsEmbM = 3,
                XsEmbM = 4
            };

            var comparer = new CommercialProductComparer();
            bool result = comparer.Equals(x, y);

            Assert.IsFalse(result);
        }
        public void Equal_When_All_Fields_Are_Equal()
        {
            var x = new CommercialProduct
            {
                FsNaam = "A",
                HpKode = 1,
                HpNamN = 2,
                MsNaam = "B",
                MutKod = MutKod.RecordUpdated,
                TsEmbM = 3,
                XsEmbM = 4
            };
            var y = new CommercialProduct
            {
                FsNaam = "A",
                HpKode = 1,
                HpNamN = 2,
                MsNaam = "B",
                MutKod = MutKod.RecordUpdated,
                TsEmbM = 3,
                XsEmbM = 4
            };

            var comparer = new CommercialProductComparer();
            bool result = comparer.Equals(x, y);

            Assert.IsTrue(result);
        }
        public void Copy_All_Fields_From_One_To_Another()
        {
            var from = new CommercialProduct
            {
                FsNaam = "A",
                HpKode = 1,
                HpNamN = 2,
                MsNaam = "B",
                MutKod = MutKod.RecordUpdated,
                TsEmbM = 3,
                XsEmbM = 4
            };
            var to = new CommercialProduct();

            from.CopyTo(to);

            Assert.IsTrue(new CommercialProductComparer().Equals(from, to));
        }
        public void Return_True_On_IsIdentical_When_Identity_Is_Equal()
        {
            var x = new CommercialProduct
            {
                HpKode = 1
            };
            var y = new CommercialProduct
            {
                HpKode = 1
            };

            Assert.IsTrue(x.IsIdentical(y));
        }
        public void Return_False_On_IsIdentical_When_Identity_Is_Different()
        {
            var x = new CommercialProduct
            {
                HpKode = 1
            };
            var y = new CommercialProduct
            {
                HpKode = 2
            };

            Assert.IsFalse(x.IsIdentical(y));
        }
        public void Return_Correct_HashCode_From_Fields()
        {
            var commercialProduct = new CommercialProduct
            {
                FsNaam = "A",
                HpKode = 1,
                HpNamN = 2,
                MsNaam = "B",
                MutKod = MutKod.RecordUpdated,
                TsEmbM = 3,
                XsEmbM = 5
            };

            int expectedHashCode = commercialProduct.FsNaam.GetHashCode() ^ commercialProduct.HpKode ^
                                   commercialProduct.HpNamN ^ commercialProduct.MsNaam.GetHashCode() ^
                                   (byte)commercialProduct.MutKod ^ commercialProduct.TsEmbM ^ commercialProduct.XsEmbM;

            var comparer = new CommercialProductComparer();
            int result = comparer.GetHashCode(commercialProduct);

            Assert.AreEqual(expectedHashCode, result);
        }