public async Task GetCollection() { // Arrange var mockConn = MockHubConnection.Get(); mockConn .Setup(x => x.InvokeCoreAsync( nameof(IMyHub.GetCollection), typeof(List <int>), Array.Empty <object>(), default)) .Returns(Task.FromResult((object)new List <int> { 10 })); var conn = mockConn.Object; var myHub = conn.GetHubServer <IMyHub>(); // Act var result = await myHub.GetCollection(); // hello // Assert mockConn.VerifyAll(); Assert.NotNull(result); Assert.Collection(result, item => Assert.Equal(10, item)); }
public async Task ReturnValueTask() { // Arrange var mockConn = MockHubConnection.Get(); mockConn .Setup(x => x.InvokeCoreAsync( nameof(IMyHub.ReturnValueTask), typeof(object), Array.Empty <object>(), default)) .Returns(Task.FromResult(default(object))); mockConn .Setup(x => x.InvokeCoreAsync( nameof(IMyHub.ReturnGenericValueTask), typeof(int), Array.Empty <object>(), default)) .Returns(Task.FromResult((object)10)); var conn = mockConn.Object; var myHub = conn.GetHubServer <IMyHub>(); // Act await myHub.ReturnValueTask(); var result = await myHub.ReturnGenericValueTask(); // Assert mockConn.VerifyAll(); Assert.Equal(10, result); }
public async Task SetCollection() { // Arrange var arg = new List <int>() { 20 }; var mockConn = MockHubConnection.Get(); mockConn .Setup(x => x.InvokeCoreAsync( nameof(IMyHub.SetCollection), typeof(List <int>), It.Is <object[]>(y => ((object[])y).Any(z => (List <int>)z == arg)), default)) .Returns(Task.FromResult((object)new List <int> { 10 })); var conn = mockConn.Object; var myHub = conn.GetHubServer <IMyHub>(); // Act var result = await myHub.SetCollection(arg); // Assert mockConn.VerifyAll(); Assert.NotNull(result); Assert.Collection(result, item => Assert.Equal(10, item)); }
public async Task BidirectionalStream() { // Arrange var argChannel = Channel.CreateUnbounded <float>(); var retChannel = Channel.CreateUnbounded <object>(); var retChannelReader = retChannel.Reader; var argChannelForEnumerable = Channel.CreateUnbounded <float>(); var argEnumerable = argChannelForEnumerable.Reader.ReadAllAsync(); var retChannelForEnumerable = Channel.CreateUnbounded <int>(); var retEnumerable = retChannelForEnumerable.Reader.ReadAllAsync(); var cts = new CancellationTokenSource(); var token = cts.Token; var mockConn = MockHubConnection.Get(); mockConn .Setup(x => x.StreamAsChannelCoreAsync( nameof(IMyHub.StreamBidirectionalViaChannel), typeof(int), It.Is <object[]>(y => ((object[])y).Any(z => z is ChannelReader <float>)), default)) .Returns(Task.FromResult(retChannelReader)); mockConn .Setup(x => x.StreamAsChannelCoreAsync( nameof(IMyHub.StreamBidirectionalViaChannelWithToken), typeof(int), It.Is <object[]>(y => ((object[])y).Any(z => z is ChannelReader <float>)), token)) .Returns(Task.FromResult(retChannelReader)); mockConn .Setup(x => x.StreamAsyncCore <int>( nameof(IMyHub.StreamBidirectionalViaEnumerable), It.Is <object[]>(y => ((object[])y).Any(z => z is IAsyncEnumerable <float>)), default)) .Returns(retEnumerable); mockConn .Setup(x => x.StreamAsyncCore <int>( nameof(IMyHub.StreamBidirectionalViaEnumerableWithToken), It.Is <object[]>(y => ((object[])y).Any(z => z is IAsyncEnumerable <float>)), token)) .Returns(retEnumerable); var conn = mockConn.Object; var myHub = conn.GetHubServer <IMyHub>(); // Act _ = await myHub.StreamBidirectionalViaChannel(argChannel.Reader); _ = await myHub.StreamBidirectionalViaChannelWithToken(argChannel.Reader, token); _ = myHub.StreamBidirectionalViaEnumerable(argEnumerable); _ = myHub.StreamBidirectionalViaEnumerableWithToken(argEnumerable, token); // Assert mockConn.VerifyAll(); }
public async Task StreamToClient() { // Arrange var channel = Channel.CreateUnbounded <object>(); var channelForEnumerable = Channel.CreateUnbounded <int>(); var asyncEnumerable = channelForEnumerable.Reader.ReadAllAsync(); var cts = new CancellationTokenSource(); var token = cts.Token; var mockConn = MockHubConnection.Get(); mockConn .Setup(x => x.StreamAsChannelCoreAsync( nameof(IMyHub.StreamToClientViaChannel), typeof(int), Array.Empty <object>(), default)) .Returns(Task.FromResult(channel.Reader)); mockConn .Setup(x => x.StreamAsChannelCoreAsync( nameof(IMyHub.StreamToClientViaChannelWithToken), typeof(int), Array.Empty <object>(), token)) .Returns(Task.FromResult(channel.Reader)); mockConn .Setup(x => x.StreamAsyncCore <int>( nameof(IMyHub.StreamToClientViaEnumerableWithToken), Array.Empty <object>(), token)) .Returns(asyncEnumerable); var conn = mockConn.Object; var myHub = conn.GetHubServer <IMyHub>(); // Act _ = await myHub.StreamToClientViaChannel(); _ = await myHub.StreamToClientViaChannelWithToken(token); _ = myHub.StreamToClientViaEnumerableWithToken(token); // Assert mockConn.VerifyAll(); }
public async Task StreamFromClient() { // Arrange var channel = Channel.CreateUnbounded <int>(); var channelReader = channel.Reader; var channelForEnumerable = Channel.CreateUnbounded <int>(); var asyncEnumerable = channelForEnumerable.Reader.ReadAllAsync(); var mockConn = MockHubConnection.Get(); mockConn .Setup(x => x.SendCoreAsync( nameof(IMyHub.StreamFromClientViaChannel), It.Is <object[]>(y => ((object[])y).Any(z => (ChannelReader <int>)z == channelReader)), default)) .Returns(Task.CompletedTask); mockConn .Setup(x => x.SendCoreAsync( nameof(IMyHub.StreamFromClientViaEnumerable), It.Is <object[]>(y => ((object[])y).Any(z => (IAsyncEnumerable <int>)z == asyncEnumerable)), default)) .Returns(Task.CompletedTask); mockConn .Setup(x => x.InvokeCoreAsync( nameof(IMyHub.StreamFromClientButAlsoReturnValue), typeof(int), It.Is <object[]>(y => ((object[])y).Any(z => (ChannelReader <int>)z == channelReader)), default)) .Returns(Task.FromResult((object)6)); var conn = mockConn.Object; var myHub = conn.GetHubServer <IMyHub>(); // Act await myHub.StreamFromClientViaChannel(channelReader); await myHub.StreamFromClientViaEnumerable(asyncEnumerable); var result = await myHub.StreamFromClientButAlsoReturnValue(channelReader); // Assert mockConn.VerifyAll(); Assert.Equal(6, result); }
public async Task GetNothing() { // Arrange var mockConn = MockHubConnection.Get(); mockConn .Setup(x => x.InvokeCoreAsync( nameof(IMyHub.GetNothing), typeof(object), Array.Empty <object>(), default)) .Returns(Task.FromResult(default(object))); var conn = mockConn.Object; var myHub = conn.GetHubServer <IMyHub>(); // Act await myHub.GetNothing(); // Assert mockConn.VerifyAll(); }
public async Task SetScalar() { // Arrange var mockConn = MockHubConnection.Get(); mockConn .Setup(x => x.InvokeCoreAsync( nameof(IMyHub.SetScalar), typeof(int), It.Is <object[]>(y => ((object[])y).Any(z => (int)z == 20)), default)) .Returns(Task.FromResult((object)10)); var conn = mockConn.Object; var myHub = conn.GetHubServer <IMyHub>(); // Act var result = await myHub.SetScalar(20); // Assert mockConn.VerifyAll(); Assert.Equal(10, result); }