Exemple #1
0
        private static void TestProxy()
        {
            RemoteCallerImpl remoteCaller = new RemoteCallerImpl();

            var        testImpl = new TestImpl();
            RealObject po       = new RealObject(remoteCaller, testImpl);

            testImpl.PropertyChanged += (s, e) =>
            {
                Console.Write("Test");
            };
            testImpl.OnPropertyChanged();

            Proxify proxify = new Proxify();
            ITest   test    = proxify.CreateProxy(typeof(ITest), Guid.NewGuid(), remoteCaller) as ITest;

            test.PropertyChanged += (s, e) =>
            {
                Console.Write("Test");
            };
            ITest  test2 = proxify.CreateProxy(typeof(ITest), Guid.NewGuid(), remoteCaller) as ITest;
            string bp    = test.BaseProp;

            test.PropertyChanged += test_PropertyChanged;
            int v = test.Test();

            string bp2 = test.BaseProp;

            bool eq = test.Equals(test2);
        }
Exemple #2
0
        public void InterfaceMethodInheritedFromObject()
        {
            ITestDerived itd = new TestImpl();
            dynamic      d   = itd;
            dynamic      res = itd.Equals(d);

            Assert.True(res);
        }
Exemple #3
0
        public void InheritedInterfaceIndexer()
        {
            ITestDerived itd = new TestImpl();
            dynamic      d   = 3;
            dynamic      res = itd[d];

            Assert.Equal(6, res);
        }
Exemple #4
0
        public void InheritedInterfaceMethod()
        {
            ITestDerived itd = new TestImpl();
            dynamic      d   = 3;
            dynamic      res = itd.Add(d);

            Assert.Equal(5, res);
        }
        public void GetParameterReturnsAnInstanceMatchingTheTypeRequested()
        {
            var testImpl = new TestImpl();
            var injector = new MethodParameterInjector(new object[] { "string", 5 });

            injector.AddInstance<ITestInterface>(testImpl);

            Assert.That(injector.GetParameter<ITestInterface>(), Is.SameAs(testImpl));
        }
        public void CanSupplyASpecificInstanceForPredefinedParameterTypes()
        {
            var testImpl = new TestImpl();
            var injector = new MethodParameterInjector(new object[] { "string", 5 },
                new[] { new KeyValuePair<Type, object>(typeof(ITestInterface), testImpl) });

            injector.GetParameters(_method3, new object[] { this });
            Assert.That(injector.GetParameters(_method3, new object[] { this })[1], Is.SameAs(testImpl));
        }
Exemple #7
0
        public void TestMethod()
        {
            TypeCatalog          catalog   = new TypeCatalog(typeof(TestLogger), typeof(TestImpl));
            CompositionContainer container = new CompositionContainer(catalog);
            TestImpl             service   = container.GetExport <TestImpl>().Value;

            TestLogger.Clear();
            service.TargetMethod();
            Assert.AreEqual("OnEntry" + Environment.NewLine, TestLogger.GetLog());
        }
Exemple #8
0
        public void AbstractCall01()
        {
            var c = new TestImpl();

            using (var l = new Lua())
            {
                var g = l.CreateEnvironment();
                TestResult(g.DoChunk("return cast(LuaDLR.Test.LuaTypeTests.ITestIntf, a):Foo()", "test.lua", new KeyValuePair <string, object>("a", c)), 42);
            }
        }
        public void TestInterfaceUsingDirectKey()
        {
            var target = new MessageMediator();
            var tc     = new TestImpl();

            target.Register(tc);

            bool hadTarget = target.SendMessage("test", new DataEvent("Test"));

            Assert.AreEqual(true, hadTarget, "Mediator did not find target");
            Assert.AreEqual(2, tc.Count);
        }
        public void TestInterfaceUsingConcreteClass()
        {
            var target = new MessageMediator();
            var tc     = new TestImpl();

            target.Register(tc);

            bool hadTarget = target.SendMessage(new DataEvent("Test"));

            Assert.AreEqual(true, hadTarget, "Mediator did not find target");
            // Should invoke two methods - interface AND direct
            Assert.AreEqual(5, tc.Count);
        }
Exemple #11
0
        public void AbstractCall02()
        {
            var c = new TestImpl();

            using (var l = new Lua())
            {
                var g = l.CreateEnvironment();
                TestResult(g.DoChunk(
                               Lines
                               (
                                   "local a = clr.LuaDLR.Test.LuaTypeTests.TestImpl();",
                                   "return cast(LuaDLR.Test.LuaTypeTests.ITestIntf, a):Foo()"
                               ), "test.lua"), 42);

                try
                {
                    g.DoChunk(
                        Lines
                        (
                            "local a = clr.LuaDLR.Test.LuaTypeTests.TestAbstract();",
                            "return cast(LuaDLR.Test.LuaTypeTests.ITestIntf, a):Foo()"
                        ), "test.lua");
                    Assert.Fail();
                }
                catch (LuaRuntimeException)
                {
                }
                catch (Exception)
                {
                    Assert.Fail();
                }

                try
                {
                    g.DoChunk(
                        Lines
                        (
                            "local a = clr.LuaDLR.Test.LuaTypeTests.ITestIntf();",
                            "return cast(LuaDLR.Test.LuaTypeTests.ITestIntf, a):Foo()"
                        ), "test.lua");
                    Assert.Fail();
                }
                catch (LuaRuntimeException)
                {
                }
                catch (Exception)
                {
                    Assert.Fail();
                }
            }
        }
        public void TestInterface()
        {
            var target = new MessageMediator();
            var tc     = new TestImpl();

            target.Register(tc);

            // Should invoke two methods - interface AND direct
            bool hadTarget = target.SendMessage <IDataEvent>(new DataEvent("Test"));

            Assert.IsTrue(hadTarget, "Mediator did not find target");
            Assert.AreEqual(5, tc.Count);

            target.Unregister(tc);
            Assert.IsFalse(target.SendMessage <IDataEvent>(new DataEvent("Test")));
        }
        public void SpecificInstancesCanBeInjectedAfterConstruction()
        {
            var testImpl = new TestImpl();
            var injector = new MethodParameterInjector(new object[] { "string", 5 });

            injector.AddInstance<ITestInterface>(testImpl);

            injector.GetParameters(_method3, new object[] { this });
            Assert.That(injector.GetParameters(_method3, new object[] { this })[1], Is.SameAs(testImpl));
        }