public async Task Index_WithPageBiggerThanOneAndBiggerThanTotalPages_ShouldReturnToIndex() { const int page = 10; const int totalElements = 10; //Arrange Mock <IManufacturerService> manufacturerService = new Mock <IManufacturerService>(); manufacturerService .Setup(m => m.GetAllPagedListingAsync(page)) .ReturnsAsync(new List <ManufacturerAdvancedServiceModel>()); manufacturerService .Setup(m => m.TotalCountAsync()) .ReturnsAsync(totalElements); ManufacturersController manufacturersController = new ManufacturersController(manufacturerService.Object); //Act var result = await manufacturersController.Index(page); //Assert result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); }
public async Task Details_WithIncorrectManufacturerId_ShouldShowErrorMessageAndReturnToHomeIndex() { const int nonExistingManufacturerId = int.MaxValue; string errorMessage = null; //Arrange Mock <IManufacturerService> manufacturerService = new Mock <IManufacturerService>(); manufacturerService .Setup(m => m.IsManufacturerExistingById(nonExistingManufacturerId, false)) .ReturnsAsync(false); Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>(); tempData .SetupSet(t => t[TempDataErrorMessageKey] = It.IsAny <string>()) .Callback((string key, object message) => errorMessage = message as string); ManufacturersController manufacturersController = new ManufacturersController(manufacturerService.Object) { TempData = tempData.Object }; //Act var result = await manufacturersController.Details(nonExistingManufacturerId, null); //Assert errorMessage.Should().Be(string.Format(EntityNotFound, ManufacturerEntity)); result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); result.As <RedirectToActionResult>().ControllerName.Should().Be("Home"); }
public async Task CreatePost_WithExistingManufacturer_ShouldReturnErrorMessageAndReturnValidViewModel() { string errorMessage = null; //Arrange Mock <IManufacturerService> manufacturerService = new Mock <IManufacturerService>(); manufacturerService .Setup(m => m.IsManufacturerExistingByName(null)) .ReturnsAsync(true); Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>(); tempData .SetupSet(t => t[TempDataErrorMessageKey] = It.IsAny <string>()) .Callback((string key, object message) => errorMessage = message as string); ManufacturersController manufacturersController = new ManufacturersController(null, manufacturerService.Object) { TempData = tempData.Object }; //Act var result = await manufacturersController.Create(new ManufacturerFormViewModel()); //Assert errorMessage.Should().Be(string.Format(EntityExists, ManufacturerEntity)); result.Should().BeOfType <ViewResult>(); result.As <ViewResult>().Model.Should().BeOfType <ManufacturerFormViewModel>(); }
public async Task Index_WithCorrectPage_ShouldReturnViewResultWithValidViewModel() { const int page = 3; const int totalElements = 10; //Arrange Mock <IManagerManufacturerService> managerManufacturerService = new Mock <IManagerManufacturerService>(); managerManufacturerService .Setup(m => m.GetAllPagedListingAsync(false, searchToken, page)) .ReturnsAsync(new List <ManufacturerAdvancedServiceModel>()); managerManufacturerService .Setup(m => m.TotalCountAsync(false, searchToken)) .ReturnsAsync(totalElements); ManufacturersController manufacturersController = new ManufacturersController(managerManufacturerService.Object, null); //Act var result = await manufacturersController.Index(searchToken, false, page); //Assert result.Should().BeOfType <ViewResult>(); result.As <ViewResult>().Model.Should().BeOfType <PagingElementsViewModel <ManufacturerAdvancedServiceModel> >(); PagingElementsViewModel <ManufacturerAdvancedServiceModel> model = result.As <ViewResult>().Model.As <PagingElementsViewModel <ManufacturerAdvancedServiceModel> >(); model.SearchToken.Should().Be(searchToken); model.Pagination.CurrentPage.Should().Be(page); model.Pagination.PreviousPage.Should().Be(2); model.Pagination.NextPage.Should().Be(4); model.Pagination.TotalPages.Should().Be(4); model.Pagination.TotalElements.Should().Be(totalElements); model.Pagination.PageSize.Should().Be(ManufacturerPageSize); }
public async Task Restore_WithIncorrectManufacturerId_ShouldReturnErrorMessageAndReturnToManufacturersIndex() { string errorMessage = null; //Arrange Mock <IManufacturerService> manufacturerService = new Mock <IManufacturerService>(); manufacturerService .Setup(m => m.IsManufacturerExistingById(nonExistingManufacturerId, true)) .ReturnsAsync(false); Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>(); tempData .SetupSet(t => t[TempDataErrorMessageKey] = It.IsAny <string>()) .Callback((string key, object message) => errorMessage = message as string); ManufacturersController manufacturersController = new ManufacturersController(null, manufacturerService.Object) { TempData = tempData.Object }; //Act var result = await manufacturersController.Restore(nonExistingManufacturerId); //Assert errorMessage.Should().Be(string.Format(EntityNotFound, ManufacturerEntity)); result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); result.As <RedirectToActionResult>().ControllerName.Should().Be("Manufacturers"); result.As <RedirectToActionResult>().RouteValues.Keys.Should().Contain("isDeleted"); result.As <RedirectToActionResult>().RouteValues.Values.Should().Contain(true); }
public async Task EditGet_WithCorrectManufacturerId_ShouldReturnValidViewModel() { //Arrange Mock <IManagerManufacturerService> managerManufacturerService = new Mock <IManagerManufacturerService>(); managerManufacturerService .Setup(m => m.GetEditModelAsync(manufacturerId)) .ReturnsAsync(new ManufacturerBasicServiceModel()); Mock <IManufacturerService> manufacturerService = new Mock <IManufacturerService>(); manufacturerService .Setup(m => m.IsManufacturerExistingById(manufacturerId, false)) .ReturnsAsync(true); ManufacturersController manufacturersController = new ManufacturersController(managerManufacturerService.Object, manufacturerService.Object); //Act var result = await manufacturersController.Edit(manufacturerId); //Assert result.Should().BeOfType <ViewResult>(); result.As <ViewResult>().Model.Should().BeOfType <ManufacturerFormViewModel>(); }
public async Task Index_WithPageBiggerThanOneAndBiggerThanTotalPages_ShouldReturnToIndex() { const int page = 10; const int totalElements = 10; //Arrange Mock <IManagerManufacturerService> managerManufacturerService = new Mock <IManagerManufacturerService>(); managerManufacturerService .Setup(m => m.GetAllPagedListingAsync(false, searchToken, page)) .ReturnsAsync(new List <ManufacturerAdvancedServiceModel>()); managerManufacturerService .Setup(m => m.TotalCountAsync(false, searchToken)) .ReturnsAsync(totalElements); ManufacturersController manufacturersController = new ManufacturersController(managerManufacturerService.Object, null); //Act var result = await manufacturersController.Index(searchToken, false, page); //Assert result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); result.As <RedirectToActionResult>().RouteValues.Keys.Should().Contain("searchToken"); result.As <RedirectToActionResult>().RouteValues.Values.Should().Contain(searchToken); result.As <RedirectToActionResult>().RouteValues.Keys.Should().Contain("isDeleted"); result.As <RedirectToActionResult>().RouteValues.Values.Should().Contain(false); }
public void PutManufacturer_ShouldFail_WhenDifferentId() { var controller = new ManufacturersController(new TestLicenseManagerContext()); var badresult = controller.PutManufacturer(999, GetDemoManufacturer()); Assert.IsInstanceOfType(badresult, typeof(BadRequestResult)); }
public async Task ExceptionTest() { // Arrange IManufacturerRepository mockRepo = Substitute.For <IManufacturerRepository>(); mockRepo .GetAllManufacturersAsync() .ThrowsForAnyArgs(new Exception("Test Exception")); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >(); var mockLocalizer = new MockStringLocalizer <ManufacturersController>(); IManufacturersApi theApi = new ManufacturersApi(appSettings, mockRepo); var controller = new ManufacturersController(mockCache, theApi, mockLocalizer); //// Act var actionResult = await controller.Get(); var objectResult = actionResult as Microsoft.AspNetCore.Mvc.ObjectResult; ////// Assert Assert.NotNull(objectResult); Assert.Equal(objectResult.StatusCode, (int)System.Net.HttpStatusCode.InternalServerError); }
public void CreatingManufacturerAddsManufacturerToDatabase() { Manufacturer verifiedManufacturer = null; var mockDatabase = new Mock <HonestCarsDbContext>(); var bucket = new Mock <DbSet <Manufacturer> >(); bucket.Setup(b => b.Add(It.IsAny <Manufacturer>())).Callback <Manufacturer>(m => { verifiedManufacturer = m; }); mockDatabase.SetupGet(db => db.Manufacturers).Returns(bucket.Object); mockDatabase.Setup(m => m.SaveChanges()).Verifiable(); var c = new ManufacturersController(mockDatabase.Object); var mfr = new Manufacturer { Name = "Test Manufacturer" }; var result = c.Create(mfr); mockDatabase.Verify(); Assert.NotNull(verifiedManufacturer); }
public void GetManufacturers_ShouldReturnAllManufacturers() { var context = GetDemoContext(); var controller = new ManufacturersController(context); var result = controller.GetManufacturers() as TestManufacturerDbSet; Assert.IsNotNull(result); Assert.AreEqual(context.Manufacturers.Local.Count, result.Local.Count); }
public void PostManufaturer_ShouldFail_WhenManufacturerExists() { var item = new Manufacturer {Name = "Manufacturer 1"}; var controller = new ManufacturersController(GetDemoContext()); var result = controller.PostManufacturer(item); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(BadRequestErrorMessageResult)); }
public void PutManufacturer_ShouldReturnStatusCode() { var controller = new ManufacturersController(new TestLicenseManagerContext()); var item = GetDemoManufacturer(); var result = controller.PutManufacturer(item.ManufacturerId, item) as StatusCodeResult; Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(StatusCodeResult)); Assert.AreEqual(HttpStatusCode.NoContent, result.StatusCode); }
public void CreateGet_ShouldReturnViewModel() { //Arrange ManufacturersController manufacturersController = new ManufacturersController(null, null); //Act var result = manufacturersController.Create(); //Assert result.Should().BeOfType <ViewResult>(); }
public void PostManufacturer_ShouldReturnSameManufacturer() { var controller = new ManufacturersController(new TestLicenseManagerContext()); var item = GetDemoManufacturer(); var result = controller.PostManufacturer(item) as CreatedAtRouteNegotiatedContentResult<Manufacturer>; Assert.IsNotNull(result); Assert.AreEqual(result.RouteName, "DefaultApi"); Assert.AreEqual(result.RouteValues["id"], result.Content.ManufacturerId); Assert.AreEqual(result.Content.Name, item.Name); }
public void PostManufaturer_ShouldFail_WhenManufacturerExists() { var item = new Manufacturer { Name = "Manufacturer 1" }; var controller = new ManufacturersController(GetDemoContext()); var result = controller.PostManufacturer(item); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(BadRequestErrorMessageResult)); }
public void GetManufacturer_ShouldReturnManufacturerWithSameId() { var context = GetDemoContext(); var item = GetDemoManufacturer(); context.Manufacturers.Add(item); var controller = new ManufacturersController(context); var result = controller.GetManufacturer(item.ManufacturerId) as OkNegotiatedContentResult<Manufacturer>; Assert.IsNotNull(result); Assert.AreEqual(item.ManufacturerId, result.Content.ManufacturerId); }
public void PostManufacturer_ShouldReturnSameManufacturer() { var controller = new ManufacturersController(new TestLicenseManagerContext()); var item = GetDemoManufacturer(); var result = controller.PostManufacturer(item) as CreatedAtRouteNegotiatedContentResult <Manufacturer>; Assert.IsNotNull(result); Assert.AreEqual(result.RouteName, "DefaultApi"); Assert.AreEqual(result.RouteValues["id"], result.Content.ManufacturerId); Assert.AreEqual(result.Content.Name, item.Name); }
public void Details_Should_return_404Not_Found_Error_if_Id_is_wrong() { //Arrange using (var _context = Adding_Manufacturers_To_Database_To_Test_If_It_Works_Or_Not()) using (var controller = new ManufacturersController(_context)) { //Act var res = controller.Details(55).Result as NotFoundResult; //Assert Assert.NotNull(res); } }
public void DeleteManufacturer_ShouldReturnOk() { var context = new TestLicenseManagerContext(); var item = GetDemoManufacturer(); context.Manufacturers.Add(item); var controller = new ManufacturersController(context); var result = controller.DeleteManufacturer(item.ManufacturerId) as OkNegotiatedContentResult <Manufacturer>; Assert.IsNotNull(result); Assert.AreEqual(item.ManufacturerId, result.Content.ManufacturerId); }
public async void Index_should_return_manufacturer_list() { //Arrange using (var _context = Adding_Manufacturers_To_Database_To_Test_If_It_Works_Or_Not()) using (var controller = new ManufacturersController(_context)) { //Act var result = await controller.Index() as ViewResult; //Assert Assert.Equal(manufacturers.OrderBy(m => m.ManufacturerID).ToList(), (List <Manufacturers>)result.Model); } }
public void GetManufacturer_ShouldReturnManufacturerWithSameId() { var context = GetDemoContext(); var item = GetDemoManufacturer(); context.Manufacturers.Add(item); var controller = new ManufacturersController(context); var result = controller.GetManufacturer(item.ManufacturerId) as OkNegotiatedContentResult <Manufacturer>; Assert.IsNotNull(result); Assert.AreEqual(item.ManufacturerId, result.Content.ManufacturerId); }
public void Setup() { repository = (IRepository) new DictionarySetRepository(); Utils.PopulateWithTestData(repository); controller = new ManufacturersController(repository); manufacturer = new Manufacturer(); manufacturer.Id = 1; manufacturer.Name = "Producent"; manufacturer.Rating = 4.59; manufacturer.CreationDate = new DateTime(2017, 01, 21); }
public async Task Index_WithPageLessThanOneOrEqualToZero_ShouldReturnToIndex(int page) { //Arrange ManufacturersController manufacturersController = new ManufacturersController(null); //Act var result = await manufacturersController.Index(page); //Assert result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); }
public async void Details_should_return_data_based_on_id() { //Arraneg using (var _context = Adding_Manufacturers_To_Database_To_Test_If_It_Works_Or_Not()) using (var controller = new ManufacturersController(_context)) { //Act ViewResult res = await controller.Details(5) as ViewResult; //Assert Assert.Equal(manufacturers[2], res.Model); } }
public async void Index_should_return_valid_model() { //Arrange using (var _context = Adding_Manufacturers_To_Database_To_Test_If_It_Works_Or_Not()) using (var controller = new ManufacturersController(_context)) { //Act ViewResult result = await controller.Index() as ViewResult; var model = (List <Manufacturers>)result.ViewData.Model; //Assert Assert.NotNull(model); } }
public async void Index_should_return_default_view() { //Arrange using (var _context = Adding_Manufacturers_To_Database_To_Test_If_It_Works_Or_Not()) using (var controller = new ManufacturersController(_context)) { //Act var result = await controller.Index() as ViewResult; //Assert Assert.NotNull(result); Assert.True(string.IsNullOrEmpty(result.ViewName) || result.ViewName == "Index"); } }
public async Task EditPost_WithInvalidModelState_ShouldReturnValidViewModel() { //Arrange ManufacturersController manufacturersController = new ManufacturersController(null, null); manufacturersController.ModelState.AddModelError(string.Empty, "Error"); //Act var result = await manufacturersController.Edit(manufacturerId, new ManufacturerFormViewModel()); //Assert result.Should().BeOfType <ViewResult>(); result.As <ViewResult>().Model.Should().BeOfType <ManufacturerFormViewModel>(); }
public void AddEmpty() { var initialEntities = new[] { new Manufacturer { Id = 0, Name = "Manufacturer 1", Address = "Earth"}, new Manufacturer { Id = 1, Name = "Manufacturer 2", Address = "Mars"} }; var dbContextMock = new DbContextMock<EShopContext>(DummyOptions); var manufacturersDbSetMock = dbContextMock.CreateDbSetMock(x => x.Manufacturers, initialEntities); ManufacturersController mc = new ManufacturersController(dbContextMock.Object); _ = mc.PostManufacturer(new Manufacturer { Id = 2, Name = "", Address = "No adress" }); Assert.IsFalse(dbContextMock.Object.Manufacturers.Any(m => m.Name == "")); }
public void CreatingMfrRedirectsToIndexPage() { var mockDatabase = new Mock <HonestCarsDbContext>(); var bucket = new Mock <DbSet <Manufacturer> >(); mockDatabase.SetupGet(db => db.Manufacturers).Returns(bucket.Object); mockDatabase.Setup(m => m.SaveChanges()).Verifiable(); var c = new ManufacturersController(mockDatabase.Object); var result = c.Create(new Manufacturer() { Name = "Doesn't Matter" }); Assert.True(result is Microsoft.AspNetCore.Mvc.RedirectToActionResult); }
public async Task EditPost_WithCorrectData_ShouldReturnSuccessMessageAndReturnToManufacturersIndex() { string successMessage = null; //Arrange Mock <IManagerManufacturerService> managerManufacturerService = new Mock <IManagerManufacturerService>(); managerManufacturerService .Setup(m => m.IsManufacturerModified(manufacturerId, null, null)) .ReturnsAsync(true); managerManufacturerService .Setup(m => m.EditAsync(manufacturerId, null, null)) .Returns(Task.CompletedTask); Mock <IManufacturerService> manufacturerService = new Mock <IManufacturerService>(); manufacturerService .Setup(m => m.IsManufacturerExistingById(manufacturerId, false)) .ReturnsAsync(true); manufacturerService .Setup(m => m.IsManufacturerExistingByIdAndName(manufacturerId, null)) .ReturnsAsync(false); Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>(); tempData .SetupSet(t => t[TempDataSuccessMessageKey] = It.IsAny <string>()) .Callback((string key, object message) => successMessage = message as string); ManufacturersController manufacturersController = new ManufacturersController(managerManufacturerService.Object, manufacturerService.Object) { TempData = tempData.Object }; //Act var result = await manufacturersController.Edit(manufacturerId, new ManufacturerFormViewModel()); //Assert successMessage.Should().Be(string.Format(EntityModified, ManufacturerEntity)); result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); result.As <RedirectToActionResult>().ControllerName.Should().Be("Manufacturers"); result.As <RedirectToActionResult>().RouteValues.Keys.Should().Contain("isDeleted"); result.As <RedirectToActionResult>().RouteValues.Values.Should().Contain(false); }
public async Task Details_WithCorrectManufacturerIdAndCorrectPage_ShouldReturnValidPagionationModelAndValidViewModel() { const int page = 3; const int totalElements = 10; //Arrange Mock <IManufacturerService> manufacturerService = new Mock <IManufacturerService>(); manufacturerService .Setup(m => m.IsManufacturerExistingById(manufacturerId, false)) .ReturnsAsync(true); manufacturerService .Setup(s => s.GetDetailsByIdAsync(manufacturerId, page)) .ReturnsAsync(new ManufacturerDetailsServiceModel { Supplements = new List <SupplementAdvancedServiceModel> { new SupplementAdvancedServiceModel { } } }); manufacturerService .Setup(s => s.TotalSupplementsCountAsync(manufacturerId)) .ReturnsAsync(totalElements); ManufacturersController manufacturersController = new ManufacturersController(manufacturerService.Object); //Act var result = await manufacturersController.Details(manufacturerId, manufacturerName, page); //Assert result.Should().BeOfType <ViewResult>(); result.As <ViewResult>().ViewData.Should().ContainKey("ReturnUrl"); result.As <ViewResult>().ViewData.Should().ContainValue($"/manufacturers/details/{manufacturerId}?name={manufacturerName}"); result.As <ViewResult>().Model.Should().BeOfType <PagingElementViewModel <ManufacturerDetailsServiceModel> >(); PagingElementViewModel <ManufacturerDetailsServiceModel> model = result.As <ViewResult>().Model.As <PagingElementViewModel <ManufacturerDetailsServiceModel> >(); model.Element.Supplements.Should().HaveCount(1); model.Pagination.CurrentPage.Should().Be(page); model.Pagination.PreviousPage.Should().Be(2); model.Pagination.NextPage.Should().Be(4); model.Pagination.TotalPages.Should().Be(4); model.Pagination.TotalElements.Should().Be(totalElements); model.Pagination.PageSize.Should().Be(SupplementPageSize); }
public async Task Index_WithPageLessThanOneOrEqualToZero_ShouldReturnToIndex(int page) { //Arrange ManufacturersController manufacturersController = new ManufacturersController(null, null); //Act var result = await manufacturersController.Index(searchToken, false, page); //Assert result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); result.As <RedirectToActionResult>().RouteValues.Keys.Should().Contain("searchToken"); result.As <RedirectToActionResult>().RouteValues.Values.Should().Contain(searchToken); result.As <RedirectToActionResult>().RouteValues.Keys.Should().Contain("isDeleted"); result.As <RedirectToActionResult>().RouteValues.Values.Should().Contain(false); }
public void DeleteManufacturer_ShouldReturnOk() { var context = new TestLicenseManagerContext(); var item = GetDemoManufacturer(); context.Manufacturers.Add(item); var controller = new ManufacturersController(context); var result = controller.DeleteManufacturer(item.ManufacturerId) as OkNegotiatedContentResult<Manufacturer>; Assert.IsNotNull(result); Assert.AreEqual(item.ManufacturerId, result.Content.ManufacturerId); }