public async Task DeleteShouldReturnsNotFoundWhenDbReturnsNull() { // Arrange var drugGroupId = 1; var adminDrugGroupsService = new Mock <IAdminDrugGroupsService>(); adminDrugGroupsService .Setup(s => s.GetByIdAsync(It.IsAny <int>())) .ReturnsAsync(() => null); var controller = new DrugGroupsController(adminDrugGroupsService.Object, null); // Act var result = await controller.Delete(drugGroupId); // Assert result.Should().NotBeNull(); result.As <NotFoundResult>().StatusCode.Should().Be(WebConstants.StatusCodeNotFound); }
public async Task DeleteReturnRedirectWithValidId() { // Arrange string successMessage = null; var resultDrugGroup = new DrugGroup(); var drugGroupDb = DataHelper.GetDrugGroup(); var adminDrugGroupsService = new Mock <IAdminDrugGroupsService>(); adminDrugGroupsService .Setup(s => s.GetByIdAsync(It.IsAny <int>())) .ReturnsAsync(drugGroupDb); adminDrugGroupsService .Setup(s => s.DeleteAsync(It.IsAny <DrugGroup>())) .Callback((DrugGroup model) => { resultDrugGroup = model; }) .Returns(Task.CompletedTask); var tempData = new Mock <ITempDataDictionary>(); tempData .SetupSet(t => t[WebConstants.TempDataSuccessMessageKey] = It.IsAny <string>()) .Callback((string key, object message) => successMessage = message as string); var controller = new DrugGroupsController(adminDrugGroupsService.Object, null); controller.TempData = tempData.Object; // Act var result = await controller.Delete(drugGroupDb.Id); // Assert successMessage.Should().Be($"Drug group {drugGroupDb.Name} successfully deleted."); result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); }