public void GivenANewTusLibrosRestAPI_WhenListingCartWithSeveralItems_ThenReturnsAList() { const int quantity1 = 4; const int quantity2 = 13; 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 }) .Build(); var cartId = sut.CreateCart("validClientId", "validPassword"); sut.AddToCart(cartId, VALID_ITEM, quantity1); sut.AddToCart(cartId, ANOTHER_VALID_ITEM, quantity2); var itemsInCart = sut.ListCart(cartId); Assert.Collection(itemsInCart, elem1 => { Assert.Equal(VALID_ITEM, elem1.Item1); Assert.Equal(quantity1, elem1.Item2); }, elem2 => { Assert.Equal(ANOTHER_VALID_ITEM, elem2.Item1); Assert.Equal(quantity2, elem2.Item2); }); }
public void GivenANewTusLibrosRestAPI_WhenListingAnInvalidCartId_ThenAnExceptionIsThrown(string invalidCartId) { var sut = new TusLibrosRestAPIStubBuilder() .AuthenticatesWith(new AuthenticatorStubBuilder() .Returns(true) .Build()) .MeasuresTimeWith(new ClockStubBuilder() .Returns(new DateTime(2020, 4, 27)) .Build()) .Build(); var exception = Assert.Throws <ArgumentException>(() => sut.ListCart(invalidCartId)); Assert.Equal(TusLibrosRestAPI.CART_ID_IS_INVALID_ERROR, exception.Message); }
public void GivenANewTusLibrosRestAPI_WhenListingAnEmptyExpiredCart_ThenAnExceptionIsThrown() { var sut = new TusLibrosRestAPIStubBuilder() .AuthenticatesWith(new AuthenticatorStubBuilder() .Returns(true) .Build()) .MeasuresTimeWith(new ClockStubBuilder() .Returns(new DateTime(2020, 4, 27)) .IsExpired(true) .Build()) .Build(); var cartId = sut.CreateCart("validClientId", "validPassword"); var exception = Assert.Throws <ArgumentException>(() => sut.ListCart(cartId)); Assert.Equal(TusLibrosRestAPI.CART_HAS_EXPIRED_ERROR, exception.Message); }
public void GivenANewTusLibrosRestAPI_WhenListingAnExpiredCartWithItems_ThenAnExceptionIsThrown() { var clockStub = new ClockStub(new DateTime(2020, 4, 28, 5, 0, 0)); var sut = new TusLibrosRestAPIStubBuilder() .AuthenticatesWith(new AuthenticatorStubBuilder() .Returns(true) .Build()) .MeasuresTimeWith(clockStub) .UsesCatalog(new List <object> { VALID_ITEM }) .Build(); var cartId = sut.CreateCart("validClientId", "validPassword"); sut.AddToCart(cartId, VALID_ITEM, 1); clockStub.AddMinutes(31); var exception = Assert.Throws <ArgumentException>(() => sut.ListCart(cartId)); Assert.Equal(TusLibrosRestAPI.CART_HAS_EXPIRED_ERROR, exception.Message); }
public void GivenANewTusLibrosRestAPI_WhenAddingItemsWithValidCartId_ThenItemsCanBeListed() { 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 }) .Build(); var cartId = sut.CreateCart("validClientId", "validPassword"); sut.AddToCart(cartId, VALID_ITEM, 1); var itemsInCart = sut.ListCart(cartId); Assert.Single(itemsInCart); Assert.Equal(VALID_ITEM, itemsInCart[0].Item1); Assert.Equal(1, itemsInCart[0].Item2); }