[InlineData(19, "453a2901-150b-4211-84b1-a40ac2ba4a35", true, false)] // Unsuccessful Join (User already in group) public void TestJoinGroup(int groupId, string aspUserId, bool userIsSecLevel1, bool expectingSuccess) { var controllerContextMock = new Mock <ControllerContext>() { CallBase = true }; var contextMock = new Mock <ApplicationDbContext>() { CallBase = true }; contextMock.Setup(c => c.SaveChanges()).Returns(1); controllerContextMock.Setup(c => c.HttpContext.User.IsInRole("SecurityLevel1")).Returns(userIsSecLevel1); var controller = new GroupsController { ControllerContext = controllerContextMock.Object, Context = contextMock.Object, GetUserId = () => aspUserId }; var result = controller.Join(groupId); if (expectingSuccess) { var redirectResult = (RedirectToRouteResult)result; Assert.Equal("Details", redirectResult.RouteValues["action"]); } else { Assert.True(result is HttpNotFoundResult || result is ContentResult); } }