Пример #1
0
        public void TestRoundtripManagedOverride()
        {
            var managed      = new ManagedOverride2();
            var roundtripper = new ClassThatRoundtrips(7, managed);

            // test primary base ptr from native
            var cls = roundtripper.GetThis();

            Assert.AreSame(roundtripper, cls, "#1");
            Assert.AreEqual(7, cls.Number, "#2");

            // test non-primary base ptr from native
            cls = roundtripper.GetThat();
            Assert.AreSame((MultiplierClass)managed, cls, "#3");
            Assert.AreEqual(3, cls.Number, "#4");

            Assert.AreEqual(3, cls.Number, "#5");
            cls.Multiply(0);
            Assert.AreEqual(-30, cls.NegativeNumber, "#6");

            // cast to non-primary subclass
            Assert.IsNotNull(((ClassWithNonVirtualBases)cls) as ManagedOverride2, "#7");
        }
Пример #2
0
		public void TestRoundtripManagedOverride ()
		{
			var managed = new ManagedOverride2 ();
			var roundtripper = new ClassThatRoundtrips (7, managed);

			// test primary base ptr from native
			var cls = roundtripper.GetThis ();
			Assert.AreSame (roundtripper, cls, "#1");
			Assert.AreEqual (7, cls.Number, "#2");

			// test non-primary base ptr from native
			cls = roundtripper.GetThat ();
			Assert.AreSame ((MultiplierClass)managed, cls, "#3");
			Assert.AreEqual (3, cls.Number, "#4");

			Assert.AreEqual (3, cls.Number, "#5");
			cls.Multiply (0);
			Assert.AreEqual (-30, cls.NegativeNumber, "#6");

			// cast to non-primary subclass
			Assert.IsNotNull (((ClassWithNonVirtualBases)cls) as ManagedOverride2, "#7");
		}