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); }
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); }
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)); }
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")); }
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); }
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 )); }
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); }