예제 #1
0
        public void DeepCopyUnit()
        {
            DeepCopyModel model = new DeepCopyModel();

            model.Field1  = "klsdjflsdlflsdf";
            model.Field2  = 100;
            model.Field3  = 101;
            model.Field4  = 105;
            model.Field5  = 106;
            model.Field6  = 106.45f;
            model.Field7  = 106.46f;
            model.Field8  = 106.4646598d;
            model.Field9  = 106.4646599d;
            model.Field10 = 106.46465996548m;
            model.Field11 = 106.46465996549m;
            model.Field12 = DateTime.Now;
            model.Field13 = DateTime.Now.AddDays(1);
            model.Field14 = TimeSpan.FromSeconds(30);
            model.Field15 = TimeSpan.FromSeconds(40);
            model.Field16 = TestEnum.True;
            model.Field17 = TestEnum.False;
            model.Field18 = 'A';
            model.Field19 = 'B';
            model.Field20 = new byte[] { 0, 1, 2, 3, 4 };

            var newmodel = model.MapTo <DeepCopyModel, DeepCopyModel>();

            newmodel.Field2 = 5464646;
        }
        public void CopyingReferenceType_CreatesNewReference()
        {
            // Arrange
            var model = new DeepCopyModel(null, null, 0);

            // Act
            var actualCopy = DeepCopyService.DeepCopy(model);

            // Assert
            actualCopy.Should().NotBeSameAs(model);
        }
        public void RecursivelyCopyingReferenceTypes_CreatesNewReferences()
        {
            // Arrange
            var subModel2 = new DeepCopyModel(null, "SubModel2", 12);
            var subModel1 = new DeepCopyModel(subModel2, "SubModel1", 1);
            var model     = new DeepCopyModel(subModel1, null, 0);

            // Act
            var actualCopy = DeepCopyService.DeepCopy(model);

            // Assert
            actualCopy.SubModel.Should().NotBeSameAs(model.SubModel);
            actualCopy.SubModel !.SubModel.Should().NotBeSameAs(model.SubModel !.SubModel);
        }
        public void CopyingSubReferenceTypes_KeepsValues()
        {
            // Arrange
            var subModel2 = new DeepCopyModel(null, "SubModel2", 12);
            var subModel1 = new DeepCopyModel(subModel2, "SubModel1", 1);
            var model     = new DeepCopyModel(subModel1, null, 0);

            // Act
            var actualCopy = DeepCopyService.DeepCopy(model);

            // Assert
            actualCopy.Name.Should().Be(model.Name);
            actualCopy.SubModel !.Name.Should().Be(model.SubModel !.Name);
            actualCopy.SubModel.Age.Should().Be(model.SubModel.Age);
            actualCopy.SubModel !.SubModel !.Name.Should().Be(model.SubModel !.SubModel !.Name);
            actualCopy.SubModel.SubModel.Age.Should().Be(model.SubModel.SubModel.Age);
        }