Beispiel #1
0
        public void TestOnlyRpcAreSynchronized()
        {
            var client = CFacade.InitBind(new PartSync(), TestLifetime, ClientProtocol);
            var proxy  = SFacade.ActivateProxy <IPartSync>(TestLifetime, ServerProtocol);

            Assertion.Assert(((RdExtReflectionBindableBase)proxy).Connected.Value, "((RdReflectionBindableBase)proxy).Connected.Value");
        }
        public void Test1()
        {
            var s = SFacade.InitBind(new RootModel(), TestLifetime, ClientProtocol);
            var c = CFacade.InitBind(new RootModel(), TestLifetime, ServerProtocol);

            s.EmptyOK.Value = new EmptyOK();
            Assert.IsNotNull(c.EmptyOK.Value);
        }
Beispiel #3
0
        public void TestNulls()
        {
            var proxy  = SFacade.ActivateProxy <IUnitTestRemoteAgent>(TestLifetime, ServerProtocol);
            var client = CFacade.Activator.ActivateBind <UnitTestRemoteAgent>(TestLifetime, ClientProtocol);

            Assertion.Assert(((RdExtReflectionBindableBase)proxy).Connected.Value, "((RdReflectionBindableBase)proxy).Connected.Value");
            proxy.RunTests(null);
            proxy.RunTests(new TestRunRequest());
        }
Beispiel #4
0
        public void TestLeaks()
        {
            var proxy  = SFacade.ActivateProxy <IUnitTestRemoteAgent>(TestLifetime, ServerProtocol);
            var client = CFacade.Activator.ActivateBind <UnitTestRemoteAgent>(TestLifetime, ClientProtocol);

            var checkpoint = dotMemory.Check();

            for (int i = 0; i < 100000; i++)
            {
                proxy.RunTests(new TestRunRequest());
            }
            dotMemory.Check(m => Assert.Less(m.GetDifference(checkpoint).GetNewObjects().SizeInBytes, 128_000));
        }
        public void TestCustomSignal()
        {
            var client = CFacade.InitBind(new ExtWithCustomSignal(), TestLifetime, ClientProtocol);
            var proxy  = SFacade.ActivateProxy <IExtWithCustomSignal>(TestLifetime, ServerProtocol);

            int val = 0;

            proxy.Signal.Advise(TestLifetime, v => val = int.Parse(v.v1));

            proxy.Signal.Fire(new Payload("123", "456"));
            Assert.AreEqual(val, 123);

            client.Signal.Fire(new Payload("12", "34"));
            Assert.AreEqual(val, 12);
        }
        public void TestInheritance1()
        {
            SaveGeneratedAssembly();

            var client = CFacade.Activator.ActivateBind <InheritanceTest>(TestLifetime, ClientProtocol);
            var proxy  = SFacade.ActivateProxy <IInheritanceTest>(TestLifetime, ServerProtocol);

            Assertion.Assert(((RdExtReflectionBindableBase)proxy).Connected.Value, "((RdReflectionBindableBase)proxy).Connected.Value");

            // test signals
            bool raised = false;

            proxy.Signal.Advise(TestLifetime, s => raised = true);
            client.Signal.Fire("test");
            Assertion.Assert(raised, "!raised");
        }
Beispiel #7
0
        public void TestSimple()
        {
            var proxy = SFacade.ActivateProxy <ISimpleCalls>(TestLifetime, ServerProtocol);

            SaveGeneratedAssembly();

            var client = CFacade.Activator.ActivateBind <SimpleCalls>(TestLifetime, ClientProtocol);

            // typeof(Reflection.SimpleCalls);//
            Assertion.Assert(((RdExtReflectionBindableBase)proxy).Connected.Value, "((RdReflectionBindableBase)proxy).Connected.Value");

            proxy.M();
            Assert.AreEqual(client.GetString(), proxy.GetString());
            Assert.AreEqual(client.GetInt(), proxy.GetInt());
            Assert.AreEqual(client.GetLong(), proxy.GetLong());
            Assert.AreEqual(client.ReverseString("test"), proxy.ReverseString("test"));

            Assert.AreEqual(null, proxy.GetStoredString());
            proxy.StoreString("test");
            Assert.AreEqual("test", proxy.GetStoredString());
        }
        public void TestProperties()
        {
            SaveGeneratedAssembly();

            var client = CFacade.Activator.ActivateBind <PropertiesTest>(TestLifetime, ClientProtocol);
            var proxy  = SFacade.ActivateProxy <IPropertiesTest>(TestLifetime, ServerProtocol);

            Assertion.Assert(((RdExtReflectionBindableBase)proxy).Connected.Value, "((RdReflectionBindableBase)proxy).Connected.Value");

            AddType(typeof(LifeModel));
            // test signals
            bool raised = false;

            proxy.Signal.Advise(TestLifetime, s => raised = true);
            client.Signal.Fire("test");
            Assertion.Assert(raised, "!raised");

            // test life models
            client.List.Add(new LifeModel());
            Assert.True(proxy.List.Count == 1, "client.List.Count == 1");
            client.List[0].StrProperty.Value = "Hello From Rd";
            Assert.AreEqual(proxy.List[0].StrProperty.Value, client.List[0].StrProperty.Value);
        }
Beispiel #9
0
        protected async Task TestTemplate <TImpl, TInterface>(Action <TInterface> runTest) where TImpl : RdBindableBase where TInterface : class
        {
            await YieldToClient();

            var client = CFacade.Activator.ActivateBind <TImpl>(TestLifetime, ClientProtocol);

            await YieldToServer();

            var proxy = SFacade.ActivateProxy <TInterface>(TestLifetime, ServerProtocol);

            await Wait();

            SaveGeneratedAssembly();

            await YieldToServer();

            Assertion.Assert((proxy as RdExtReflectionBindableBase).NotNull().Connected.Value,
                             "((RdReflectionBindableBase)proxy).Connected.Value");

            await Task.Run(() => runTest(proxy));

            await Wait();
        }
        protected void TestTemplate <TImpl, TInterface>(Action <TInterface> runTest) where TImpl : RdBindableBase where TInterface : class
        {
            ClientProtocol.Scheduler.Queue(() =>
            {
                var client = CFacade.Activator.ActivateBind <TImpl>(TestLifetime, ClientProtocol);
            });

            TInterface proxy = null;

            ServerProtocol.Scheduler.Queue(() => { proxy = SFacade.ActivateProxy <TInterface>(TestLifetime, ServerProtocol); });

            WaitMessages();

            using (var barrier = new ManualResetEvent(false))
            {
                ServerProtocol.Scheduler.Queue(() =>
                                               Assertion.Assert((proxy as RdExtReflectionBindableBase).NotNull().Connected.Value, "((RdReflectionBindableBase)proxy).Connected.Value"));
                runTest(proxy);
                ServerProtocol.Scheduler.Queue(() => barrier.Set());

                WaitMessages();
                barrier.WaitOne();
            }
        }
Beispiel #11
0
        public async Task Test()
        {
            await YieldToClient();

            var client = CFacade.ActivateProxy <IModelOwner>(TestLifetime, ClientProtocol);

            await YieldToServer();

            var server = SFacade.InitBind(new ModelOwner(SFacade.Activator), TestLifetime, ServerProtocol);

            await Wait();

            await YieldToClient();

            var liveModel = await client.M(TestLifetime);

            await YieldToClient();

            liveModel.Values.Add("Test");

            await Wait();

            Assert.AreEqual("Test", ourState);
        }
Beispiel #12
0
 public void TestNegative1()
 {
     Assert.Throws <ArgumentException>(() => SFacade.ActivateProxy <IInheritanceTest>(TestLifetime, ServerProtocol));
 }