Пример #1
0
        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); });
        }
Пример #2
0
        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);
        }
Пример #3
0
        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); });
        }
Пример #4
0
        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);
        }