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