public void ShouldOutputBlockNotSuppliedMessage(String height) { Sut.Execute(new String[] { height }); MockedWriter.Verify(x => x.WriteLine($"Pyramid block not supplied.")); MockedTwitchClientManager.Verify(x => x.SpoolMessage(PrimaryChannelName, It.IsAny <String>(), It.IsAny <Priority>()), Times.Never()); }
public void ShouldFailToJoinHeistDueToNonPositiveWager(Int32 points) { Player.Points = 1; Sut.UpdateWager(MockedContext.Object, Player, p => points); MockedTwitchClientManager.Verify(x => x.SpoolMessage(ChatMessage.Channel, It.Is <String>(x => x.Contains(Heist.FailToJoinHeistMessage)), Priority.Low), Times.Once()); }
public void ShouldOutputInvalidHeightMessage(String height) { Sut.Execute(new String[] { height }); MockedWriter.Verify(x => x.WriteLine($"Pyramid height of \"{height}\" must be an integer")); MockedTwitchClientManager.Verify(x => x.SpoolMessage(PrimaryChannelName, It.IsAny <String>(), It.IsAny <Priority>()), Times.Never()); }
public void ShouldRefreshComponentsWithOptions(Boolean regularClientOptions) { IClientOptions clientOptions = regularClientOptions ? RegularClientOptions : ModeratorClientOptions; Sut.Refresh(clientOptions); MockedTwitchClientManager.Verify(x => x.TryInitializeTwitchClient(Sut, clientOptions, It.IsAny <LoginCredentials>()), Times.Once()); MockedTwitchClientManager.Verify(x => x.TryJoinInitialChannels(It.IsAny <IReadOnlyList <JoinedChannel> >()), Times.Once()); }
public void ShouldSetColorFromColorSelector() { var args = new OnMessageSentArgs() { SentMessage = SentMessageBuilder .Create() .WithMessage(Message) .Build() }; Sut.TwitchClient_OnMessageSent(null, args); MockedTwitchClientManager .Verify(x => x.SpoolMessage(PrimaryChannelName, $".color {Color1}", Priority.Medium), Times.Once()); }
public void ShouldIgnoreCommands() { var args = new OnMessageSentArgs() { SentMessage = SentMessageBuilder .Create() .WithMessage('.' + Message) .Build() }; Sut.TwitchClient_OnMessageSent(null, args); MockedTwitchClientManager .Verify(x => x.SpoolMessage(PrimaryChannelName, It.IsAny <String>(), Priority.Medium), Times.Never()); }
public void ShouldJoinHeistForFirstTime( Int32 playerStorage, Int32 pointsWagered, Int32 playerPoints, Int32 expectedPointsToWager, Int32 expectedPlayerPointsAfterWager) { Player.MaximumPointStorage = playerStorage; Player.Points = playerPoints; Sut.UpdateWager(MockedContext.Object, Player, p => pointsWagered); Assert.Contains(Sut.Wagers, x => x.PlayerTwitchID.Equals(Player.TwitchUserID) && x.WageredPoints == expectedPointsToWager); MockedTwitchClientManager.Verify(x => x.SpoolMessage(ChatMessage.Channel, It.Is <String>(x => x.Contains(String.Format(Heist.SucceedToJoinHeistMessage, expectedPointsToWager))), Priority.Medium), Times.Once()); Assert.Equal(expectedPlayerPointsAfterWager, Player.Points); }
public void ShouldContainRelevantInformation(Boolean isModerator, String expectedModeratorText) { Sut.IsModerator = isModerator; var commandStatus = Guid.NewGuid().ToString(); MockedCommandRepository.Setup(x => x.GetStatus()).Returns(commandStatus); MockedTwitchClientManager.Setup(x => x.PrimaryChannelName).Returns(Guid.NewGuid().ToString()); String prompt = Sut.GetPrompt(); Assert.Contains(commandStatus, prompt); Assert.Contains(expectedModeratorText, prompt); Assert.Contains(MockedTwitchClientManager.Object.PrimaryChannelName, prompt); }
public void ShouldJoinChannelIfBothInitializeClientAndJoinChannels( Boolean successfullyInitializeClient, Boolean successfullyJoinChannels, Boolean expectedSucess) { MockedTwitchClientManager .Setup(x => x.TryInitializeTwitchClient(Sut, It.IsAny <IClientOptions>(), It.IsAny <LoginCredentials>())) .Returns(successfullyInitializeClient ? LoginCredentials : null); MockedTwitchClientManager .Setup(x => x.TryJoinInitialChannels(It.IsAny <IReadOnlyList <JoinedChannel> >())) .Returns(successfullyJoinChannels); var result = Sut.Start(); Assert.Equal(expectedSucess ? LoginCredentials : null, result); }
public void ShouldLeaveHeist( Int32 playerStorage, Int32 playerPoints, Int32 initialPointsWagered, Int32 newPointsWagered, Int32 expectedPlayerPointsAfterWager) { Player.MaximumPointStorage = playerStorage; Player.Points = playerPoints; Sut.Wagers.Add(new Wager(Player.TwitchUserID, initialPointsWagered)); Sut.UpdateWager(MockedContext.Object, Player, p => newPointsWagered); Assert.DoesNotContain(Sut.Wagers, x => x.PlayerTwitchID.Equals(Player.TwitchUserID)); MockedTwitchClientManager.Verify(x => x.SpoolMessage(ChatMessage.Channel, It.Is <String>(x => x.Contains(String.Format(Heist.SucceedToLeaveHeistMessage, initialPointsWagered))), Priority.Medium), Times.Once()); Assert.Equal(expectedPlayerPointsAfterWager, Player.Points); }
public void ShouldSpoolCorrectMessage() { var args = new OnUserTimedoutArgs() { UserTimeout = new UserTimeout( channel: Guid.NewGuid().ToString(), username: Guid.NewGuid().ToString(), timeoutDuration: new Random().Next(), timeoutReason: Guid.NewGuid().ToString()) }; Sut.TwitchClient_OnUserTimedout(null, args); MockedTwitchClientManager .Verify(x => x.SpoolMessage(PrimaryChannelName, $"WideHardo FREE MY MAN {args.UserTimeout.Username.ToUpper()}", Priority.Medium), Times.Once()); }
public UsingCommandRepository() { MockedWriter = new(); MockedTwitchClientManager = new(); MockedUserCommandValidator = new(); MockedCommandConfigurationStrategy = new(); MockedTwitchClientManager.SetupAllProperties(); MockedTwitchClient = MockedTwitchClientManager.SetupClient(); MockedSetting1 = new(); MockedSetting2 = new(); MockedSetting3 = new(); MockedCommand = new(); MockedUserCommand1 = new(); MockedUserCommand2 = new(); MockedSetting1.SetupAllProperties(); MockedSetting2.SetupAllProperties(); MockedSetting3.SetupAllProperties(); MockedCommand.SetupAllProperties(); MockedUserCommand1.SetupAllProperties(); MockedUserCommand2.SetupAllProperties(); MockedSetting1.Setup(x => x.Name).Returns(Name.From("s1")); MockedSetting2.Setup(x => x.Name).Returns(Name.From("s2")); MockedSetting3.Setup(x => x.Name).Returns(Name.From("s3")); MockedCommand.Setup(x => x.Name).Returns(Name.From("c")); MockedUserCommand1.Setup(x => x.Name).Returns(Name.From("uc1")); MockedUserCommand2.Setup(x => x.Name).Returns(Name.From("uc2")); MockedSetting1.Setup(x => x.Status).Returns("1"); MockedSetting2.Setup(x => x.Status).Returns("2"); MockedSetting3.Setup(x => x.Status).Returns("3"); Sut = new CommandRepository( MockedWriter.Object, MockedTwitchClientManager.Object, MockedUserCommandValidator.Object, MockedCommandConfigurationStrategy.Object); }
public void ShouldRespondWithUnchangedWagerMessage( Int32 playerStorage, Int32 playerPoints, Int32 initialPointsWagered, Int32 newPointsWagered, Int32 expectedNewPointsWagered, Int32 expectedPlayerPointsAfterWager) { Player.MaximumPointStorage = playerStorage; Player.Points = playerPoints; Sut.Wagers.Add(new Wager(Player.TwitchUserID, initialPointsWagered)); Sut.UpdateWager(MockedContext.Object, Player, p => newPointsWagered); Assert.Contains(Sut.Wagers, x => x.PlayerTwitchID.Equals(Player.TwitchUserID) && x.WageredPoints == expectedNewPointsWagered); MockedTwitchClientManager.Verify(x => x.SpoolMessage(ChatMessage.Channel, It.Is <String>(x => x.Contains(String.Format(Heist.WagerIsUnchangedMessage, initialPointsWagered))), Priority.Low), Times.Once()); Assert.Equal(expectedPlayerPointsAfterWager, Player.Points); }
public void ShouldSetColorFromColorSelector() { var args = new OnMessageReceivedArgs() { ChatMessage = ChatMessageBuilder .Create() .WithTwitchLibMessage(TwitchLibMessageBuilder .Create() .WithUsername(BotUsername) .WithBotUserName(BotUsername)) .WithMessage(Message) .Build() }; Sut.Client_OnMessageReceived(null, args); MockedTwitchClientManager .Verify(x => x.SpoolMessage(PrimaryChannelName, $".color {Color1}", Priority.Medium), Times.Once()); }
public void ShouldIgnoreNonBotUsername() { var args = new OnMessageReceivedArgs() { ChatMessage = ChatMessageBuilder .Create() .WithTwitchLibMessage(TwitchLibMessageBuilder .Create() .WithUsername(Username) .WithBotUserName(BotUsername)) .WithMessage(Message) .Build() }; Sut.Client_OnMessageReceived(null, args); MockedTwitchClientManager .Verify(x => x.SpoolMessage(PrimaryChannelName, It.IsAny <String>(), It.IsAny <Priority>()), Times.Never()); }