public void QuestionController_CheckOption_Should_Return_Json_Yes() { //Arrange ApplicationUser user = new ApplicationUser() { UserName = "******" }; List <Option> options = new List <Option>() { new Option() { Id = 1, Description = "test", Owner = user } }; Question question = new Question() { Id = 0, Title = "test", Owner = user, Options = options }; var mockedRepo = new Mock <IEfRepository <Question> >(); mockedRepo.Setup(r => r.GetBy(It.IsAny <int>())).Returns(question); var mockedService = new Mock <IQuestionService>(); mockedService.Setup(s => s.GetProvider.Questions).Returns(mockedRepo.Object); var helper = new MapperHelper(); var mockPrincipal = new Mock <IPrincipal>(); mockPrincipal.SetupGet(p => p.Identity.Name).Returns("Pesho"); mockPrincipal.Setup(p => p.IsInRole("User")).Returns(true); // create mock controller context var mockContext = new Mock <ControllerContext>(); mockContext.SetupGet(p => p.HttpContext.User).Returns(mockPrincipal.Object); mockContext.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true); QuestionController controller = new QuestionController(mockedService.Object, helper) { ControllerContext = mockContext.Object }; //Act var result = controller.CheckOption(0); //Assert Assert.AreEqual("Yes", result.Data); }
public void QuestionController_CheckOption_Should_Return_Json_No() { //Arrange ApplicationUser user = new ApplicationUser() { Id = "0", UserName = "******" }; List <Option> options = new List <Option>() { new Option() { Id = 1, Description = "test", OwnerId = "0", Owner = user } }; Question question = new Question() { Id = 0, Title = "test", OwnerId = "0", Owner = user, Options = options }; var mockedRepo = new Mock <IEfRepository <Question> >(); mockedRepo.Setup(r => r.GetBy(It.IsAny <int>())).Returns(question); var mockedService = new Mock <IQuestionService>(); mockedService.Setup(s => s.GetProvider.Questions).Returns(mockedRepo.Object); var helper = new MapperHelper(); var fakeHttpContext = new Mock <HttpContextBase>(); var fakeIdentity = new GenericIdentity("User"); var principal = new GenericPrincipal(fakeIdentity, null); fakeHttpContext.Setup(t => t.User).Returns(principal); var controllerContext = new Mock <ControllerContext>(); controllerContext.Setup(t => t.HttpContext).Returns(fakeHttpContext.Object); QuestionController controller = new QuestionController(mockedService.Object, helper); controller.ControllerContext = controllerContext.Object; //Act var result = controller.CheckOption(0); //Assert Assert.AreEqual("No", result.Data); }