public void Constructor_Always_PropertiesAreGiven()
        {
            var mockOldChannel = new Mock <ISocketChannel>();
            var mockNewChannel = new Mock <ISocketChannel>();

            var uut = new ChannelUpdatedNotification(mockOldChannel.Object, mockNewChannel.Object);

            uut.OldChannel.ShouldBeSameAs(mockOldChannel.Object);
            uut.NewChannel.ShouldBeSameAs(mockNewChannel.Object);
        }
Exemple #2
0
        public async Task HandleNotificationAsync_ChannelUpdatedNotification_ChannelIsTextChannel_TracksChannel()
        {
            var autoMocker = new AutoMocker();

            var uut = autoMocker.CreateInstance <ChannelTrackingBehavior>();

            var mockOldChannel = new Mock <ISocketTextChannel>();
            var mockNewChannel = new Mock <ISocketTextChannel>();

            var notification = new ChannelUpdatedNotification(mockOldChannel.Object, mockNewChannel.Object);

            using (var cancellationTokenSource = new CancellationTokenSource())
            {
                await uut.HandleNotificationAsync(notification, cancellationTokenSource.Token);

                autoMocker.GetMock <IChannelService>()
                .ShouldHaveReceived(x => x.TrackChannelAsync(mockNewChannel.Object, cancellationTokenSource.Token));
            }
        }
Exemple #3
0
        public void HandleNotificationAsync_ChannelUpdatedNotification_ChannelIsNotTextChannel_CompletesImmediately(Type channelType)
        {
            var autoMocker = new AutoMocker();

            var uut = autoMocker.CreateInstance <ChannelTrackingBehavior>();

            var mockOldChannel = typeof(Mock <>).MakeGenericType(channelType).GetConstructor(Array.Empty <Type>()).Invoke(Array.Empty <object>()) as Mock;
            var mockNewChannel = typeof(Mock <>).MakeGenericType(channelType).GetConstructor(Array.Empty <Type>()).Invoke(Array.Empty <object>()) as Mock;

            var notification = new ChannelUpdatedNotification(mockOldChannel.Object as ISocketChannel, mockNewChannel.Object as ISocketChannel);

            using (var cancellationTokenSource = new CancellationTokenSource())
            {
                uut.HandleNotificationAsync(notification, cancellationTokenSource.Token)
                .IsCompletedSuccessfully.ShouldBeTrue();

                autoMocker.GetMock <IChannelService>()
                .Invocations.ShouldBeEmpty();
            }
        }