public void OrganizationsControllers_Put_SunnyDay() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); //Adding an Organization controller.Post(new OrganizationViewModel { Name = "Macys", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name", Description = "Testing Description" } } }); var returnObject = controller.Put("Macys", new OrganizationViewModel { Name = "Macys " + DateTime.Now.TimeOfDay, Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name" + DateTime.Now.TimeOfDay, Description = "Testing Description" + DateTime.Now.TimeOfDay } } }); returnObject.Result.Should().BeOfType <OkObjectResult>(); var okObjectResult = returnObject.Result as OkObjectResult; AssertMessageProperty("Organization Macys updated successfully", okObjectResult.Value); } }
public void OrganizationsControllers_GetAll_SunnyDay() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { context.Organizations.Add(new Organization { Name = "Ariel Partners", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name", Description = "Testing Description" } } }); context.SaveChanges(); var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); var result = controller.GetAll(); result.Should().BeOfType <OkObjectResult>(); var okResult = result as OkObjectResult; var orgList = okResult.Value as IList <OrganizationViewModel>; orgList.Should().HaveCount(1).And.ContainSingle(x => x.Name == "Ariel Partners"); } }
public void OrganizationsControllers_Post_DuplicateOrganization() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); //Adding an Organization var returnObject = controller.Post(new OrganizationViewModel { Name = "Macys", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name1", Description = "Testing Description1" } } }); //Create an Organization with the same name returnObject = controller.Post(new OrganizationViewModel { Name = "Macys", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name2", Description = "Testing Description2" } } }); returnObject.Result.Should().BeOfType <BadRequestObjectResult>(); var badRequestResult = returnObject.Result as BadRequestObjectResult; AssertMessageProperty("Organization Macys already exists in the database", badRequestResult.Value); } }
public void OrganizationsControllers_Post_InvalidModel() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); controller.ViewData.ModelState.Clear(); var noname = new OrganizationViewModel(); controller.ViewData.ModelState.AddModelError("Name", "The Name field is required."); controller.ViewData.ModelState.Should().HaveCount(1); controller.ViewData.ModelState["Name"].Errors.Should().HaveCount(1); controller.ViewData.ModelState["Name"].Errors[0].ErrorMessage.Should().Be("The Name field is required."); var org = controller.Post(noname); org.Result.Should().BeOfType <BadRequestObjectResult>(); var badRequestResult = org.Result as BadRequestObjectResult; var errLst = badRequestResult.Value as SerializableError; var errMsg = ((string[])errLst["Name"]).Aggregate(string.Empty, (current, errVal) => current + errVal); Assert.AreEqual("The Name field is required.", errMsg); } }
public void OrganizationsControllers_GetAll_NoContent() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); var result = controller.GetAll(); result.Should().BeOfType <NoContentResult>(); } }
public void OrganizationsControllers_GetAll_SimulatedServerFailure() { var repo = new Mock <IHighFiveRepository>(); repo.Setup(r => r.GetAllOrganizations()).Throws <HighFiveException>(); var controller = new OrganizationsController(repo.Object, _controllerLogger); var result = controller.GetAll(); result.Should().BeOfType <BadRequestObjectResult>(); var badRequestResult = result as BadRequestObjectResult; AssertMessageProperty("Failed to get Organizations", badRequestResult.Value); }
public void OrganizationsControllers_Delete_NotFound() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); var result = controller.Delete("Macys"); result.Result.Should().BeOfType <NotFoundObjectResult>(); var badRequestResult = result.Result as NotFoundObjectResult; AssertMessageProperty("Unable to find organization Macys", badRequestResult.Value); } }
public void OrganizationsControllers_GetOrganizationByName_SunnyDay() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { context.Organizations.Add(new Organization { Name = "Ariel Partners", Values = new List <CorporateValue> { new CorporateValue { Name = "Commitment", Description = "Committed to the long term success and happiness of our customers, our people, and our partners" }, new CorporateValue { Name = "Courage", Description = "To take on difficult challenges, to accept new ideas, to accept incremental failure" }, new CorporateValue { Name = "Excellence", Description = "Always strive to exceed expectations and continuously improve" }, new CorporateValue { Name = "Integrity", Description = "Always act honestly, ethically, and do the right thing even when it hurts " } } }); context.SaveChanges(); var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); var result = controller.GetOrganizationByName("Ariel Partners"); result.Should().BeOfType <OkObjectResult>(); var okResult = result as OkObjectResult; var org = okResult.Value as OrganizationViewModel; org.Name.Should().Be("Ariel Partners"); result = controller.GetOrganizationByName("Yeehaa"); result.Should().BeOfType <NotFoundObjectResult>(); var notFoundResult = result as NotFoundObjectResult; AssertMessageProperty("Unable to find organization Yeehaa", notFoundResult.Value); } }
public void OrganizationsControllers_Put_NotFound() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); var returnObject = controller.Put("Macys", new OrganizationViewModel { Name = "Macys", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name1", Description = "Testing Description1" } } }); returnObject.Result.Should().BeOfType <NotFoundObjectResult>(); var notFoundObjectResult = returnObject.Result as NotFoundObjectResult; AssertMessageProperty("Unable to find organization Macys", notFoundObjectResult.Value); } }
public void OrganizationsControllers_Put_SimulatedServerFailure_Exception() { var repo = new Mock <IHighFiveRepository>(); repo.Setup(r => r.GetOrganizationByName(It.IsAny <string>())).Throws <Exception>(); repo.Setup(r => r.UpdateOrganization(It.IsAny <Organization>())).Throws <Exception>(); var controller = new OrganizationsController(repo.Object, _controllerLogger); var returnObject = controller.Put("Macys", new OrganizationViewModel { Name = "Macys", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name1", Description = "Testing Description1" } } }); returnObject.Result.Should().BeOfType <BadRequestObjectResult>(); var badRequestResult = returnObject.Result as BadRequestObjectResult; AssertMessageProperty("Failed to update organization Macys", badRequestResult.Value); }
public void OrganizationsControllers_Post_SimulatedServerFailure_HighFiveException() { var repo = new Mock <IHighFiveRepository>(); repo.Setup(r => r.GetOrganizationByName(It.IsAny <string>())).Throws <HighFiveException>(); repo.Setup(r => r.AddOrganization(It.IsAny <Organization>())).Throws <HighFiveException>(); var controller = new OrganizationsController(repo.Object, _controllerLogger); var returnObject = controller.Post(new OrganizationViewModel { Name = "Macys", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name1", Description = "Testing Description1" } } }); returnObject.Result.Should().BeOfType <BadRequestObjectResult>(); var badRequestResult = returnObject.Result as BadRequestObjectResult; AssertMessageProperty("Exception of type \'HighFive.Server.Services.Utils.HighFiveException\' was thrown.", badRequestResult.Value); }
public void OrganizationsControllers_Post_SunnyDay() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); var org = controller.Post(new OrganizationViewModel { Name = "Macys", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name1", Description = "Testing Description1" } } }); org.Result.Should().BeOfType <CreatedResult>(); var createdResult = org.Result as CreatedResult; var organizationVm = createdResult.Value as OrganizationViewModel; organizationVm.Name.Should().Be("Macys"); } }
public void OrganizationsControllers_Delete_SunnyDay() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); controller.Post(new OrganizationViewModel { Name = "Macys", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name1", Description = "Testing Description1" } } }); var result = controller.Delete("Macys"); result.Result.Should().BeOfType <OkObjectResult>(); var okResult = result.Result as OkObjectResult; AssertMessageProperty("Organization Macys record deleted", okResult.Value); } }
public void OrganizationsControllers_Put_BadRequest() { var options = CreateNewContextOptions(); using (var context = new HighFiveContext(_config, options)) { var repo = new HighFiveRepository(context, _repoLogger); var controller = new OrganizationsController(repo, _controllerLogger); //Adding an Organization controller.Post(new OrganizationViewModel { Name = "Macys", Values = new List <CorporateValue> { new CorporateValue { Name = "Test Name1", Description = "Testing Description1" } } }); var returnObject = controller.Put("Macys", null); returnObject.Result.Should().BeOfType <BadRequestObjectResult>(); var badRequestObjectResult = returnObject.Result as BadRequestObjectResult; AssertMessageProperty("Failed to update organization Macys", badRequestObjectResult.Value); } }