public void ThenPublishesMessageWithFailDetails(int validCards, int invalidCards) { List <IValidationResult> results = new List <IValidationResult>(); for (int i = 0; i < validCards; i++) { results.Add(new ValidationResult() { ErrorMessage = Guid.NewGuid().ToString(), Valid = true }); } for (int i = 0; i < invalidCards; i++) { results.Add(new ValidationResult() { ErrorMessage = Guid.NewGuid().ToString(), Valid = false }); } IValidCardsData stub = new ValidCardsDataStub(results.OrderBy(a => Guid.NewGuid()).ToArray()); PublishEndPointSpy spy = new PublishEndPointSpy(); new AddCards(stub, new CardGatewayDummy(), new PackGatewayDummy(), new IncrementVersionNumberDummy(), spy).Execute( new string[results.Count]); Assert.True(spy.MessageObject is IFailedToAddCards); IFailedToAddCards failedToAddCardsMessage = (IFailedToAddCards)spy.MessageObject; foreach (IValidationResult validationResult in results.Where(_ => !_.Valid)) { Assert.True(failedToAddCardsMessage.ErrorMessages.Any(_ => _.ToLower().Trim().Contains(validationResult.ErrorMessage.ToLower().Trim()))); } }
public void ThenGameResponseIsPublishedWithMessageIDAndSessionID(string sessionID, string messageID, string cardID, int packVersion, int seed, string cardtoAdd, float probability) { GameDataGatewaySpy gameDataGatewaySpy = new GameDataGatewaySpy(); PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); Tuple <string, float>[] cardsToAdd = { new Tuple <string, float>(cardtoAdd, probability) }; SaveNewGameData saveNewGameData = new SaveNewGameData(gameDataGatewaySpy, publishEndPointSpy); saveNewGameData.Execute( sessionID, messageID, new GameDataDummy { CurrentCardID = cardID, Seed = seed, PackVersion = packVersion, CardsToAdd = cardsToAdd } ); Assert.True(publishEndPointSpy.MessageObject is IGameResponse); IGameResponse gameResponse = (IGameResponse)publishEndPointSpy.MessageObject; Assert.True(gameResponse.SessionID == sessionID); Assert.True(gameResponse.MessageID == messageID); }
public void ThenThrowsInvalidSessionID(string sessionID) { PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); IGetGameInProgress getGameInProgress = new GetGameInProgress(new AwaitingResponseGatewayDummy(), publishEndPointSpy); Assert.Throws <InvalidSessionIDException>(() => getGameInProgress.Execute(sessionID)); }
public void ThenNewMessageIDIsGUID() { GenerateSeedStub stub = new GenerateSeedStub(0); PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); new GetStartingCard(new PackVersionGatewayDummy(), new AwaitingResponseGatewayDummy(), stub, publishEndPointSpy).Execute("SessionID"); Assert.True(publishEndPointSpy.MessageObject is IRequestStartingCard); IRequestStartingCard newGameData = (IRequestStartingCard)publishEndPointSpy.MessageObject; Assert.True(Guid.TryParse(newGameData.MessageID, out Guid _)); }
public void ThenValueIsSavedToCreateGameGateway(int seedGeneratorReturnValue) { GenerateSeedStub stub = new GenerateSeedStub(seedGeneratorReturnValue); PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); new GetStartingCard(new PackVersionGatewayDummy(), new AwaitingResponseGatewayDummy(), stub, publishEndPointSpy).Execute("SessionID"); Assert.True(publishEndPointSpy.MessageObject is IRequestStartingCard); IRequestStartingCard newGameData = (IRequestStartingCard)publishEndPointSpy.MessageObject; Assert.True(Math.Abs(newGameData.Seed - seedGeneratorReturnValue) < 0.1f); }
public void ThenValueIsSavedToCreateGameGateway(int version) { PackVersionGatewayStub stub = new PackVersionGatewayStub(version); PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); new GetStartingCard(stub, new AwaitingResponseGatewayDummy(), new GenerateSeedDummy(), publishEndPointSpy).Execute("SessionID"); Assert.True(publishEndPointSpy.MessageObject is IRequestStartingCard); IRequestStartingCard newGameData = (IRequestStartingCard)publishEndPointSpy.MessageObject; Assert.True(newGameData.PackVersionNumber == version); }
public void ThenValueIsSavedToCreateGameGateway(string sessionID) { PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); new GetStartingCard(new PackVersionGatewayDummy(), new AwaitingResponseGatewayDummy(), new GenerateSeedDummy(), publishEndPointSpy).Execute(sessionID); Assert.True(publishEndPointSpy.MessageObject is IRequestStartingCard); IRequestStartingCard newGameData = (IRequestStartingCard)publishEndPointSpy.MessageObject; Assert.True(newGameData.SessionID == sessionID); }
public void ThenNewMessageIDIsGUID() { PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); IGetGameInProgress getGameInProgress = new GetGameInProgress(new AwaitingResponseGatewayDummy(), publishEndPointSpy); getGameInProgress.Execute("SessionID"); Assert.True(publishEndPointSpy.MessageObject is IGetGameData); IGetGameData gameData = (IGetGameData)publishEndPointSpy.MessageObject; Assert.True(Guid.TryParse(gameData.MessageID, out Guid _)); }
public void ThenValueIsSavedToCreateGameGateway(string sessionID) { PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); IGetGameInProgress createNewGame = new GetGameInProgress(new AwaitingResponseGatewayDummy(), publishEndPointSpy); createNewGame.Execute(sessionID); Assert.True(publishEndPointSpy.MessageObject is IGetGameData); IGetGameData newGameData = (IGetGameData)publishEndPointSpy.MessageObject; Assert.True(newGameData.SessionID == sessionID); }
public void ThenSessionIDIsPublishedToSessionNotFoundQueue(string sessionID) { GameDataGatewayStub stub = new GameDataGatewayStub(null, false); PublishEndPointSpy spy = new PublishEndPointSpy(); new IsGameSessionInProgress(stub, spy).Execute(sessionID, "Wag"); Assert.True(spy.MessageObject is IRequestGameSessionNotFound); IRequestGameSessionNotFound messageObject = spy.MessageObject as IRequestGameSessionNotFound; Assert.True(messageObject.SessionID == sessionID); }
public void ThenMessageIDIsPublishedToSessionFoundQueue(string messageID) { GameDataGatewayStub stub = new GameDataGatewayStub(null, true); PublishEndPointSpy spy = new PublishEndPointSpy(); new IsGameSessionInProgress(stub, spy).Execute("Scout Is A Good Dog", messageID); Assert.True(spy.MessageObject is IRequestGameSessionFound); IRequestGameSessionFound messageObject = spy.MessageObject as IRequestGameSessionFound; Assert.True(messageObject.MessageID == messageID); }
public void ThenNewMessageIdIsAddedToAwaitingResponseGateway() { GenerateSeedStub stub = new GenerateSeedStub(0); PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); AwaitingResponseGatewaySpy spy = new AwaitingResponseGatewaySpy(true); new GetStartingCard(new PackVersionGatewayDummy(), spy, stub, publishEndPointSpy).Execute("SessionID"); Assert.True(publishEndPointSpy.MessageObject is IRequestStartingCard); IRequestStartingCard newGameData = (IRequestStartingCard)publishEndPointSpy.MessageObject; Assert.True(spy.SaveIDInput == newGameData.MessageID); }
public void ThenNewVersionNumberIsPublishedAsIRequestPackVersionNumberUpdated(int currentVersionNumber) { VersionNumberGatewaySpy spy = new VersionNumberGatewaySpy(currentVersionNumber); PublishEndPointSpy publishSpy = new PublishEndPointSpy(); new IncrementVersionNumber(spy, publishSpy).Execute(); Assert.True(publishSpy.MessageObject is IRequestPackVersionNumberUpdated); IRequestPackVersionNumberUpdated requestPackVersionNumberUpdated = (IRequestPackVersionNumberUpdated)publishSpy.MessageObject; Assert.True(requestPackVersionNumberUpdated.PackNumber == currentVersionNumber + 1); }
public void ThenNewMessageIdIsAddedToAwaitingResponseGateway() { PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); AwaitingResponseGatewaySpy spy = new AwaitingResponseGatewaySpy(true); IGetGameInProgress getGameInProgress = new GetGameInProgress(spy, publishEndPointSpy); getGameInProgress.Execute("SessionID"); Assert.True(publishEndPointSpy.MessageObject is IGetGameData); IGetGameData newGameData = (IGetGameData)publishEndPointSpy.MessageObject; Assert.True(spy.SaveIDInput == newGameData.MessageID); }
public void ThenNewMessageIDIsGUID() { PublishEndPointSpy spy = new PublishEndPointSpy(); ICheckIfGameInProgress checkIfGameInProgress = new CheckIfGameInProgress(new AwaitingResponseGatewayDummy(), spy); string id = Guid.NewGuid().ToString(); checkIfGameInProgress.Execute(id); IRequestGameIsSessionIDInUse requestGameIsSessionIDInUse = spy.MessageObject as IRequestGameIsSessionIDInUse; Assert.IsNotNull(requestGameIsSessionIDInUse); Assert.True(Guid.TryParse(requestGameIsSessionIDInUse.MessageID, out Guid _)); }
public void ThenUIDIsAddedToRequestAndSavedToAwaitingResponseGateway() { AwaitingResponseGatewaySpy gatewaySpy = new AwaitingResponseGatewaySpy(false); PublishEndPointSpy publishSpy = new PublishEndPointSpy(); ICheckIfGameInProgress checkIfGameInProgress = new CheckIfGameInProgress(gatewaySpy, publishSpy); string id = Guid.NewGuid().ToString(); checkIfGameInProgress.Execute(id); IRequestGameIsSessionIDInUse requestGameIsSessionIDInUse = publishSpy.MessageObject as IRequestGameIsSessionIDInUse; Assert.NotNull(requestGameIsSessionIDInUse); Assert.False(requestGameIsSessionIDInUse.MessageID == null || string.IsNullOrEmpty(requestGameIsSessionIDInUse.MessageID) || string.IsNullOrWhiteSpace(requestGameIsSessionIDInUse.MessageID)); Assert.True(requestGameIsSessionIDInUse.MessageID == gatewaySpy.SaveIDInput); }
public void ThenGameResponseIsPublishedWithCorrectGameData(string sessionID, string messageID, string cardID, int packVersion, int seed, string cardtoAdd, float probability, string statKey, int statValue) { GameDataGatewaySpy gameDataGatewaySpy = new GameDataGatewaySpy(); PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); Tuple <string, float>[] cardsToAdd = { new Tuple <string, float>(cardtoAdd, probability) }; SaveNewGameData saveNewGameData = new SaveNewGameData(gameDataGatewaySpy, publishEndPointSpy); saveNewGameData.Execute( sessionID, messageID, new GameDataDummy { CurrentCardID = cardID, Seed = seed, PackVersion = packVersion, CardsToAdd = cardsToAdd, CurrentStats = new Dictionary <string, int> { { statKey, statValue } } } ); Assert.True(publishEndPointSpy.MessageObject is IGameResponse); IGameResponse gameResponse = (IGameResponse)publishEndPointSpy.MessageObject; Assert.True(gameResponse.Seed == seed); Assert.True(gameResponse.PackVersion == packVersion); Assert.True(gameResponse.CurrentCardID == cardID); Assert.True(gameResponse.CardsToAdd[0].Item1 == cardtoAdd); Assert.True(gameResponse.CardsToAdd[0].Item2 == probability); Assert.True(gameResponse.Seed == seed); Assert.True(gameResponse.CurrentStats.ContainsKey(statKey)); Assert.True(gameResponse.CurrentStats[statKey] == statValue); }
public void ThenThrowsInvalidSessionID(string sessionID) { PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy(); Assert.Throws <InvalidSessionIDException>(() => new GetStartingCard(new PackVersionGatewayDummy(), new AwaitingResponseGatewayDummy(), new GenerateSeedDummy(), publishEndPointSpy).Execute(sessionID)); }