public void QuestionController_CheckVote_Should_Return_Yes() { //Arrange List <Vote> myVotes = new List <Vote>() { new Vote() { QuestionId = 0 } }; ApplicationUser user = new ApplicationUser() { UserName = "******", MyVotes = myVotes }; var mockedProvider = new Mock <IEfSociumDataProvider>(); mockedProvider.Setup(p => p.FindUserByUsername(It.IsAny <string>())).Returns(user); var mockedService = new Mock <IQuestionService>(); mockedService.Setup(s => s.GetProvider).Returns(mockedProvider.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.CheckVote(0); //Assert Assert.AreEqual("Yes", result.Data); }
public void QuestionController_CheckVote_Should_Call_Provider_Find_User_By_Username() { //Arrange ApplicationUser user = new ApplicationUser() { UserName = "******" }; var mockedProvider = new Mock <IEfSociumDataProvider>(); mockedProvider.Setup(p => p.FindUserByUsername(It.IsAny <string>())).Returns(user); var mockedService = new Mock <IQuestionService>(); mockedService.Setup(s => s.GetProvider).Returns(mockedProvider.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 controller.CheckVote(0); //Assert mockedProvider.Verify(p => p.FindUserByUsername(It.IsAny <string>()), Times.Once); }