public async void SaveDeliveryBadRequestDeliveryIsNull() { // Arrange var mock = new Mock <IDeliveryRepository>(); DeliveryController controller = new DeliveryController(mock.Object); // Act BadRequestObjectResult result = await controller.SaveDelivery(null) as BadRequestObjectResult; // Assert mock.Verify(rep => rep.AddDeliveryAsync(It.IsAny <Models.Delivery>()), Times.Never); Assert.Equal((int?)HttpStatusCode.BadRequest, result.StatusCode); }
public async void SaveDeliveryBadRequestAlreadyExists(Models.Delivery[] deliveries) { // Arrange var mock = new Mock <IDeliveryRepository>(); DeliveryController controller = new DeliveryController(mock.Object); mock.Setup(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>())).Returns(Task <ModelsDelivery> .Run(() => deliveries[0])); // Act BadRequestObjectResult result = await controller.SaveDelivery(deliveries[0]) as BadRequestObjectResult; // Assert mock.Verify(m => m.AddDeliveryAsync(It.IsAny <Models.Delivery>()), Times.Never); Assert.Equal((int?)HttpStatusCode.BadRequest, result.StatusCode); }
public async void SaveDeliveryCreated(Models.Delivery[] deliveries) { // Arrange Models.Delivery deliveryToSave = deliveries[0]; var mock = new Mock <IDeliveryRepository>(); DeliveryController controller = new DeliveryController(mock.Object); mock.Setup(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>())).Returns(Task <Models.Delivery> .Run(() => default(Models.Delivery))); // Act CreatedAtRouteResult result = await controller.SaveDelivery(deliveryToSave) as CreatedAtRouteResult; // Assert Assert.Equal((int?)HttpStatusCode.Created, result.StatusCode); mock.Verify(rep => rep.AddDeliveryAsync(It.IsAny <Models.Delivery>()), Times.Once); }
public void SaveDeliveryThrowsException() { // Arrange var mock = new Mock <IDeliveryRepository>(); mock.Setup(rep => rep.GetDeliveryByIdAsync(It.IsAny <string>())).Throws <DeliveryDomainException>(); DeliveryController controller = new DeliveryController(mock.Object); // Act & Assert Exception ex = Assert.ThrowsAsync <DeliveryDomainException>( async() => await controller.SaveDelivery(new Models.Delivery() { Id = "Random Id" }) )?.Result; Assert.Equal(expected: typeof(DeliveryDomainException), actual: ex.GetType()); }