public static VraagDTO MapViewModelToAntwoordDTO(VragenViewModelReponse viewmodel)
 {
     if (viewmodel == null)
     {
         throw new NullReferenceException("vraag model is null");
     }
     return(new VraagDTO
     {
         Id = viewmodel.Id,
         MaxScoreVraag = viewmodel.MaxScoreVraag,
         TypeVraagId = viewmodel.TypeVraagId,
         JsonCorrecteAntwoord = viewmodel.JsonCorrecteAntwoord,
         JsonMogelijkeAntwoorden = viewmodel.JsonMogelijkeAntwoorden,
         VraagStelling = viewmodel.VraagStelling,
         UpdatedAt = viewmodel.UpdatedAt
     });
 }
        public void UpdateVraagCorrect()
        {
            var vraagDTO = new VraagDTO
            {
                Id = 1,
                JsonCorrecteAntwoord    = "Correct",
                JsonMogelijkeAntwoorden = "Mogelijk",
                MaxScoreVraag           = 10,
                TypeVraagId             = 1,
                VraagStelling           = "Vraagstelling"
            };

            var response = new Response <VraagDTO> {
                DTO = vraagDTO
            };

            //Arrange
            var mockService = new Mock <IVragenService>();

            mockService.Setup(x => x.Update(It.IsAny <VraagDTO>())).Returns(response);
            var controller = new VragenController(mockService.Object);

            var vraagViewModel = new VragenViewModelReponse
            {
                Id = 1,
                JsonCorrecteAntwoord    = "Correct",
                JsonMogelijkeAntwoorden = "Mogelijk",
                MaxScoreVraag           = 10,
                TypeVraagId             = 1,
                VraagStelling           = "Vraagstelling"
            };

            var updateVragen = controller.Update(vraagViewModel) as ObjectResult;
            var entity       = updateVragen.Value as VragenViewModelReponse;

            //Assert
            Assert.DoesNotThrow(() => controller.Update(vraagViewModel));
            Assert.That(entity.Id, Is.EqualTo(vraagViewModel.Id));
            Assert.That(entity.JsonCorrecteAntwoord, Is.EqualTo(vraagDTO.JsonCorrecteAntwoord));
            Assert.That(entity.JsonMogelijkeAntwoorden, Is.EqualTo(vraagDTO.JsonMogelijkeAntwoorden));
            Assert.That(entity.MaxScoreVraag, Is.EqualTo(vraagDTO.MaxScoreVraag));
            Assert.That(entity.TypeVraagId, Is.EqualTo(vraagDTO.TypeVraagId));
            Assert.That(entity.VraagStelling, Is.EqualTo(vraagDTO.VraagStelling));
        }
        public IActionResult Update([FromBody] VragenViewModelReponse vraagViewModel)
        {
            try
            {
                var vraagDTO = VraagViewModelMapper.MapViewModelToAntwoordDTO(vraagViewModel);
                var vraag    = _service.Update(vraagDTO);
                if (vraag.DidError)
                {
                    return(BadRequest(vraag.Errors));
                }

                var vraagReturn = VraagViewModelMapper.MapVraagDTOToVraagViewModel(vraag.DTO);
                return(Ok(vraagReturn));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public void DeleteVraagCorrect()
        {
            var vraagDTO = new VraagDTO
            {
                Id = 1,
                JsonCorrecteAntwoord    = "Correct",
                JsonMogelijkeAntwoorden = "Mogelijk",
                MaxScoreVraag           = 10,
                TypeVraagId             = 1,
                VraagStelling           = "Vraagstelling"
            };

            var response = new Response <int> {
                DTO = 1
            };

            //Arrange
            var mockService = new Mock <IVragenService>();

            mockService.Setup(x => x.Delete(1)).Returns(response);
            var controller = new VragenController(mockService.Object);

            //Act
            var vraagViewModel = new VragenViewModelReponse
            {
                Id = 1,
                JsonCorrecteAntwoord    = "Correct",
                JsonMogelijkeAntwoorden = "Mogelijk",
                MaxScoreVraag           = 10,
                TypeVraagId             = 1,
                VraagStelling           = "Vraagstelling"
            };

            var deleteVraag = controller.Delete(vraagViewModel.Id) as ObjectResult;


            //Assert
            Assert.DoesNotThrow(() => controller.Delete(vraagViewModel.Id));
        }