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>());
        }
Beispiel #4
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."));
        }