Esempio n. 1
0
            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));
                }
Esempio n. 4
0
                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 _));
                }
Esempio n. 5
0
                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);
                }
Esempio n. 6
0
                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);
                }
Esempio n. 7
0
                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);
                }
Esempio n. 10
0
                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);
                }
Esempio n. 11
0
                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);
                }
Esempio n. 12
0
                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);
            }
Esempio n. 17
0
            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);
            }
Esempio n. 18
0
                public void ThenThrowsInvalidSessionID(string sessionID)
                {
                    PublishEndPointSpy publishEndPointSpy = new PublishEndPointSpy();

                    Assert.Throws <InvalidSessionIDException>(() => new GetStartingCard(new PackVersionGatewayDummy(), new AwaitingResponseGatewayDummy(), new GenerateSeedDummy(), publishEndPointSpy).Execute(sessionID));
                }