Exemple #1
0
        public async Task DotNetifyClient_ConnectAsyncWithoutOptions()
        {
            var mockHubProxy = Substitute.For <IDotNetifyHubProxy>();
            var sut          = new DotNetifyClient(mockHubProxy, new DefaultUIThreadDispatcher());

            var helloWorldVM = new HelloWorldVM();
            await sut.ConnectAsync(nameof(HelloWorldVM), helloWorldVM);

            await mockHubProxy.Received().StartAsync();

            await mockHubProxy.Received().Request_VM(nameof(HelloWorldVM), null);
        }
Exemple #2
0
        public async Task DotNetifyClient_ResponseCRUD()
        {
            var mockHubProxy = Substitute.For <IDotNetifyHubProxy>();
            var sut          = new DotNetifyClient(mockHubProxy, new DefaultUIThreadDispatcher());

            var helloWorldVM = new HelloWorldVM();
            await sut.ConnectAsync(nameof(HelloWorldVM), helloWorldVM);

            var eventArgs = new ResponseVMEventArgs()
            {
                VMId = nameof(HelloWorldVM),
                Data = new Dictionary <string, object>
                {
                    { "List_itemKey", "Id" }
                }
            };

            mockHubProxy.Response_VM += Raise.EventWith(new object(), eventArgs);

            eventArgs.Handled = false;
            eventArgs.Data    = new Dictionary <string, object>
            {
                { "List_add", "{ Id: 1, Name: 'Item_A'}" }
            };

            mockHubProxy.Response_VM += Raise.EventWith(new object(), eventArgs);

            Assert.AreEqual(1, helloWorldVM.List.Count);
            Assert.AreEqual(1, helloWorldVM.List[0].Id);
            Assert.AreEqual("Item_A", helloWorldVM.List[0].Name);

            eventArgs.Handled = false;
            eventArgs.Data    = new Dictionary <string, object>
            {
                { "List_update", "{ Id: 1, Name: 'Item_ABC'}" }
            };

            mockHubProxy.Response_VM += Raise.EventWith(new object(), eventArgs);

            Assert.AreEqual(1, helloWorldVM.List.Count);
            Assert.AreEqual(1, helloWorldVM.List[0].Id);
            Assert.AreEqual("Item_ABC", helloWorldVM.List[0].Name);

            eventArgs.Handled = false;
            eventArgs.Data    = new Dictionary <string, object>
            {
                { "List_remove", "1" }
            };

            mockHubProxy.Response_VM += Raise.EventWith(new object(), eventArgs);

            Assert.AreEqual(0, helloWorldVM.List.Count);
        }
Exemple #3
0
        public async Task DotNetifyClient_DisposeAsync()
        {
            var mockHubProxy = Substitute.For <IDotNetifyHubProxy>();
            var sut          = new DotNetifyClient(mockHubProxy, new DefaultUIThreadDispatcher());

            var helloWorldVM = new HelloWorldVM();
            await sut.ConnectAsync(nameof(HelloWorldVM), helloWorldVM);

            await sut.DisposeAsync();

            await mockHubProxy.Received().Dispose_VM(nameof(HelloWorldVM));
        }
Exemple #4
0
        public async Task DotNetifyClient_DispatchAsync()
        {
            var mockHubProxy = Substitute.For <IDotNetifyHubProxy>();
            var sut          = new DotNetifyClient(mockHubProxy, new DefaultUIThreadDispatcher());

            var helloWorldVM = new HelloWorldVM();
            await sut.ConnectAsync(nameof(HelloWorldVM), helloWorldVM);

            await sut.DispatchAsync("FirstName", "Hello");

            await mockHubProxy.Received().Update_VM(nameof(HelloWorldVM),
                                                    Arg.Is <Dictionary <string, object> >(x => x["FirstName"].ToString() == "Hello"));
        }
Exemple #5
0
        public async Task DotNetifyClient_DispatchAsyncMultiProps()
        {
            var mockHubProxy = Substitute.For <IDotNetifyHubProxy>();
            var sut          = new DotNetifyClient(mockHubProxy, new DefaultUIThreadDispatcher());

            var expectedProp = new Dictionary <string, object>
            {
                { "FirstName", "Hello" }
            };
            var helloWorldVM = new HelloWorldVM();
            await sut.ConnectAsync(nameof(HelloWorldVM), helloWorldVM);

            await sut.DispatchAsync(expectedProp);

            await mockHubProxy.Received().Update_VM(nameof(HelloWorldVM), expectedProp);
        }
Exemple #6
0
        public HelloWorldModule(IActorRef moduleManagerActor, string name)
        {
            _moduleManagerActor = moduleManagerActor;
            _name = name;
            _vm   = new HelloWorldVM();

            Receive <Messages.RequestClose>(x => Sender.Tell(true, Self));
            Receive <string>(x =>
            {
                System.Diagnostics.Debug.WriteLine(System.Threading.Thread.CurrentThread.ManagedThreadId);
                if (x.Contains("5"))
                {
                    throw new Exception("I cannot handle 'five' messages");
                }
                _vm.Text = string.Format("Hello {0}", x);
            });
        }
Exemple #7
0
        public async Task DotNetifyClient_ConnectAsyncWithOptions()
        {
            var mockHubProxy = Substitute.For <IDotNetifyHubProxy>();
            var sut          = new DotNetifyClient(mockHubProxy, new DefaultUIThreadDispatcher());
            var options      = new VMConnectOptions
            {
                VMArg = new Dictionary <string, object> {
                    { "FirstName", "Hello" }
                },
                Headers = new { OrganizationId = "MyOrgId" }
            };

            var helloWorldVM = new HelloWorldVM();
            await sut.ConnectAsync(nameof(HelloWorldVM), helloWorldVM, options);

            await mockHubProxy.Received().StartAsync();

            await mockHubProxy.Received().Request_VM(nameof(HelloWorldVM), Arg.Is <Dictionary <string, object> >(x =>
                                                                                                                 x.ContainsKey("$vmArg") &&
                                                                                                                 x["$vmArg"] == options.VMArg &&
                                                                                                                 x.ContainsKey("$headers") &&
                                                                                                                 x["$headers"] == options.Headers
                                                                                                                 ));
        }
Exemple #8
0
        public async Task DotNetifyClient_Response()
        {
            var mockHubProxy = Substitute.For <IDotNetifyHubProxy>();
            var sut          = new DotNetifyClient(mockHubProxy, new DefaultUIThreadDispatcher());

            var helloWorldVM = new HelloWorldVM();
            await sut.ConnectAsync(nameof(HelloWorldVM), helloWorldVM);

            var eventArgs = new ResponseVMEventArgs()
            {
                VMId = nameof(HelloWorldVM),
                Data = new Dictionary <string, object>
                {
                    { "FirstName", "Hello" },
                    { "LastName", "World" }
                }
            };

            mockHubProxy.Response_VM += Raise.EventWith(new object(), eventArgs);

            Assert.AreEqual(helloWorldVM.FirstName, "Hello");
            Assert.AreEqual(helloWorldVM.LastName, "World");
            Assert.IsTrue(eventArgs.Handled);
        }
 public HelloWorld(HelloWorldVM vm)
 {
     InitializeComponent();
     this.DataContext = vm;
 }