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 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);
    }
Example #4
0
 public PlanningPokerSignalRClientFixture()
 {
     Mock         = new MockHubConnection();
     SentMessages = new HubMessageQueue(Mock.SentMessages);
     Target       = new PlanningPokerSignalRClient(Mock.HubConnectionBuilder);
     _timeoutCancellationToken = System.Diagnostics.Debugger.IsAttached ? new CancellationTokenSource() : new CancellationTokenSource(_timeout);
 }
    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);
    }