public void Ctor_Default() { var attribute = new IUnknownConstantAttribute(); UnknownWrapper wrapper = Assert.IsType <UnknownWrapper>(attribute.Value); Assert.Null(wrapper.WrappedObject); }
public void Ctor_Default() { var attribute = new IUnknownConstantAttribute(); #pragma warning disable 0618 // UnknownWrapper is marked as Obsolete. UnknownWrapper wrapper = Assert.IsType <UnknownWrapper>(attribute.Value); #pragma warning restore 0618 Assert.Null(wrapper.WrappedObject); }
public void Test_ObjectConversion_Object() { var obj = new object(); var unk = new UnknownWrapper(obj); var result = VariantConverter.ChangeType(unk, typeof(DispatchWrapper)); Assert.AreSame(obj, result); var result2 = VariantConverter.ChangeType(result, typeof(UnknownWrapper)); Assert.AreSame(unk.WrappedObject, result2); }
private void UnknownWrapper(dynamic toWrap) { var val = new UnknownWrapper(toWrap); // Get and set property obj.Variant_Property = val; Assert.AreEqual(val.WrappedObject, obj.Variant_Property); // Call method with return value dynamic ret = obj.Variant_Ret(val); Assert.IsTrue(ret.Boolean_Property); Assert.IsTrue(toWrap.Boolean_Property); // Call method passing by ref obj.Variant_InOut(ref val); Assert.IsTrue(toWrap.Boolean_Property); }
private unsafe static void TestByRef() { object obj; obj = (byte)NumericValue; Assert.IsTrue(Marshal_ByRef_Byte(ref obj, NumericValue)); obj = (sbyte)NumericValue; Assert.IsTrue(Marshal_ByRef_SByte(ref obj, (sbyte)NumericValue)); obj = (short)NumericValue; Assert.IsTrue(Marshal_ByRef_Int16(ref obj, NumericValue)); obj = (ushort)NumericValue; Assert.IsTrue(Marshal_ByRef_UInt16(ref obj, NumericValue)); obj = (int)NumericValue; Assert.IsTrue(Marshal_ByRef_Int32(ref obj, NumericValue)); obj = (uint)NumericValue; Assert.IsTrue(Marshal_ByRef_UInt32(ref obj, NumericValue)); obj = (long)NumericValue; Assert.IsTrue(Marshal_ByRef_Int64(ref obj, NumericValue)); obj = (ulong)NumericValue; Assert.IsTrue(Marshal_ByRef_UInt64(ref obj, NumericValue)); obj = (float)NumericValue; Assert.IsTrue(Marshal_ByRef_Single(ref obj, NumericValue)); obj = (double)NumericValue; Assert.IsTrue(Marshal_ByRef_Double(ref obj, NumericValue)); obj = StringValue; Assert.IsTrue(Marshal_ByRef_String(ref obj, StringValue)); obj = new BStrWrapper(null); Assert.IsTrue(Marshal_ByRef_String(ref obj, null)); obj = CharValue; Assert.IsTrue(Marshal_ByRef_Char(ref obj, CharValue)); obj = true; Assert.IsTrue(Marshal_ByRef_Boolean(ref obj, true)); obj = DateValue; Assert.IsTrue(Marshal_ByRef_DateTime(ref obj, DateValue)); obj = DecimalValue; Assert.IsTrue(Marshal_ByRef_Decimal(ref obj, DecimalValue)); obj = new CurrencyWrapper(DecimalValue); Assert.IsTrue(Marshal_ByRef_Currency(ref obj, DecimalValue)); obj = DBNull.Value; Assert.IsTrue(Marshal_ByRef_Null(ref obj)); obj = System.Reflection.Missing.Value; Assert.IsTrue(Marshal_ByRef_Missing(ref obj)); obj = null; Assert.IsTrue(Marshal_ByRef_Empty(ref obj)); obj = new object(); Assert.IsTrue(Marshal_ByRef_Object(ref obj)); obj = new UnknownWrapper(new object()); Assert.IsTrue(Marshal_ByRef_Object_IUnknown(ref obj)); obj = DecimalValue; Assert.IsTrue(Marshal_ChangeVariantType(ref obj, NumericValue)); Assert.IsTrue(obj is int); Assert.AreEqual(NumericValue, (int)obj); }
public void Ctor_Value(object value) { var wrapper = new UnknownWrapper(value); Assert.Equal(value, wrapper.WrappedObject); }
private unsafe static void TestByRef(bool hasComSupport) { object obj; obj = (byte)NumericValue; Assert.IsTrue(Marshal_ByRef_Byte(ref obj, NumericValue)); obj = (sbyte)NumericValue; Assert.IsTrue(Marshal_ByRef_SByte(ref obj, (sbyte)NumericValue)); obj = (short)NumericValue; Assert.IsTrue(Marshal_ByRef_Int16(ref obj, NumericValue)); obj = (ushort)NumericValue; Assert.IsTrue(Marshal_ByRef_UInt16(ref obj, NumericValue)); obj = (int)NumericValue; Assert.IsTrue(Marshal_ByRef_Int32(ref obj, NumericValue)); obj = (uint)NumericValue; Assert.IsTrue(Marshal_ByRef_UInt32(ref obj, NumericValue)); obj = (long)NumericValue; Assert.IsTrue(Marshal_ByRef_Int64(ref obj, NumericValue)); obj = (ulong)NumericValue; Assert.IsTrue(Marshal_ByRef_UInt64(ref obj, NumericValue)); obj = (float)NumericValue; Assert.IsTrue(Marshal_ByRef_Single(ref obj, NumericValue)); obj = (double)NumericValue; Assert.IsTrue(Marshal_ByRef_Double(ref obj, NumericValue)); obj = StringValue; Assert.IsTrue(Marshal_ByRef_String(ref obj, StringValue)); obj = new BStrWrapper(null); Assert.IsTrue(Marshal_ByRef_String(ref obj, null)); obj = CharValue; Assert.IsTrue(Marshal_ByRef_Char(ref obj, CharValue)); obj = true; Assert.IsTrue(Marshal_ByRef_Boolean(ref obj, true)); obj = DateValue; Assert.IsTrue(Marshal_ByRef_DateTime(ref obj, DateValue)); obj = DecimalValue; Assert.IsTrue(Marshal_ByRef_Decimal(ref obj, DecimalValue)); obj = new CurrencyWrapper(DecimalValue); Assert.IsTrue(Marshal_ByRef_Currency(ref obj, DecimalValue)); obj = DBNull.Value; Assert.IsTrue(Marshal_ByRef_Null(ref obj)); obj = System.Reflection.Missing.Value; Assert.IsTrue(Marshal_ByRef_Missing(ref obj)); obj = null; Assert.IsTrue(Marshal_ByRef_Empty(ref obj)); if (hasComSupport) { obj = new object(); Assert.IsTrue(Marshal_ByRef_Object(ref obj)); obj = new UnknownWrapper(new object()); Assert.IsTrue(Marshal_ByRef_Object_IUnknown(ref obj)); obj = new GenerateIClassX(); Assert.IsTrue(Marshal_ByRef_Object(ref obj)); obj = new UnknownWrapper(new GenerateIClassX()); Assert.IsTrue(Marshal_ByRef_Object_IUnknown(ref obj)); } else { Assert.Throws <NotSupportedException>( () => { obj = new object(); Marshal_ByRef_Object(ref obj); }, "Built-in COM has been disabled via a feature switch"); Assert.Throws <NotSupportedException>( () => { obj = new UnknownWrapper(new object()); Marshal_ByRef_Object_IUnknown(ref obj); }, "Built-in COM has been disabled via a feature switch"); } obj = DecimalValue; Assert.IsTrue(Marshal_ChangeVariantType(ref obj, NumericValue)); Assert.IsTrue(obj is int); Assert.AreEqual(NumericValue, (int)obj); }