Exemple #1
0
    public async Task ReceiveAsync_ReceiveData()
    {
        var bytesToReceive = RandomizeByteSequence(1024);
        var receivedData   = new List <byte[]>();

        _networkUtilityMock.Setup(utility => utility.IsReadyToUse(_ipAddress)).Returns(true);
        _broadcastImplMock.SetupSequence(broadcast => broadcast.ReceiveAsync(It.IsAny <CancellationToken>()))
        .ReturnsAsync(bytesToReceive).ReturnsAsync(() =>
        {
            Task.Delay(5000).Wait();
            return(Array.Empty <byte>());
        });
        var broadcastService = new BroadcastService(_broadcastFactoryMock.Object, _networkWatcherMock.Object,
                                                    _networkUtilityMock.Object);

        broadcastService.DataReceived += (_, args) => receivedData.Add(args.Data);
        broadcastService.Initialize(_ipAddress);
        var stopAfterDelay = Task.Run(() =>
        {
            Task.Delay(20).Wait();
            broadcastService.CancelReceive();
        });
        var receiving = broadcastService.StartReceiveAsync();

        await Task.WhenAll(stopAfterDelay, receiving);

        Assert.Single(receivedData);
        Assert.True(bytesToReceive.SequenceEqual(receivedData.First()));
    }
Exemple #2
0
    public async Task ReceiveAsync_ThrowOnNotInitialized()
    {
        _networkUtilityMock.Setup(utility => utility.IsReadyToUse(_ipAddress)).Returns(true);
        var broadcastService = new BroadcastService(_broadcastFactoryMock.Object, _networkWatcherMock.Object,
                                                    _networkUtilityMock.Object);

        await Assert.ThrowsAsync <ServiceNotInitializedException>(() => broadcastService.StartReceiveAsync());

        Assert.False(broadcastService.IsReceiving);
    }
Exemple #3
0
    public async void CancelReceive()
    {
        _networkUtilityMock.Setup(utility => utility.IsReadyToUse(It.IsAny <IPAddress>())).Returns(true);
        var broadcastService = new BroadcastService(_broadcastFactoryMock.Object, _networkWatcherMock.Object,
                                                    _networkUtilityMock.Object);

        broadcastService.Initialize(_ipAddress);
        var receiveTask = broadcastService.StartReceiveAsync();

        broadcastService.CancelReceive();
        await receiveTask;

        Assert.False(broadcastService.IsReceiving);
    }