public void GivenAClientWithSomeBuys_WhenGettingPurchasesWithThatClient_ThenDataIsReturned() { var sut = new TusLibrosRestAPIStubBuilder() .AuthenticatesWith(new AuthenticatorStubBuilder() .Returns(true) .Build()) .MeasuresTimeWith(new ClockStubBuilder() .Returns(new DateTime(2020, 4, 28, 12, 0, 0)) .IsExpired(false) .Build()) .UsesCatalog(new List <object> { VALID_ITEM, ANOTHER_VALID_ITEM }) .UsesPricelist(new Dictionary <object, decimal> { { VALID_ITEM, 1 }, { ANOTHER_VALID_ITEM, 2 } }) .Build(); var cartId = sut.CreateCart("clientId", "validPassword"); sut.AddToCart(cartId, VALID_ITEM, 10); sut.Checkout(cartId, VALID_CARD_NUMBER, VALID_EXPIRATION_DATE, VALID_CARD_OWNER); cartId = sut.CreateCart("clientId", "validPassword"); sut.AddToCart(cartId, ANOTHER_VALID_ITEM, 6); sut.Checkout(cartId, VALID_CARD_NUMBER, VALID_EXPIRATION_DATE, VALID_CARD_OWNER); var items = sut.ListPurchases("clientId", "validPassword"); Assert.Collection(items, elem1 => { Assert.Equal(VALID_ITEM, elem1.Item1); Assert.Equal(10, elem1.Item2); }, elem2 => { Assert.Equal(ANOTHER_VALID_ITEM, elem2.Item1); Assert.Equal(6, elem2.Item2); }); }
public void GivenANewTusLibrosRestAPI_WhenGettingPurchasesWithValidNewClient_ThenEmptyIsReturned() { var sut = new TusLibrosRestAPIStubBuilder() .AuthenticatesWith(new AuthenticatorStubBuilder() .Returns(true) .Build()) .MeasuresTimeWith(new ClockStubBuilder() .Returns(new DateTime(2020, 4, 28, 12, 0, 0)) .IsExpired(false) .Build()) .UsesCatalog(new List <object> { VALID_ITEM }) .UsesPricelist(new Dictionary <object, decimal> { { VALID_ITEM, 1 } }) .UsesBalance(new Dictionary <string, List <object> > { { "clientId", new List <object> { } } }) .Build(); sut.CreateCart("validClientId", "validPassword"); var items = sut.ListPurchases("clientId", "validPassword"); Assert.Empty(items); }
public void GivenANewTusLibrosRestAPI_WhenGettingPurchasesWithValidClientWithBuys_ThenDataIsReturned() { var sut = new TusLibrosRestAPIStubBuilder() .AuthenticatesWith(new AuthenticatorStubBuilder() .Returns(true) .Build()) .MeasuresTimeWith(new ClockStubBuilder() .Returns(new DateTime(2020, 4, 28, 12, 0, 0)) .IsExpired(false) .Build()) .UsesCatalog(new List <object> { VALID_ITEM }) .UsesPricelist(new Dictionary <object, decimal> { { VALID_ITEM, 1 } }) .UsesBalance(new Dictionary <string, List <object> > { { "clientId", new List <object> { VALID_ITEM, VALID_ITEM, VALID_ITEM, ANOTHER_VALID_ITEM } } }) .Build(); sut.CreateCart("validClientId", "validPassword"); var items = sut.ListPurchases("clientId", "validPassword"); Assert.Collection(items, elem1 => { Assert.Equal(VALID_ITEM, elem1.Item1); Assert.Equal(3, elem1.Item2); }, elem2 => { Assert.Equal(ANOTHER_VALID_ITEM, elem2.Item1); Assert.Equal(1, elem2.Item2); }); }
public void GivenANewTusLibrosRestAPI_WhenGettingPurchasesWithEmptyPassword_ThenAnExceptionIsThrown(string emptyPassword) { var sut = new TusLibrosRestAPIStubBuilder() .AuthenticatesWith(new AuthenticatorStubBuilder() .Returns(true) .Build()) .MeasuresTimeWith(new ClockStubBuilder() .Returns(new DateTime(2020, 4, 28, 12, 0, 0)) .IsExpired(false) .Build()) .Build(); var exception = Assert.Throws <ArgumentException>(() => sut.ListPurchases("validClientId", emptyPassword)); Assert.Equal(TusLibrosRestAPI.INVALID_PASSWORD_ERROR, exception.Message); }