Exemple #1
0
        public void GetBasket_ReturnsBasket()
        {
            var expectedBasket = new Basket()
            {
                Id = Guid.NewGuid()
            };
            var dummyRequest = new RestRequest()
            {
                Method = Method.GET, Resource = "baskets"
            };
            var dummySettings = new BasketClientSettings()
            {
                BaseUrl = "https://api.co.uk"
            };
            var restClientMock = new Mock <IRestClient>();

            restClientMock.Setup(
                x => x.Execute <Basket>(dummyRequest))
            .Returns(new RestResponse <Basket> {
                Data = expectedBasket
            });
            var restRequestFactoryMock = new Mock <IRestRequestBuilder>();

            restRequestFactoryMock.Setup(x => x.Build()).Returns(dummyRequest);
            var sut = new BasketClient(dummySettings, restClientMock.Object, restRequestFactoryMock.Object);

            var actual = sut.GetBasket();

            Assert.Equal(expectedBasket.Id, actual.Id);
        }
Exemple #2
0
        public void CreateBasket_CallsApi()
        {
            var expectedBasket  = new Basket();
            var expectedRequest = new RestRequest()
            {
                Method = Method.POST, Resource = "baskets"
            };
            var dummySettings = new BasketClientSettings()
            {
                BaseUrl = "https://api.co.uk"
            };
            var restClientMock = new Mock <IRestClient>();

            restClientMock.Setup(
                x => x.Execute <Basket>(
                    expectedRequest))
            .Returns(new RestResponse <Basket> {
                Data = expectedBasket
            });
            var restRequestFactoryMock = new Mock <IRestRequestBuilder>();

            restRequestFactoryMock.Setup(x => x.Build()).Returns(expectedRequest);
            var sut = new BasketClient(dummySettings, restClientMock.Object, restRequestFactoryMock.Object);

            sut.CreateBasket();

            restClientMock.VerifyAll();
        }
Exemple #3
0
        static void Main(string[] args)
        {
            var settings = new BasketClientSettings
            {
                BaseUrl = "http://localhost:57332/api/"
            };

            var client = new BasketClientFactory().Create(settings);

            Console.WriteLine($"\nBegin test");

            var canConnect = client.CanConnect();

            Console.WriteLine($"Can connect to API: {canConnect}");

            Console.WriteLine($"\nCreating basket...");
            client.CreateBasket();
            var basket = client.GetBasket();

            Console.WriteLine(basket.ToString());

            Console.WriteLine($"\nAdding items...");
            client.AddItem(new Item {
                code = "Arduino", quantity = 42
            });
            client.AddItem(new Item {
                code = "BBC micro:bit", quantity = 101
            });
            client.AddItem(new Item {
                code = "RaspberryPi", quantity = 202
            });
            basket = client.GetBasket();
            Console.WriteLine(basket.ToString());

            Console.WriteLine($"\nUpdating Arduino quantity to 4...");
            client.UpdateItem(new Item {
                code = "Arduino", quantity = 4
            });
            basket = client.GetBasket();
            Console.WriteLine(basket.ToString());

            Console.WriteLine($"\nRemoving RaspberryPi...");
            client.RemoveItem("RaspberryPi");
            basket = client.GetBasket();
            Console.WriteLine(basket.ToString());

            Console.WriteLine($"\nClearing basket...");
            client.Clear();
            basket = client.GetBasket();
            Console.WriteLine(basket.ToString());

            Console.WriteLine($"\nTest completed");

            Console.WriteLine("\nPress any key to close");
            Console.ReadKey();
        }
Exemple #4
0
        public void Clearbasket_ClearsBasket()
        {
            var expectedRequest = new RestRequest()
            {
                Method = Method.POST
            };
            var dummySettings = new BasketClientSettings()
            {
                BaseUrl = "https://api.co.uk"
            };
            var restClientMock         = new Mock <IRestClient>();
            var restRequestFactoryMock = new Mock <IRestRequestBuilder>();

            restRequestFactoryMock.Setup(x => x.Build()).Returns(expectedRequest);
            var sut = new BasketClient(dummySettings, restClientMock.Object, restRequestFactoryMock.Object);

            sut.Clear();

            restClientMock.Verify(x => x.Execute(expectedRequest));
        }
Exemple #5
0
        public void RemoveItem_RemoveItemFromBasket()
        {
            var expectedItemCode = "Arduino";
            var expectedRequest  = new RestRequest()
            {
                Method = Method.DELETE
            };
            var dummySettings = new BasketClientSettings()
            {
                BaseUrl = "https://api.co.uk"
            };
            var restClientMock         = new Mock <IRestClient>();
            var restRequestFactoryMock = new Mock <IRestRequestBuilder>();

            restRequestFactoryMock.Setup(x => x.Build()).Returns(expectedRequest);
            var sut = new BasketClient(dummySettings, restClientMock.Object, restRequestFactoryMock.Object);

            sut.RemoveItem(expectedItemCode);

            restClientMock.Verify(x => x.Execute(expectedRequest));
        }
Exemple #6
0
        public void UpdateItem_UpdatesItemInBasket()
        {
            var expectedItem = new Item {
                code = "Arduino", quantity = 42
            };
            var expectedRequest = new RestRequest()
            {
                Method = Method.PUT
            };
            var dummySettings = new BasketClientSettings()
            {
                BaseUrl = "https://api.co.uk"
            };
            var restClientMock         = new Mock <IRestClient>();
            var restRequestFactoryMock = new Mock <IRestRequestBuilder>();

            restRequestFactoryMock.Setup(x => x.Build()).Returns(expectedRequest);
            var sut = new BasketClient(dummySettings, restClientMock.Object, restRequestFactoryMock.Object);

            sut.UpdateItem(expectedItem);

            restRequestFactoryMock.Verify(x => x.AddBody(expectedItem));
            restClientMock.Verify(x => x.Execute(expectedRequest));
        }