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); }
public ShopperApiClient(ApiSettings apiSettings) { var factory = new ShopperHttpClientFactory(apiSettings); Baskets = new BasketClient(factory); Products = new ProductClient(factory); }
async Task Run() { var client = new BasketClient("https://localhost:5001"); var userId = Guid.NewGuid(); var basket = await client.Create(userId); await client.SetItem(basket.Id, Guid.NewGuid(), 2); await client.SetItem(basket.Id, Guid.NewGuid(), 3); basket = await client.Get(basket.Id); WriteBasket(basket); await client.RemoveItem(basket.Id, basket.Items.ToArray()[0].ProductId); basket = await client.Get(basket.Id); WriteBasket(basket); await client.Clear(basket.Id); basket = await client.Get(basket.Id); WriteBasket(basket); }
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(); }
public BasketService(string username, string password) { Username = username; Password = password; tokenClient = TokenClient.Instance; bs = BasketClient.Instance; }
static void Main(string[] arg) { IFakeDataStore dataStore = new FakeDataStore(); IBasketService basketService = new BasketService(dataStore); IBasketClient basketClient = new BasketClient(basketService); IScanManager sm = new ScanManager(basketClient); if (arg.Length > 0) { sm.SetupScanListener(arg[0]); } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(basketClient)); }
public async void When_posting_to_client_the_basket_should_be_updated() { //setup client var userGuid = Guid.NewGuid(); var client = new BasketClient(userGuid.ToString()); //add product var productId = Guid.NewGuid(); await client.AddItemAsync(productId.ToString(), 2); //assert items match var basketResponse = await client.GetBasketAsync(); Assert.Single(basketResponse.Items); Assert.Equal(2, basketResponse.Items[0].Quantity); //clear basket await client.ClearBasketAsync(); //assert basket is clear basketResponse = await client.GetBasketAsync(); Assert.Empty(basketResponse.Items); //add multiple items var secondProductId = Guid.NewGuid(); await client.AddItemAsync(secondProductId.ToString(), 7); var thirdProductId = Guid.NewGuid(); await client.AddItemAsync(thirdProductId.ToString(), 1); //assert items match basketResponse = await client.GetBasketAsync(); Assert.Equal(7, basketResponse.Items.FirstOrDefault(x => x.ProductId == secondProductId.ToString()).Quantity); Assert.Equal(1, basketResponse.Items.FirstOrDefault(x => x.ProductId == thirdProductId.ToString()).Quantity); //clear basket await client.ClearBasketAsync(); //assert basket is clear basketResponse = await client.GetBasketAsync(); Assert.Empty(basketResponse.Items); }
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)); }
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)); }
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)); }
static void Main(string[] args) { bool returnStatus = false; Console.WriteLine("Program started for client C123"); BasketClient basketClient = new BasketClient("C123"); Console.WriteLine("Acquired new Basket ID: " + basketClient.BasketId); Console.WriteLine("Add item 1 with discount: "); returnStatus = basketClient.AddItem("111", "Car", "BMW", "Series 3", "Very cool", (float)5.50, 1, (float)2.50); Console.WriteLine("Return status for item 1: " + returnStatus); Console.WriteLine("Add item 2: "); returnStatus = basketClient.AddItem("112", "Bike", "Kawasaki", "Series 1", "Very cool", (float)3.50, 1, 0); Console.WriteLine("Return status for item 2: " + returnStatus); Console.WriteLine("Add item 3: "); returnStatus = basketClient.AddItem("113", "Boat", "Mercedes", "Series 2", "Very cool", (float)2.50, 1, 0); Console.WriteLine("Return status for item 3: " + returnStatus); Console.WriteLine("Retrieve basket after adding 3 items: "); string basketObject = basketClient.GetBasket(); Console.WriteLine("Basket: " + basketObject); Console.WriteLine("Update quantity of item 2: "); returnStatus = basketClient.UpdateItem("112", 2); Console.WriteLine("Return status for item 2: " + returnStatus); Console.WriteLine("Retrieve basket after updating item 2: "); basketObject = basketClient.GetBasket(); Console.WriteLine("Basket: " + basketObject); Console.WriteLine("Remove item 3: "); returnStatus = basketClient.RemoveItem("113"); Console.WriteLine("Return status for item 3: " + returnStatus); Console.WriteLine("Retrieve basket after removing item 3: "); basketObject = basketClient.GetBasket(); Console.WriteLine("Basket: " + basketObject); Console.WriteLine("Produce an order: "); string orderObject = basketClient.ProduceOrder("CUST123", "Jon Doe", "5th Street Somewhere", "07777777777", (float)20.00, (float)1.50); Console.WriteLine("Basket: " + orderObject); Console.WriteLine("Clear basket: "); returnStatus = basketClient.ClearBasket(); Console.WriteLine("Return status for clear basket: " + returnStatus); Console.WriteLine("Retrieve basket clearing items: "); basketObject = basketClient.GetBasket(); Console.WriteLine("Basket: " + basketObject); Console.WriteLine("Delete basket: "); returnStatus = basketClient.DeleteBasket(); Console.WriteLine("Return status for delete basket: " + returnStatus); Console.WriteLine("Get basket after delete: "); basketObject = basketClient.GetBasket(); Console.WriteLine("Basket: " + basketObject); Console.ReadLine(); }
public UserBasket(BasketClient basketClient) { _basketClient = basketClient ?? throw new ArgumentNullException(nameof(basketClient)); }