public void TestPostAction_ShouldRedirectToGetUserContests() { var contest = new ContestModel() { Description = "test", PossibleWinnersCount = 2, Title = "testov", MaxParticipationsCount = 10 }; var identity = new GenericIdentity("as"); identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "0")); var controller = new ContestController(new PhotoContestDataMock()); var controllerContext = new TestableControllerContext(); var principal = new GenericPrincipal(identity, null); var testableHttpContext = new TestableHttpContext { User = principal }; controllerContext.HttpContext = testableHttpContext; controller.ControllerContext = controllerContext; var result = (RedirectToRouteResult)controller.Post(contest); Assert.AreEqual("Index", result.RouteValues["action"]); Assert.AreEqual("Prize", result.RouteValues["controller"]); }
public void TestRemoveParticipantAction_ContestNotExist_ShouldRedirectToGetUserContests() { var data = new PhotoContestDataMock(); var users = data.Users; users.Add(new ApplicationUser() { Id = "0", Email = "*****@*****.**", UserName = "******", FirstName = "*****@*****.**" }); var identity = new GenericIdentity("*****@*****.**"); identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "0")); var controller = new ContestController(data); var controllerContext = new TestableControllerContext(); var principal = new GenericPrincipal(identity, null); var testableHttpContext = new TestableHttpContext { User = principal }; controllerContext.HttpContext = testableHttpContext; controller.ControllerContext = controllerContext; var result = (RedirectToRouteResult)controller.RemoveParticipant(0, "*****@*****.**"); Assert.AreEqual("GetUserContests", result.RouteValues["action"]); Assert.AreEqual("User", result.RouteValues["controller"]); }
public void TestRemoveParticipantAction_ContestExist_ShouldRemoveTheParticipantFromContest() { var data = new PhotoContestDataMock(); var users = data.Users; users.Add(new ApplicationUser() { Id = "0", Email = "*****@*****.**", UserName = "******", FirstName = "*****@*****.**" }); users.Add(new ApplicationUser() { Id = "1", Email = "*****@*****.**", UserName = "******", FirstName = "*****@*****.**" }); var contests = data.Contests; contests.Add(new Contest() { Id = 0, Title = "test", Description = "test", DeadlineStrategy = DeadlineStrategy.ByTime, MaxParticipationsCount = 5, ParticipationEndTime = DateTime.Now.AddDays(10), ParticipationStrategy = Strategy.Open, VotingStrategy = Strategy.Open, State = TypeOfEnding.Ongoing, OwnerId = users.All().First().Id, Participants = data.Users.All().Where(u => u.Id == "1").ToList() }); var identity = new GenericIdentity("*****@*****.**"); identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "0")); var controller = new ContestController(data); var controllerContext = new TestableControllerContext(); var principal = new GenericPrincipal(identity, null); var testableHttpContext = new TestableHttpContext { User = principal }; controllerContext.HttpContext = testableHttpContext; controller.ControllerContext = controllerContext; var result = (RedirectToRouteResult)controller.RemoveParticipant(0, "1"); Assert.AreEqual(0, data.Contests.All().First().Participants.Count()); }
public void TestAddParticipantAction_ValidData_ShouldAddTheParticipant() { var data = new PhotoContestDataMock(); var users = data.Users; users.Add(new ApplicationUser() { Id = "0", Email = "*****@*****.**", UserName = "******", FirstName = "*****@*****.**" }); users.Add(new ApplicationUser() { Id = "1", Email = "*****@*****.**", UserName = "******", FirstName = "*****@*****.**" }); var contests = data.Contests; contests.Add(new Contest() { Id = 0, Title = "test", Description = "test", DeadlineStrategy = DeadlineStrategy.ByTime, MaxParticipationsCount = 5, ParticipationEndTime = DateTime.Now.AddDays(10), ParticipationStrategy = Strategy.Open, VotingStrategy = Strategy.Open, State = TypeOfEnding.Ongoing, OwnerId = users.All().First().Id }); var identity = new GenericIdentity("*****@*****.**"); identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "0")); var controller = new ContestController(data); var controllerContext = new TestableControllerContext(); var principal = new GenericPrincipal(identity, null); var testableHttpContext = new TestableHttpContext { User = principal }; controllerContext.HttpContext = testableHttpContext; controller.ControllerContext = controllerContext; var result = controller.AddParticipant(0, "*****@*****.**") as ViewResult; Assert.IsTrue(data.IsSaveCalled); Assert.AreEqual(1, data.Contests.All().First().Participants.Count()); }
public void TestDismissAction_ShouldRedirectToIndex() { var data = new PhotoContestDataMock(); var users = data.Users; users.Add(new ApplicationUser() { Id = "0", Email = "*****@*****.**", UserName = "******", FirstName = "*****@*****.**" }); var contests = data.Contests; contests.Add(new Contest() { Id = 0, Title = "test", Description = "test", DeadlineStrategy = DeadlineStrategy.ByTime, MaxParticipationsCount = 5, ParticipationEndTime = DateTime.Now.AddDays(10), ParticipationStrategy = Strategy.Open, VotingStrategy = Strategy.Open, State = TypeOfEnding.Ongoing, OwnerId = users.All().First().Id }); var identity = new GenericIdentity("*****@*****.**"); identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "0")); var controller = new ContestController(data); var controllerContext = new TestableControllerContext(); var principal = new GenericPrincipal(identity, null); var testableHttpContext = new TestableHttpContext { User = principal }; controllerContext.HttpContext = testableHttpContext; controller.ControllerContext = controllerContext; var result = (RedirectToRouteResult)controller.Dismiss(0); Assert.AreEqual("Index", result.RouteValues["action"]); Assert.AreEqual("Contest", result.RouteValues["controller"]); }
public void TestIndexAction_ReturnIndexView() { var identity = new GenericIdentity("as"); identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "0")); var controller = new ContestController(new PhotoContestDataMock()); var controllerContext = new TestableControllerContext(); var principal = new GenericPrincipal(identity, null); var testableHttpContext = new TestableHttpContext { User = principal }; controllerContext.HttpContext = testableHttpContext; controller.ControllerContext = controllerContext; var result = controller.Index() as ViewResult; Assert.AreEqual("Index", result.ViewName); }
public void TestPostAction_InvalidEndCondition_ShouldReturnAddView() { var contest = new ContestModel() { PossibleWinnersCount = 2 }; var identity = new GenericIdentity("as"); var controller = new ContestController(new PhotoContestDataMock()); var controllerContext = new TestableControllerContext(); var principal = new GenericPrincipal(identity, null); var testableHttpContext = new TestableHttpContext { User = principal }; controllerContext.HttpContext = testableHttpContext; controller.ControllerContext = controllerContext; var result = controller.Post(contest) as ViewResult; Assert.AreEqual("add", result.ViewName); }
public void TestIndexAction_ReturnIndexPageViewModel() { var data = new PhotoContestDataMock(); var contest = data.Contests; contest.Add(new Contest() { Id = 0, State = TypeOfEnding.Ongoing, Title = "test1", VotingStrategy = Strategy.Open, ParticipationEndTime = DateTime.Now.AddDays(10) }); contest.Add(new Contest() { Id = 1, State = TypeOfEnding.Dissmissed, Title = "test2", VotingStrategy = Strategy.Open, ContestEndTime = new DateTime(2010, 10, 10) }); contest.Add(new Contest() { Id = 2, State = TypeOfEnding.Finalized, Title = "test3", VotingStrategy = Strategy.Open, ContestEndTime = new DateTime(2011, 10, 10) }); contest.Add(new Contest() { Id = 3, State = TypeOfEnding.Ongoing, Title = "test4", VotingStrategy = Strategy.Open, ParticipationEndTime = DateTime.Now.AddDays(12) }); contest.Add(new Contest() { Id = 4, State = TypeOfEnding.Ongoing, Title = "test5", VotingStrategy = Strategy.Open, ParticipationEndTime = DateTime.Now.AddDays(13) }); int index = 0; var identity = new GenericIdentity("as"); identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "0")); var controller = new ContestController(data); var controllerContext = new TestableControllerContext(); var principal = new GenericPrincipal(identity, null); var testableHttpContext = new TestableHttpContext { User = principal }; controllerContext.HttpContext = testableHttpContext; controller.ControllerContext = controllerContext; var result = controller.Index() as ViewResult; var contestResult = (IndexPageViewModel)result.ViewData.Model; foreach (var c in contest.All().Where(c => c.State == TypeOfEnding.Ongoing).OrderByDescending(c => c.ParticipationEndTime)) { Assert.AreEqual(c.Title, contestResult.OngoingContests.Skip(index).Take(1).First().Title); index++; } index = 0; foreach (var c in contest.All().Where(c => c.State != TypeOfEnding.Ongoing).OrderByDescending(c => c.ContestEndTime)) { Assert.AreEqual(c.Title, contestResult.EndedContests.Skip(index).Take(1).First().Title); index++; } }