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); }
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); }
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); }
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)); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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)); }
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); }
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); }
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); }