public void ConvertRecursiveComplexClassToSubClass_ConvertsDeep(bool isStrict) { // Arrange var parentClass = new RecursiveComplexTestClassParent() { RecursiveComplexTestClassProperty = new RecursiveComplexTestClass() { Property1 = "testProp1", RecursiveComplexTestClassProperty = new RecursiveComplexTestClass() { Property1 = "testPropRecursive" } }, Property1 = "qqq" }; var castrClass = new CastrClass <RecursiveComplexTestClassParent>( parentClass, new Options.ClassOptions() { IsStrict = isStrict }); // Act var childClass = castrClass.CastAsClass <RecursiveComplexTestClass>(); // Assert Assert.Equal("qqq", childClass.Property1); Assert.True(string.IsNullOrWhiteSpace(childClass.NewProperty)); Assert.Equal("testProp1", childClass.RecursiveComplexTestClassProperty.Property1); Assert.Equal("testPropRecursive", childClass.RecursiveComplexTestClassProperty.RecursiveComplexTestClassProperty.Property1); }
public void ConvertComplexClassToSubClass_DisposeOriginal_ConvertsDeep(bool isStrict) { // Arrange var parentClass = new ComplexTestClassParent() { SimpleTestClass = new SimpleTestClass() { Property1 = "test", Property2 = "test2", Property3 = "test3" } }; parentClass.Property1 = "test"; var castrClass = new CastrClass <ComplexTestClassParent>( parentClass, new Options.ClassOptions() { IsStrict = isStrict }); var childClass = castrClass.CastAsClass <ComplexTestClass>(); // Act parentClass = null; // Assert Assert.Equal("test", childClass.Property1); Assert.True(string.IsNullOrWhiteSpace(childClass.NewProperty)); Assert.Equal("test", childClass.SimpleTestClass.Property1); Assert.Equal("test2", childClass.SimpleTestClass.Property2); Assert.Equal("test3", childClass.SimpleTestClass.Property3); }
public void CopyClassToClass_ContainsEmptyList() { // Arrange var sourceClass = new ClassContainsListOfClasses(); sourceClass.SimpleTestClasses = new List <SimpleTestClass>(); var castrClass = new CastrClass <ClassContainsListOfClasses>( sourceClass, new Options.ClassOptions() { }); // Act var newClass = castrClass.CastAsClass <ClassContainsListOfClasses>(); /// Assert Assert.Empty(newClass.SimpleTestClasses); }
public void ConvertClassToOtherClass_NotStrict_Converts() { // Arrange var parentClass = new SimpleTestClass2(); parentClass.Property1 = "test"; var castrClass = new CastrClass <SimpleTestClass2>( parentClass, new ClassOptions() { IsStrict = false }); // Act var childClass = castrClass.CastAsClass <SimpleTestSubClass>(); // Assert Assert.Equal("test", childClass.Property1); Assert.True(string.IsNullOrWhiteSpace(childClass.NewProperty)); }
public void ConvertClassToOtherClass_Strict_Throws() { // Arrange var parentClass = new SimpleTestClass2(); parentClass.Property1 = "test"; var castrClass = new CastrClass <SimpleTestClass2>( parentClass, new ClassOptions() { IsStrict = true }); // Act void PerformCast() { var childClass = castrClass.CastAsClass <SimpleTestSubClass>(); } // Assert Assert.Throws <CastingException>((Action)PerformCast); }
public void CopyClassToClass_ContainsList() { // Arrange var sourceClass = new ClassContainsListOfClasses(); sourceClass.SimpleTestClasses = new List <SimpleTestClass>() { new SimpleTestClass() { Property1 = "test" } }; var castrClass = new CastrClass <ClassContainsListOfClasses>( sourceClass, new Options.ClassOptions() { }); // Act var newClass = castrClass.CastAsClass <ClassContainsListOfClasses>(); /// Assert Assert.Equal("test", newClass.SimpleTestClasses.First().Property1); }