示例#1
0
        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); });
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }