public void WhenRecordIsSavedSuccessfully_AssignedDocumentTypeIdIsCorrectAndOkStatusCodeAndTheIdOfNewRecordIsReturned() { // Arrange Template savedTemplate = null; var filteredSkills = new List <SkillTemplateInputModel> { new SkillTemplateInputModel { SkillId = 22, Questions = new List <string>() }, new SkillTemplateInputModel { SkillId = 45, Questions = new List <string>() }, new SkillTemplateInputModel { SkillId = 667, Questions = new List <string>() }, new SkillTemplateInputModel { SkillId = 1088, Questions = new List <string>() } }; var newIdDocument = "3A20A752-652D-45ED-9AD8-8BACA37AC3E3"; var templateInput = new TemplateInputModel { CompetencyId = 13, JobFunctionLevel = 1, Skills = filteredSkills, Exercises = new List <string>() }; var commandRepositoryMock = new Mock <ICommandRepository <Template> >(); commandRepositoryMock .Setup(method => method.Insert(It.IsAny <Template>())) .ReturnsAsync((Template templateToSave) => { templateToSave.Id = newIdDocument; savedTemplate = templateToSave; return(templateToSave); }); var queryRepositoryMock = new Mock <IQueryRepository <Template, string> >(); var controllerUnderTest = new CommandTemplateController(commandRepositoryMock.Object, queryRepositoryMock.Object); // Act var actionResult = controllerUnderTest.Post(templateInput).Result; // Asserts Assert.That(actionResult, Is.Not.Null); Assert.That(actionResult, Is.TypeOf <OkNegotiatedContentResult <string> >()); Assert.That((actionResult as OkNegotiatedContentResult <string>).Content, Is.EqualTo(newIdDocument)); // Save method was called only once. commandRepositoryMock.Verify(method => method.Insert(It.IsAny <Template>()), Times.Once); // Checks the values of saved template. Assert.That(savedTemplate, Is.Not.Null); Assert.That(savedTemplate.DocumentTypeId, Is.EqualTo(DocumentType.Templates)); }
public void WhenTemplateInputIsNull_ReturnsBadRequestStatusCode() { // Arrange TemplateInputModel templateInput = null; var commandRepositoryMock = new Mock <ICommandRepository <Template> >(); var queryRepositoryMock = new Mock <IQueryRepository <Template, string> >(); var controllerUnderTest = new CommandTemplateController(commandRepositoryMock.Object, queryRepositoryMock.Object); // Act var actionResult = controllerUnderTest.Post(templateInput).Result; // Asserts Assert.That(actionResult, Is.Not.Null); Assert.That(actionResult, Is.TypeOf <BadRequestErrorMessageResult>()); Assert.That((actionResult as BadRequestErrorMessageResult).Message, Is.EqualTo("Request doesn't have a valid template to save.")); }
public void WhenAnExceptionIsThrownAtSaveTime_ReturnsInternalServerErrorStatusCode() { // Arrange var templateInput = new TemplateInputModel { CompetencyId = 13, JobFunctionLevel = 1, Skills = new List <SkillTemplateInputModel> { new SkillTemplateInputModel { SkillId = 22, Questions = new List <string>() }, new SkillTemplateInputModel { SkillId = 45, Questions = new List <string>() }, new SkillTemplateInputModel { SkillId = 667, Questions = new List <string>() }, new SkillTemplateInputModel { SkillId = 1088, Questions = new List <string>() } }, Exercises = new List <string>() }; var commandRepositoryMock = new Mock <ICommandRepository <Template> >(); commandRepositoryMock .Setup(method => method.Insert(It.IsAny <Template>())) .Throws(new Exception()); var queryRepositoryMock = new Mock <IQueryRepository <Template, string> >(); var controllerUnderTest = new CommandTemplateController(commandRepositoryMock.Object, queryRepositoryMock.Object); // Act var actionResult = controllerUnderTest.Post(templateInput).Result; // Assert Assert.That(actionResult, Is.Not.Null); Assert.That(actionResult, Is.TypeOf <InternalServerErrorResult>()); }
public async Task <IHttpActionResult> Post(TemplateInputModel templateInput) { if (templateInput == null) { return(BadRequest("Request doesn't have a valid template to save.")); } if (templateInput.Skills == null || templateInput.Skills.Count() == 0) { return(BadRequest("Input template doesn't have skills, add some ones in order to save it.")); } try { List <SkillTemplate> skills = new List <SkillTemplate>(); foreach (var skillInput in templateInput.Skills) { SkillTemplate skill = new SkillTemplate(); skill.SkillId = skillInput.SkillId; skill.Questions = skillInput.Questions; skills.Add(skill); } var templateToSave = new Template() { Name = templateInput.Name, DocumentTypeId = DocumentType.Templates, CompetencyId = templateInput.CompetencyId, JobFunctionLevel = templateInput.JobFunctionLevel, Skills = skills, Exercises = templateInput.Exercises }; var documentCreatedForPositionSkill = await this.commandRepository.Insert(templateToSave); return(Ok(documentCreatedForPositionSkill.Id)); } catch (System.Exception) { return(InternalServerError()); } }
public void WhenSkillsListIsNull_ReturnsBadRequestStatusCode() { // Arrange var templateInput = new TemplateInputModel { CompetencyId = 13, JobFunctionLevel = 1 }; var commandRepositoryMock = new Mock <ICommandRepository <Template> >(); var queryRepositoryMock = new Mock <IQueryRepository <Template, string> >(); var controllerUnderTest = new CommandTemplateController(commandRepositoryMock.Object, queryRepositoryMock.Object); // Act var actionResult = controllerUnderTest.Post(templateInput).Result; // Asserts Assert.That(actionResult, Is.Not.Null); Assert.That(actionResult, Is.TypeOf <BadRequestErrorMessageResult>()); Assert.That((actionResult as BadRequestErrorMessageResult).Message, Is.EqualTo("Input template doesn't have skills, add some ones in order to save it.")); }
public int UpdateTemplate(TemplateInputModel templateInputModel) { return(Post <int, TemplateInputModel>("core_competency_update_template", templateInputModel)); }
public TemplateModel CreateTemplate(TemplateInputModel templateInputModel) { return(Post <TemplateModel, TemplateInputModel>("core_competency_create_template", templateInputModel)); }