Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        public void WrapperIntWorks()
        {
            ExampleContainerContainingClassesStructContainingClasses w = new ExampleContainerContainingClassesStructContainingClasses()
            {
                IntWrapper = 5
            };

            w.IntWrapper = 6;
            w.IntWrapper.Should().Be(6);
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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);
        }