public void GetQuizTemplate_WhenTemplateFound_ReturnsOkResultWithTemplatesDetails() { // Arrange var quizTemplateStub = new QuizTemplate() { Id = 1 }; var mockQuizTemplateRepo = new Mock <IQuizTemplateRepository>(); mockQuizTemplateRepo.Setup(repo => repo.GetByID(It.IsAny <int>())) .Returns(value: quizTemplateStub); mockQuizTemplateRepo.Setup(repo => repo.GetQuestionTemplateCount(It.IsAny <int>())) .Returns(value: 42); var mockUow = new Mock <IUnitOfWork>(); mockUow.Setup(uow => uow.QuizTemplateRepository) .Returns(mockQuizTemplateRepo.Object); var controller = new ScreenController(mockUow.Object); // Act var response = controller.GetQuizTemplate(1); // Assert var objectResult = Assert.IsType <OkObjectResult>(response); var quizTemplateDetail = Assert.IsType <QuizTemplateDetailsContract>(objectResult.Value); Assert.Equal(42, quizTemplateDetail.QuestionsCount); Assert.NotNull(quizTemplateDetail.QuizTemplate); Assert.Equal(1, quizTemplateDetail.QuizTemplate.Id); }
public void GetQuizTemplate_WhenTemplateNotFound_ThrowsEntityNotFound() { // Arrange var mockQuizTemplateRepo = new Mock <IQuizTemplateRepository>(); mockQuizTemplateRepo.Setup(repo => repo.GetByID(It.IsAny <int>())) .Returns(value: null); var mockUow = new Mock <IUnitOfWork>(); mockUow.Setup(uow => uow.QuizTemplateRepository) .Returns(mockQuizTemplateRepo.Object); var controller = new ScreenController(mockUow.Object); // Act & Assert var ex = Assert.Throws <EntityNotFoundException>(() => controller.GetQuizTemplate(1)); Assert.Equal("QuizTemplate", ex.EntityType); Assert.Equal(1, ex.EntityId); }