コード例 #1
0
        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"]);
        }
コード例 #2
0
        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"]);
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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());
        }
コード例 #5
0
        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"]);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: charlesj/Apollo
        public void Configure(IApplicationBuilder app)
        {
            Logger.Info("Booting...");

            var kernel  = new Kernel();
            var locator = kernel.Boot(BootOptions.Defaults, new SimpleInjectorServiceLocator());

            if (locator == null)
            {
                Environment.Exit(1);
            }

            var httpRequestProcessor = locator.Get <IHttpRequestProcessor>();

            app.UseCors(builder =>
                        builder.AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                        );

            app.Run(async ctx =>
            {
                Logger.Trace("Beginning Request Process");
                var context = new TestableHttpContext(ctx);
                await httpRequestProcessor.Process(context);
                Logger.Trace("Request Complete");
            });

            Logger.Info("Boot Complete!");

            Logger.Info("Starting jobs");
            var jobProcessor = locator.Get <IJobProcessor>();
            var token        = new CancellationToken();

            Task.Run(() => jobProcessor.Process(token), token);
            Logger.Info("Jobs Started");
        }
コード例 #9
0
        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++;
            }
        }