예제 #1
0
        public async Task ProgressiveCallsCallerProgressCancelObservable()
        {
            WampPlayground playground = new WampPlayground();

            CallerCallee dualChannel = await playground.GetCallerCalleeDualChannel();

            IWampChannel calleeChannel = dualChannel.CalleeChannel;
            IWampChannel callerChannel = dualChannel.CallerChannel;

            var service = new LongOpObsService();
            await calleeChannel.RealmProxy.Services.RegisterCallee(service);

            MyCallback callback = new MyCallback();

            var invocation = callerChannel.RealmProxy.RpcCatalog.Invoke
                                 (callback,
                                 new CallOptions()
            {
                ReceiveProgress = true
            },
                                 "com.myapp.longop",
                                 new object[] { 10, false });

            Assert.That(service.State, Is.EqualTo(LongOpObsService.EState.Called));
            invocation.Cancel(new CancelOptions());
            Assert.That(service.State, Is.EqualTo(LongOpObsService.EState.Cancelled));
        }
예제 #2
0
        public async Task ProgressiveCallsCallerProgressObservable()
        {
            WampPlayground playground = new WampPlayground();

            CallerCallee dualChannel = await playground.GetCallerCalleeDualChannel();

            IWampChannel calleeChannel = dualChannel.CalleeChannel;
            IWampChannel callerChannel = dualChannel.CallerChannel;

            var service = new LongOpObsService();
            await calleeChannel.RealmProxy.Services.RegisterCallee(service);

            MyCallback callback = new MyCallback();

            callerChannel.RealmProxy.RpcCatalog.Invoke
                (callback,
                new CallOptions()
            {
                ReceiveProgress = true
            },
                "com.myapp.longop",
                new object[] { 10, false });

            Assert.That(service.State, Is.EqualTo(LongOpObsService.EState.Called));
            Assert.That(callback.Task.Result, Is.EqualTo(-1));
            CollectionAssert.AreEquivalent(Enumerable.Range(0, 10), callback.ProgressiveResults);
            Assert.That(service.State, Is.EqualTo(LongOpObsService.EState.Completed));
        }