public void ThenCardIDsAreRemovedFromTheirOldPacks(int cardCount, int existingCardsInPackCount, int newPackID) { if (newPackID <= cardCount) { Assert.Fail($"PackIds from 0 to {cardCount} are being used for the test. Ensure newPackID is greater than cardCount"); } PackGatewayFake packGatewayFake = new PackGatewayFake(new string[0]); CardGatewayFake cardGatewayFake = new CardGatewayFake(new CardDummy(), true); List <string> cardIDs = new List <string>(); List <ICard> cardsToReturn = new List <ICard>(); List <IValidationResult> results = new List <IValidationResult>(); Dictionary <int, string> packVersionToCardID = new Dictionary <int, string>(); SetCardGatewayToReturnCardWithOldVersion(cardCount, cardsToReturn, results, cardIDs, cardGatewayFake, packVersionToCardID); Dictionary <int, List <string> > initialCardsInPack = new Dictionary <int, List <string> >(); SetPackGatewayFakeToReturnCards(existingCardsInPackCount, cardIDs, initialCardsInPack, packGatewayFake); new AddCards(new ValidCardsDataStub(results.ToArray()), cardGatewayFake, packGatewayFake, new IncrementVersionNumberSpy(newPackID), new PublishEndPointSpy()).Execute( new string[results.Count]); AssertCardIDsHaveBeenRemovedFromPacks(initialCardsInPack, packGatewayFake, packVersionToCardID); }
private static void SetCardGatewayFakeToReturnCardWithExistingPackVersion(int cardCount, List <ICard> cardsToReturn, List <IValidationResult> results, List <string> cardIDs, CardGatewayFake cardGatewayFake) { for (int i = 0; i < cardCount; i++) { string cardID = Guid.NewGuid().ToString(); ICard newCard = new CardStub(cardID, "NEW Title", "NEW Description", "NEW Image", new ICardOption[0], "NEW Heavy"); cardsToReturn.Add(newCard); results.Add(new ValidationResult { Valid = true, ValidCardData = cardsToReturn[i] }); cardIDs.Add(new Guid().ToString()); ICard oldCard = new CardStub(cardID, "OLD Title", "OLD Description", "OLD Image", new ICardOption[0], "OLD Heavy"); oldCard.VersionAdded = i; cardGatewayFake.SetGetCardResponse(cardID, oldCard); } }