Beispiel #1
0
        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));
        }
Beispiel #2
0
        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."));
        }
Beispiel #3
0
        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());
            }
        }
Beispiel #5
0
        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."));
        }
Beispiel #6
0
 public int UpdateTemplate(TemplateInputModel templateInputModel)
 {
     return(Post <int, TemplateInputModel>("core_competency_update_template", templateInputModel));
 }
Beispiel #7
0
 public TemplateModel CreateTemplate(TemplateInputModel templateInputModel)
 {
     return(Post <TemplateModel, TemplateInputModel>("core_competency_create_template", templateInputModel));
 }