Beispiel #1
0
        public void ObjectLifecycleWithGCKeepAlive_Success()
        {
            LittleObject.destroyedHandle = false;
            var obj = new LittleObject();

            Assert.AreNotEqual(IntPtr.Zero, obj.handle);
            obj.DummyWithKeepAlive();
        }
Beispiel #2
0
        public void ObjectLifecycleCallDummyStillReferenced_Success()
        {
            LittleObject.destroyedHandle = false;
            var obj = new LittleObject();

            Assert.AreNotEqual(IntPtr.Zero, obj.handle);
            obj.DummyReferencedFromTheOutside();
            obj.Dummy();
        }
        public void TestLittleObjectPrint()
        {
            var merger = new MyLittleMerger <LittleObject>();

            merger.Initialize(new MergerOptions
            {
                AutoAddTypeAssembly = true
            });
            var littleObject = new LittleObject()
            {
                LonelyProperty = "Hello there"
            };
            var instanceStructure = new MergerInstanceStructure <LittleObject>(merger.Structure, littleObject);
            var print             = instanceStructure.Print();

            Assert.IsTrue(print.Contains($"+ LittleObject"));
            Assert.IsTrue(print.Contains($"{nameof(LittleObject.LonelyProperty)} - {nameof(String)}: {littleObject.LonelyProperty}"));
        }
        public void TestPropertyNullString()
        {
            var merger = new MyLittleMerger <LittleObject>();

            merger.Initialize(new MergerOptions
            {
                AutoAddTypeAssembly = true
            });
            var item = new LittleObject()
            {
                LonelyProperty = null
            };
            var instanceStructure = new MergerInstanceStructure <LittleObject>(merger.Structure, item);
            var print             = instanceStructure.Print();

            Assert.IsNull(instanceStructure.Properties.First().Value.First().Value);
            Assert.IsFalse(instanceStructure.Properties.First().Value.First().HasValue);
            Assert.IsTrue(print.Contains($"{nameof(LittleObject.LonelyProperty)} - {nameof(String)}: NULL"));
        }
        public void TestLittleObjectStructure()
        {
            var merger = new MyLittleMerger <LittleObject>();

            merger.Initialize(new MergerOptions
            {
                AutoAddTypeAssembly = true
            });
            var littleObject = new LittleObject {
                LonelyProperty = "Hello there"
            };
            var instanceStructure = new MergerInstanceStructure <LittleObject>(merger.Structure, littleObject);

            Assert.AreEqual(typeof(LittleObject), instanceStructure.TypeStructure.Type);
            Assert.IsTrue(instanceStructure.HasValue);
            Assert.AreEqual(0, instanceStructure.Nodes.Count);
            Assert.AreEqual(1, instanceStructure.Properties.Count);
            Assert.AreEqual(1, instanceStructure.Properties.First().Value.Count);
            Assert.AreEqual(typeof(string), instanceStructure.Properties.First().Value.First().TypeProperty.Type);
            Assert.AreEqual(littleObject.LonelyProperty, instanceStructure.Properties.First().Value.First().Value);
        }