public void DictionaryNullMethodsTest() { dynamic tNew = new DynamicObjects.Dictionary(); Dynamic.ApplyEquivalentType(tNew, typeof (ISimpleStringMethod)); Assert.That(tNew.StartsWith("Te"), Is.False); }
public void DictionaryInterfaceGetServiceNullMethodsTest() { var provider = new DynamicObjects.Dictionary() as IServiceProvider; var actsLike = (ISimpleStringMethod)provider.GetService(typeof(ISimpleStringMethod)); Assert.AreEqual(false, actsLike.StartsWith("Te")); }
public void DictionaryMethodsTestWithPropertyAccess() { dynamic tNew = new DynamicObjects.Dictionary(); tNew.PropCat = "Cat-"; tNew.Action1 = new Action(Assert.Fail); tNew.Action2 = new Action<bool>(Assert.IsFalse); tNew.Action3 = new ThisFunc<string>(@this => @this.PropCat + "test"); Assert.That(() => tNew.Action1(), Throws.InstanceOf<AssertionException>()); Assert.That(() => tNew.Action2(true), Throws.InstanceOf<AssertionException>()); Assert.AreEqual("Cat-test", tNew.Action3()); }
public void DictionaryMethodsOutTest() { dynamic tNew = new DynamicObjects.Dictionary(); tNew.Func = new DynamicTryString(TestOut); String tOut; Assert.AreEqual(true, tNew.Func(null, "Test", out tOut)); Assert.AreEqual("Test", tOut); String tOut2; Assert.AreEqual(false, tNew.Func(null, 1, out tOut2)); Assert.AreEqual(null, tOut2); }
public void DictionaryMethodsTest() { dynamic tNew = new DynamicObjects.Dictionary(); tNew.Action1 = new Action(Assert.Fail); tNew.Action2 = new Action<bool>(Assert.IsFalse); tNew.Action3 = new Func<string>(() => "test"); tNew.Action4 = new Func<int, string>(arg => "test" + arg); Assert.That(() => tNew.Action1(), Throws.InstanceOf<AssertionException>()); Assert.That(() => tNew.Action2(true), Throws.InstanceOf<AssertionException>()); Assert.That(tNew.Action3(), Is.EqualTo("test")); Assert.That(tNew.Action4(4), Is.EqualTo("test4")); }
public void DictionaryMethodsTest() { dynamic tNew = new DynamicObjects.Dictionary(); tNew.Action1 = new Action(Assert.Fail); tNew.Action2 = new Action <bool>(Assert.IsFalse); tNew.Action3 = new Func <string>(() => "test"); tNew.Action4 = new Func <int, string>(arg => "test" + arg); Assert.That(() => tNew.Action1(), Throws.InstanceOf <AssertionException>()); Assert.That(() => tNew.Action2(true), Throws.InstanceOf <AssertionException>()); Assert.That(tNew.Action3(), Is.EqualTo("test")); Assert.That(tNew.Action4(4), Is.EqualTo("test4")); }
public void TestCacheableIsEventAndIsNotEvent() { object tPoco = new PocoEvent(); var tCachedInvoke = new CacheableInvocation(InvocationKind.IsEvent, "Event"); var tResult = tCachedInvoke.Invoke(tPoco); Assert.AreEqual(true, tResult); dynamic tDynamic = new DynamicObjects.Dictionary(); tDynamic.Event = null; var tResult2 = tCachedInvoke.Invoke((object)tDynamic); Assert.AreEqual(false, tResult2); }
public void PropertySpecTest() { var testProp = new Dictionary <String, Type>() { { "test", typeof(bool) } }; var baseObj = new DynamicObjects.Dictionary(); var output = ImpromptuInterface.Impromptu.ActLikeProperties(baseObj, testProp); if (baseObj.TryTypeForName("test", out Type ot)) { Assert.AreEqual(typeof(bool), ot); } else { Assert.Fail("Could not find property spec for member"); } }
public void InterfaceDictionaryWrappedTest() { var tDictionary = new Dictionary <string, object> { { "Test1", 1 }, { "Test2", 2L }, { "Test3", 1 }, { "Test4", "Two" }, { "TestD", new Dictionary <string, object>() { { "TestA", "A" }, { "TestB", "B" } } } }; dynamic tDynamic = new DynamicObjects.Dictionary(tDictionary); dynamic tNotDynamic = new DynamicObjects.Dictionary(tDictionary); Dynamic.ApplyEquivalentType(tDynamic, typeof(IDynamicDict)); Dynamic.ApplyEquivalentType(tNotDynamic, typeof(INonDynamicDict)); Assert.AreEqual(tDynamic, tNotDynamic); Assert.AreEqual(1, tDynamic.Test1); Assert.AreEqual(2L, tDynamic.Test2); Assert.AreEqual(TestEnum.One, tDynamic.Test3); Assert.AreEqual(TestEnum.Two, tDynamic.Test4); Assert.AreEqual("A", tDynamic.TestD.TestA); Assert.AreEqual("B", tDynamic.TestD.TestB); Assert.AreEqual(1, tNotDynamic.Test1); Assert.AreEqual(2L, tNotDynamic.Test2); Assert.AreEqual(TestEnum.One, tNotDynamic.Test3); Assert.AreEqual(TestEnum.Two, tNotDynamic.Test4); Assert.AreEqual(typeof(Dictionary <string, object>), tNotDynamic.TestD.GetType()); Assert.AreEqual(typeof(DynamicObjects.Dictionary), tDynamic.TestD.GetType()); }
public void DynamicDictionaryWrappedTest() { var tDictionary = new Dictionary <string, object> { { "Test1", 1 }, { "Test2", 2 }, { "TestD", new Dictionary <string, object>() { { "TestA", "A" }, { "TestB", "B" } } } }; dynamic tNew = new DynamicObjects.Dictionary(tDictionary); Assert.AreEqual(1, tNew.Test1); Assert.AreEqual(2, tNew.Test2); Assert.AreEqual("A", tNew.TestD.TestA); Assert.AreEqual("B", tNew.TestD.TestB); }
public void DictionaryInterfaceNullMethodsTest() { dynamic tNew = new DynamicObjects.Dictionary(); ISimpleStringMethod tActsLike = ImpromptuInterface.Impromptu.ActLike(tNew); Assert.AreEqual(false, tActsLike.StartsWith("Te")); }
public void TestDynamicMemberNamesImpromput() { DynamicObjects.Dictionary tDict = Build.NewObject(Two: 2); Assert.AreEqual("Two", Dynamic.GetMemberNames(tDict, dynamicOnly: true).Single()); }
public void TestIsNotEvent() { dynamic tDynamic = new DynamicObjects.Dictionary(); tDynamic.Event = null; var tResult = Dynamic.InvokeIsEvent(tDynamic, "Event"); Assert.AreEqual(false, tResult); bool tTest = false; bool tTest2 = false; tDynamic.Event += new EventHandler<EventArgs>((@object, args) => { tTest = true; }); tDynamic.Event += new EventHandler<EventArgs>((@object, args) => { tTest2 = true; }); Assert.AreEqual(false, tTest); Assert.AreEqual(false, tTest2); tDynamic.Event(null, null); Assert.AreEqual(true, tTest); Assert.AreEqual(true, tTest2); }
public void DynamicObjectEqualsTest() { var tDictionary = new Dictionary<string, object> { {"Test1", 1}, {"Test2", 2}, { "TestD", new Dictionary<string, object>() { {"TestA", "A"}, {"TestB", "B"} } } }; dynamic tDynamic = new DynamicObjects.Dictionary(tDictionary); dynamic tNotDynamic = new DynamicObjects.Dictionary(tDictionary); Dynamic.ApplyEquivalentType(tDynamic, typeof (IDynamicDict)); Dynamic.ApplyEquivalentType(tNotDynamic, typeof (INonDynamicDict)); Assert.AreEqual(tDynamic, tNotDynamic); Assert.AreEqual(tDynamic, tDictionary); Assert.AreEqual(tNotDynamic, tDictionary); }
public void InterfaceDictionaryWrappedTest() { var tDictionary = new Dictionary<string, object> { {"Test1", 1}, {"Test2", 2L}, {"Test3", 1}, {"Test4", "Two"}, { "TestD", new Dictionary<string, object>() { {"TestA", "A"}, {"TestB", "B"} } } }; dynamic tDynamic = new DynamicObjects.Dictionary(tDictionary); dynamic tNotDynamic = new DynamicObjects.Dictionary(tDictionary); Dynamic.ApplyEquivalentType(tDynamic, typeof (IDynamicDict)); Dynamic.ApplyEquivalentType(tNotDynamic, typeof (INonDynamicDict)); Assert.AreEqual(tDynamic, tNotDynamic); Assert.AreEqual(1, tDynamic.Test1); Assert.AreEqual(2L, tDynamic.Test2); Assert.AreEqual(TestEnum.One, tDynamic.Test3); Assert.AreEqual(TestEnum.Two, tDynamic.Test4); Assert.AreEqual("A", tDynamic.TestD.TestA); Assert.AreEqual("B", tDynamic.TestD.TestB); Assert.AreEqual(1, tNotDynamic.Test1); Assert.AreEqual(2L, tNotDynamic.Test2); Assert.AreEqual(TestEnum.One, tNotDynamic.Test3); Assert.AreEqual(TestEnum.Two, tNotDynamic.Test4); Assert.AreEqual(typeof (Dictionary<string, object>), tNotDynamic.TestD.GetType()); Assert.AreEqual(typeof (DynamicObjects.Dictionary), tDynamic.TestD.GetType()); }
public void DynamicDictionaryWrappedTest() { var tDictionary = new Dictionary<string, object> { {"Test1", 1}, {"Test2", 2}, { "TestD", new Dictionary<string, object>() { {"TestA", "A"}, {"TestB", "B"} } } }; dynamic tNew = new DynamicObjects.Dictionary(tDictionary); Assert.AreEqual(1, tNew.Test1); Assert.AreEqual(2, tNew.Test2); Assert.AreEqual("A", tNew.TestD.TestA); Assert.AreEqual("B", tNew.TestD.TestB); }