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 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(); }
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(); }
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)); }