public void ClassContainingStructContainingClassWorks() { ExampleContainerContainingClassesStructContainingClasses c = new ExampleContainerContainingClassesStructContainingClasses() { MyExampleStructContainingClasses = new ExampleStructContainingClasses() { MyChar = 'z', MyLazinatorList = new List <Example>() } }; var c2 = c.CloneLazinatorTyped(); var temp = c2.MyExampleStructContainingClasses; temp.MyChild1 = GetExampleChild(1); c2.MyExampleStructContainingClasses = temp; var c3 = c2.CloneLazinatorTyped(); temp = c3.MyExampleStructContainingClasses; temp.MyChild1 = GetExampleChild(1); temp.MyChild1.MyLong = 65748; c3.MyExampleStructContainingClasses = temp; var c4 = c3.CloneLazinatorTyped(); c4.MyExampleStructContainingClasses.MyChild1.MyLong.Should().Be(65748); }
public void BuffersUpdateInTandem_List_Struct() { ExampleContainerContainingClassesStructContainingClasses e = new ExampleContainerContainingClassesStructContainingClasses() { MyListExampleStruct = new List <ExampleStructContainingClasses>() { new ExampleStructContainingClasses() { MyChar = 'h' } } }; e.MyListExampleStruct[0] = new ExampleStructContainingClasses() { MyChar = 'i' }; e.MyListExampleStruct[0] = e.MyListExampleStruct[0].CloneLazinatorTyped(IncludeChildrenMode.IncludeAllChildren, CloneBufferOptions.IndependentBuffers); // generate a new buffer in a list member ConfirmBuffersUpdateInTandem(e); e.MyExampleStructContainingClasses = new ExampleStructContainingClasses() { MyChar = 'j' }; // keep list clean while making container dirty ConfirmBuffersUpdateInTandem(e); }
public void WrapperIntWorks() { ExampleContainerContainingClassesStructContainingClasses w = new ExampleContainerContainingClassesStructContainingClasses() { IntWrapper = 5 }; w.IntWrapper = 6; w.IntWrapper.Should().Be(6); }
public void MarkHierarchyClean_ExampleStructContainer() { var e = new ExampleContainerContainingClassesStructContainingClasses(); e.SerializeLazinator(); e.LazinatorMemoryStorage.IsEmpty.Should().BeFalse(); e.IntWrapper++; e.IntWrapper.IsDirty.Should().BeTrue(); e.IntWrapper.HasChanged.Should().BeTrue(); e.DescendantIsDirty.Should().BeTrue(); e.DescendantHasChanged.Should().BeTrue(); e.MarkHierarchyClean(); e.IntWrapper.IsDirty.Should().BeFalse(); e.IntWrapper.HasChanged.Should().BeFalse(); e.DescendantIsDirty.Should().BeFalse(); e.DescendantHasChanged.Should().BeFalse(); }
public void BuffersUpdateInTandem_HashSet_Struct() { ExampleContainerContainingClassesStructContainingClasses e = new ExampleContainerContainingClassesStructContainingClasses() { MyHashSetExampleStruct = new HashSet <ExampleStructContainingClasses>() { new ExampleStructContainingClasses() { MyChar = 'h' } } }; e.MyHashSetExampleStruct.Add(new ExampleStructContainingClasses() { MyChar = 'i' }.CloneLazinatorTyped()); ConfirmBuffersUpdateInTandem(e); e.MyExampleStructContainingClasses = new ExampleStructContainingClasses() { MyChar = 'j' }; // keep list clean while making container dirty ConfirmBuffersUpdateInTandem(e); }