public void Create_CreacionFallida_BadRequest()
        {
            //Arrange
            CreatorTemplateViewModel templateViewModel = new CreatorTemplateViewModel();
            Exception ex = new Exception();
            //Mock
            Mock <ICreatorViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> > creatorViewModelService = new Mock <ICreatorViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> >();

            creatorViewModelService.Setup((viewModelService) => viewModelService.Create(templateViewModel)).Throws(new Exception(ex.Message));
            //SUT
            var SUT    = new ClassCreatorController(creatorViewModelService.Object);
            var result = SUT.Create(templateViewModel) as ObjectResult;

            //Assert
            Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode);
        }
        public void Create_CreacionExitosa_Respuesta200Http()
        {
            //Arrange
            CreatorTemplateViewModel templateViewModel = new CreatorTemplateViewModel();

            //Mock
            Mock <ICreatorViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> > creatorViewModelService = new Mock <ICreatorViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> >();

            creatorViewModelService.Setup((viewModelService) => viewModelService.Create(templateViewModel));

            //SUT
            var SUT    = new ClassCreatorController(creatorViewModelService.Object);
            var result = SUT.Create(templateViewModel) as ObjectResult;

            //Assert
            Assert.Equal(StatusCodes.Status201Created, result.StatusCode);
        }
        public void Update_ValidParams_ResponseStatus200()
        {
            //Arrange
            CreatorTemplateViewModel templateViewModel = new CreatorTemplateViewModel();
            Guid id = new Guid("00000000-0000-0000-0000-000000000000");

            //Mock
            Mock <IUpdaterViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> > updaterViewModelService = new Mock <IUpdaterViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> >();

            updaterViewModelService.Setup((viewModelService) => viewModelService.Update(id, templateViewModel));

            //SUT
            var SUT    = new ClassUpdaterController(updaterViewModelService.Object);
            var result = SUT.Update(id, templateViewModel) as ObjectResult;

            //Assert
            Assert.Equal(StatusCodes.Status200OK, result.StatusCode);
        }
        public void Update_ParamsNull_FailedResponse()
        {
            //Arrange
            Guid id = new Guid("00000000-0000-0000-0000-000000000000");
            var  templateViewModel = new CreatorTemplateViewModel();

            //Mock
            Mock <IUpdaterViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> > updaterViewModelService = new Mock <IUpdaterViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> >();

            updaterViewModelService.Setup((viewModelService) => viewModelService.Update(id, templateViewModel)).Throws(new GettingException("Record not found."));

            //SUT
            var SUT    = new ClassUpdaterController(updaterViewModelService.Object);
            var result = SUT.Update(id, templateViewModel) as ObjectResult;

            //Assert
            Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode);
        }
        public void create_RegistroCreadoExitosamente_NotCreate()
        {
            //Arrange
            Template template = new Template();
            CreatorTemplateViewModel templateViewModel = new CreatorTemplateViewModel();

            //Mock
            Mock <IMapper> mapper = new Mock <IMapper>();
            Mock <ICreatorService <Template> > creatorService = new Mock <ICreatorService <Template> >();

            mapper.Setup((map) => map.Map <Template>(templateViewModel)).Returns(template);
            creatorService.Setup((create) => create.Create(template)).Throws(new GettingException());
            //SUT
            var SUT = new ClassCreatorViewModelService(mapper.Object, creatorService.Object);

            //Assert
            Assert.Throws <GettingException>(() => SUT.Create(templateViewModel));
        }
        public void Update_InvokeViewModelService_MethodInvokedSuccessfully()
        {
            //Arrange
            CreatorTemplateViewModel templateViewModel = new CreatorTemplateViewModel();
            Guid id = new Guid("00000000-0000-0000-0000-000000000000");

            //Moq
            Mock <IUpdaterViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> > updaterViewModelService = new Mock <IUpdaterViewModelService <Domain.Entities.Template, CreatorTemplateViewModel> >();

            updaterViewModelService.Setup((viewModelService) => viewModelService.Update(id, templateViewModel));

            //SUT
            var SUT = new ClassUpdaterController(updaterViewModelService.Object);

            SUT.Update(id, templateViewModel);

            //Assert
            updaterViewModelService.Verify((v) => v.Update(id, templateViewModel), Times.Once);
        }
        public void Create_RecordCreated_ReturnGuid()
        {
            //Arrange
            Template template = new Template();
            CreatorTemplateViewModel templateViewModel = new CreatorTemplateViewModel();

            //Mock
            Mock <IMapper> mapper = new Mock <IMapper>();
            Mock <ICreatorService <Template> > creatorService = new Mock <ICreatorService <Template> >();

            mapper.Setup((map) => map.Map <Template>(templateViewModel)).Returns(template);
            creatorService.Setup((create) => create.Create(template)).Returns(new Guid("23CD9099-DCC2-4CD5-CEB5-08D7961EA229"));
            //SUT
            var  SUT = new ClassCreatorViewModelService(mapper.Object, creatorService.Object);
            Guid id  = SUT.Create(templateViewModel);

            //Assert
            Assert.IsType <Guid>(id);
        }