Esempio n. 1
0
                public void ThenPackGatewaySetIsCalledToUpdateBothPacks(string cardID, int numberOfCardsInOldPack, int newPackVersion, int oldPackVersion)
                {
                    string[] cardsInOldPack = new string[numberOfCardsInOldPack];
                    cardsInOldPack[0] = cardID;
                    for (int i = 1; i < numberOfCardsInOldPack; i++)
                    {
                        cardsInOldPack[i] = Guid.NewGuid().ToString();
                    }

                    CardStub cardToAdd = new CardStub(cardID, "New Card", "Dog", "Cat", new ICardOption[0], "Cow");

                    CardStub existingCard = new CardStub(cardID, "Old Card", " ", " ", new ICardOption[0], " ");

                    existingCard.VersionAdded = oldPackVersion;

                    CardGatewaySpy  cardGatewaySpy  = new CardGatewaySpy(existingCard, true);
                    PackGatewayFake packGatewayFake = new PackGatewayFake(cardsInOldPack);

                    new AddCard(new ValidCardDataStub(true, cardToAdd), cardGatewaySpy, packGatewayFake,
                                new IncrementVersionNumberSpy(newPackVersion)).Execute("Valid Json");

                    Console.WriteLine(packGatewayFake.GetCardsPackVersion + " " + oldPackVersion);
                    Assert.True(packGatewayFake.GetCardsPackVersion == oldPackVersion);
                    Assert.True(packGatewayFake.SetCardsHistory.ContainsKey(oldPackVersion));
                    Assert.False(packGatewayFake.SetCardsHistory[oldPackVersion].Contains(cardID));
                    AssertCardIDIsAddedToNewPack(cardID, newPackVersion, packGatewayFake);
                }
Esempio n. 2
0
                public void ThenUpdatesEachCardDataToGateway(int cardDataCount)
                {
                    List <string>            cardDatas     = new List <string>();
                    List <ICard>             cardsToReturn = new List <ICard>();
                    List <IValidationResult> results       = new List <IValidationResult>();

                    for (int i = 0; i < cardDataCount; i++)
                    {
                        cardDatas.Add(Guid.NewGuid().ToString());
                        cardsToReturn.Add(new CardStub(Guid.NewGuid().ToString(), "Title", "Description", "Image",
                                                       new ICardOption[0], "Heavy"));
                        results.Add(new ValidationResult {
                            Valid = true, ValidCardData = cardsToReturn[i]
                        });
                    }

                    IValidCardsData stub = new ValidCardsDataStub(results.ToArray());

                    CardGatewaySpy spy = new CardGatewaySpy(new CardDummy(), true);

                    new AddCards(stub, spy, new PackGatewayDummy(), new IncrementVersionNumberDummy(), new PublishEndPointSpy()).Execute(
                        new string[results.Count]);

                    Assert.True(spy.UpdateCardCalled);
                    foreach (ICard card in spy.UpdateCardsHistory)
                    {
                        Assert.True(cardsToReturn.Contains(card));
                    }

                    Assert.True(spy.HasCardCalled);
                    Assert.False(spy.AddCardCalled);
                }
Esempio n. 3
0
            public void ThenVersionNumberIncrementIsNotCalled(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
                    });
                }

                // Shuffle list using linq
                IValidCardsData           stub             = new ValidCardsDataStub(results.OrderBy(a => Guid.NewGuid()).ToArray());
                CardGatewaySpy            spy              = new CardGatewaySpy(new CardDummy(), true);
                IncrementVersionNumberSpy versionNumberSpy = new IncrementVersionNumberSpy(22);

                new AddCards(stub, spy, new PackGatewayDummy(), versionNumberSpy, new PublishEndPointSpy()).Execute(new string[results.Count]);
                Assert.False(versionNumberSpy.Called);
            }
Esempio n. 4
0
                public void ThenCardsIDsAndVersionNumberAreCorrectlySet(int cardDataCount, int newVersion)
                {
                    List <string>            cardDatas     = new List <string>();
                    List <ICard>             cardsToReturn = new List <ICard>();
                    List <IValidationResult> results       = new List <IValidationResult>();
                    List <string>            cardIds       = new List <string>();

                    for (int i = 0; i < cardDataCount; i++)
                    {
                        string cardID = Guid.NewGuid().ToString();
                        cardIds.Add(cardID);
                        cardDatas.Add(Guid.NewGuid().ToString());
                        cardsToReturn.Add(new CardStub(cardID, "Title", "Description", "Image",
                                                       new ICardOption[0], "Heavy"));
                        results.Add(new ValidationResult {
                            Valid = true, ValidCardData = cardsToReturn[i]
                        });
                    }


                    IValidCardsData stub = new ValidCardsDataStub(results.ToArray());
                    // Card is not in gateway
                    CardGatewaySpy  spy             = new CardGatewaySpy(new CardDummy(), false);
                    PackGatewayFake packGatewayFake = new PackGatewayFake(new string[0]);

                    new AddCards(stub, spy, packGatewayFake, new IncrementVersionNumberSpy(newVersion), new PublishEndPointSpy()).Execute(
                        new string[results.Count]);
                    Assert.True(packGatewayFake.SetCardsHistory.ContainsKey(newVersion));

                    foreach (string cardID in packGatewayFake.SetCardsHistory[newVersion])
                    {
                        Assert.True(cardIds.Contains(cardID));
                    }
                }
Esempio n. 5
0
                public void ThenNewVersionNumberIsAddedToAllCardsOnAdd(int newVersionNumber)
                {
                    List <string>            cardDatas     = new List <string>();
                    List <ICard>             cardsToReturn = new List <ICard>();
                    List <IValidationResult> results       = new List <IValidationResult>();

                    for (int i = 0; i < 10; i++)
                    {
                        cardDatas.Add(Guid.NewGuid().ToString());
                        cardsToReturn.Add(new CardStub(Guid.NewGuid().ToString(), "Title", "Description", "Image",
                                                       new ICardOption[0], "Heavy"));
                        results.Add(new ValidationResult {
                            Valid = true, ValidCardData = cardsToReturn[i]
                        });
                    }

                    IncrementVersionNumberSpy spy            = new IncrementVersionNumberSpy(newVersionNumber);
                    CardGatewaySpy            cardGatewaySpy = new CardGatewaySpy(new CardDummy(), false);

                    new AddCards(new ValidCardsDataStub(results.ToArray()), new CardGatewayDummy(), new PackGatewayDummy(), spy,
                                 new PublishEndPointSpy()).Execute(new string[results.Count]);
                    foreach (ICard card in cardGatewaySpy.AddCardHistory)
                    {
                        Assert.True(card.VersionAdded == newVersionNumber);
                    }
                    Assert.True(spy.Called);
                }
Esempio n. 6
0
            public void ThenUpdateIsNotCalled()
            {
                ICard          existingCard = new CardStub("ID", "Title", "Description", "Image", new ICardOption[0], "Heavy");
                CardGatewaySpy spy          = new CardGatewaySpy(existingCard, false);

                new RemoveCard(spy, new IncrementVersionNumberDummy()).Execute("ID");
                Assert.False(spy.UpdateCardCalled);
            }
Esempio n. 7
0
        public void ThenCardIDIsPassedToCardGatewayHasCard(string id)
        {
            CardGatewaySpy spy = new CardGatewaySpy(new CardDummy(), false);

            new RemoveCard(spy, new IncrementVersionNumberDummy()).Execute(id);
            Assert.True(spy.HasCardCalled);
            Assert.True(spy.HasCardID == id);
        }
Esempio n. 8
0
                public void ThenNewVersionNumberIsAddedToAllCardsOnAdd(int newVersionNumber)
                {
                    IncrementVersionNumberSpy spy = new IncrementVersionNumberSpy(newVersionNumber);
                    CardStub       stub           = new CardStub("Card", " ", " ", " ", new ICardOption[0], " ");
                    CardGatewaySpy cardGatewaySpy = new CardGatewaySpy(stub, false);

                    new AddCard(new ValidCardDataStub(true, stub), cardGatewaySpy, new PackGatewayDummy(), spy)
                    .Execute("Valid Json");
                    Assert.True(cardGatewaySpy.CardAdded.VersionAdded == newVersionNumber);
                }
Esempio n. 9
0
            public void ThenCardGatewayHasCardIsCalled(string cardID)
            {
                CardStub       stub           = new CardStub(cardID, " ", " ", " ", new ICardOption[0], " ");
                CardGatewaySpy cardGatewaySpy = new CardGatewaySpy(stub, false);

                new AddCard(new ValidCardDataStub(true, stub), cardGatewaySpy, new PackGatewayDummy(), new IncrementVersionNumberDummy())
                .Execute("Valid Json");
                Assert.True(cardGatewaySpy.HasCardCalled);
                Assert.True(cardGatewaySpy.HasCardID == cardID);
            }
Esempio n. 10
0
            public void ThenCardIsFetchedAndUpdated(int version, string cardID)
            {
                ICard                     existingCard = new CardStub(cardID, "Title", "Description", "Image", new ICardOption[0], "Heavy");
                CardGatewaySpy            spy          = new CardGatewaySpy(existingCard, true);
                IncrementVersionNumberSpy stub         = new IncrementVersionNumberSpy(version);

                new RemoveCard(spy, stub).Execute(cardID);

                Assert.True(spy.GetCardID == cardID);
                Assert.True(spy.UpdateCardCalled);
            }
Esempio n. 11
0
                public void ThenIncrementVersionNumberIsCalled()
                {
                    IncrementVersionNumberSpy spy = new IncrementVersionNumberSpy(0);
                    CardStub       stub           = new CardStub("Card", " ", " ", " ", new ICardOption[0], " ");
                    CardGatewaySpy cardGatewaySpy = new CardGatewaySpy(stub, false);

                    new AddCard(new ValidCardDataStub(true, stub), cardGatewaySpy, new PackGatewayDummy(), spy)
                    .Execute("Valid Json");
                    Assert.True(cardGatewaySpy.HasCardCalled);
                    Assert.True(spy.Called);
                }
Esempio n. 12
0
                public void ThenNewPackIsCreatedWithCardID(string cardID, int newVersionNumber, int cardIsnPack)
                {
                    IncrementVersionNumberSpy spy   = new IncrementVersionNumberSpy(newVersionNumber);
                    CardStub        stub            = new CardStub(cardID, " ", " ", " ", new ICardOption[0], " ");
                    CardGatewaySpy  cardGatewaySpy  = new CardGatewaySpy(stub, false);
                    PackGatewayFake packGatewayFake = new PackGatewayFake(new string[0]);

                    new AddCard(new ValidCardDataStub(true, stub), cardGatewaySpy, packGatewayFake, spy)
                    .Execute("Valid Json");
                    Assert.True(packGatewayFake.SetCardsHistory.ContainsKey(newVersionNumber));
                    Assert.True(packGatewayFake.SetCardsHistory[newVersionNumber].Contains(cardID));
                }
Esempio n. 13
0
            public void ThenNothingElseIsCalled()
            {
                CardStub       cardToAdd      = new CardStub("CardID", "New Card", "Dog", "Cat", new ICardOption[0], "Cow");
                CardStub       existingCard   = new CardStub("Now Invalid", "Old Card", " ", " ", new ICardOption[0], " ");
                CardGatewaySpy cardGatewaySpy = new CardGatewaySpy(existingCard, false);

                new AddCard(new ValidCardDataStub(false, cardToAdd), cardGatewaySpy, new PackGatewayDummy(), new IncrementVersionNumberDummy())
                .Execute("Valid Json");
                Assert.False(cardGatewaySpy.AddCardCalled);
                Assert.False(cardGatewaySpy.HasCardCalled);
                Assert.False(cardGatewaySpy.UpdateCardCalled);
            }
Esempio n. 14
0
            public void ThenCardIsUpdatedWithIncrementedVersion(int newVersion, string cardID)
            {
                ICard existingCard = new CardStub(cardID, "Title", "Description", "Image", new ICardOption[0], "Heavy");

                existingCard.VersionAdded = newVersion - 1;
                CardGatewaySpy            spy = new CardGatewaySpy(existingCard, true);
                IncrementVersionNumberSpy incrementVersionNumberSpy = new IncrementVersionNumberSpy(newVersion);

                new RemoveCard(spy, incrementVersionNumberSpy).Execute(cardID);

                Assert.True(spy.GetCardID == cardID);
                Assert.True(spy.UpdateCardCalled);
                Assert.True(incrementVersionNumberSpy.Called);
                Assert.True(spy.UpdateCardCardAdded.VersionRemoved == newVersion);
            }
Esempio n. 15
0
                public void ThenCardGatewayAddIsCalledWithPackVersion(string cardID, int versionNumber)
                {
                    CardStub cardToAdd    = new CardStub(cardID, "New Card", "Dog", "Cat", new ICardOption[0], "Cow");
                    CardStub existingCard = new CardStub(cardID + "Now Invalid", "Old Card", " ", " ",
                                                         new ICardOption[0], " ");
                    CardGatewaySpy cardGatewaySpy = new CardGatewaySpy(existingCard, false);

                    new AddCard(new ValidCardDataStub(true, cardToAdd), cardGatewaySpy, new PackGatewayDummy(),
                                new IncrementVersionNumberSpy(versionNumber)).Execute("Valid Json");
                    Assert.True(cardGatewaySpy.AddCardCalled);

                    Assert.True(cardGatewaySpy.CardAdded.Title == cardToAdd.Title);
                    Assert.True(cardGatewaySpy.CardAdded.Description == cardToAdd.Description);
                    Assert.True(cardGatewaySpy.CardAdded.CardWeight == cardToAdd.CardWeight);
                    Assert.True(cardGatewaySpy.CardAdded.CardID == cardToAdd.CardID);
                    Assert.True(cardGatewaySpy.CardAdded.ImageURL == cardToAdd.ImageURL);
                    Assert.True(cardGatewaySpy.CardAdded.Options == cardToAdd.Options);
                    Assert.True(cardGatewaySpy.CardAdded.VersionAdded == versionNumber);
                    Assert.True(cardGatewaySpy.CardAdded.VersionRemoved == null);
                    Assert.True(cardGatewaySpy.CardAdded == cardToAdd);
                }