Beispiel #1
0
        public void OpenGenericWithInterfaceTypeSerializes()
        {
            OpenGenericStayingOpenContainer x = new OpenGenericStayingOpenContainer()
            {
                ClosedGenericInterface = new OpenGeneric <IExampleChild>()
                {
                    MyT = new ExampleChild()
                    {
                        MyShort = 45
                    }
                }
            };
            var c = x.CloneLazinatorTyped();

            ((ExampleChild)c.ClosedGenericInterface.MyT).MyShort.Should().Be(45);

            x = new OpenGenericStayingOpenContainer()
            {
                ClosedGenericInterface = new OpenGeneric <IExampleChild>()
                {
                    MyT = new ExampleChildInherited()
                    {
                        MyShort = 45, MyInt = -75
                    }
                }
            };
            c = x.CloneLazinatorTyped();
            ((ExampleChildInherited)c.ClosedGenericInterface.MyT).MyShort.Should().Be(45);
            ((ExampleChildInherited)c.ClosedGenericInterface.MyT).MyInt.Should().Be(-75);
        }
Beispiel #2
0
        public void OpenGenericWithConcreteTypeSerializes()
        {
            OpenGenericStayingOpenContainer x = new OpenGenericStayingOpenContainer()
            {
                ClosedGenericFloat = new OpenGeneric <WFloat>()
                {
                    MyT = new WFloat(3.4F)
                }
            };
            var c = x.CloneLazinatorTyped();

            c.ClosedGenericFloat.MyT.WrappedValue.Should().Be(3.4F);
        }
Beispiel #3
0
        public void OpenGenericWithNonexclusiveInterfaceTypeSerializes()
        {
            OpenGenericStayingOpenContainer x = new OpenGenericStayingOpenContainer()
            {
                ClosedGenericNonexclusiveInterface = new OpenGeneric <IExampleNonexclusiveInterface>()
                {
                    MyT = new ExampleNonexclusiveInterfaceImplementer()
                    {
                        MyInt = 45
                    }
                }
            };
            var c = x.CloneLazinatorTyped();

            ((IExampleNonexclusiveInterface)c.ClosedGenericNonexclusiveInterface.MyT).MyInt.Should().Be(45);
            ((ExampleNonexclusiveInterfaceImplementer)c.ClosedGenericNonexclusiveInterface.MyT).MyInt.Should().Be(45);
        }
Beispiel #4
0
        public void BuffersUpdateInTandem_OpenGeneric_Struct()
        {
            OpenGenericStayingOpenContainer e = new OpenGenericStayingOpenContainer();

            e.ClosedGenericFloat = new OpenGeneric <WFloat>()
            {
                MyT = 3.45F
            };
            e.ClosedGenericInterface = new OpenGeneric <IExampleChild>()
            {
                MyT = GetExampleChild(1)
            };
            e = e.CloneLazinatorTyped();
            ConfirmBuffersUpdateInTandem(e);
            e.ClosedGenericInterface.MyT.MyLong = 29; // make it dirty but leave child struct clean
            ConfirmBuffersUpdateInTandem(e);
        }
Beispiel #5
0
        public void OpenGenericWithBaseTypeSerializes()
        {
            OpenGenericStayingOpenContainer x = new OpenGenericStayingOpenContainer()
            {
                ClosedGenericBase = new OpenGeneric <Base>()
                {
                    MyT = new Base()
                },
                ClosedGenericFromBaseWithBase = new GenericFromBase <Base>()
                {
                    MyT = new Base()
                }
            };
            var c = x.CloneLazinatorTyped();

            c.ClosedGenericBase.MyT.Should().NotBeNull();
            c.ClosedGenericFromBaseWithBase.MyT.Should().NotBeNull();
        }
Beispiel #6
0
        public void BuffersUpdateInTandem_List_OpenGeneric_Struct()
        {
            OpenGenericStayingOpenContainer e = new OpenGenericStayingOpenContainer()
            {
                ClosedGenericFloat = new OpenGeneric <WFloat>()
                {
                    MyListT = new List <WFloat>()
                    {
                        3.4F
                    }
                }
            };

            e.ClosedGenericFloat.MyListT[0] = new WFloat(4.0F);
            e.ClosedGenericFloat.MyListT[0] = e.ClosedGenericFloat.MyListT[0].CloneLazinatorTyped(IncludeChildrenMode.IncludeAllChildren, CloneBufferOptions.IndependentBuffers); // generate a new buffer in a list member
            ConfirmBuffersUpdateInTandem(e);
            e.ClosedGenericFloat.MyT = 10.0F;                                                                                                                                     // keep list clean while making container dirty
            ConfirmBuffersUpdateInTandem(e);
        }