public void TestInitialize() { AutoMapperConfig.Execute(); this.mocksContainer = new MocksContainer(); this.mocksContainer.SetupMocks(); var requestMock = new Mock <HttpRequestBase>(); requestMock.SetupGet(x => x.Headers).Returns( new System.Net.WebHeaderCollection { { "X-Requested-With", "XMLHttpRequest" } }); var responseMock = new Mock <HttpResponseBase>(); var contextMock = new Mock <HttpContextBase>(); contextMock.SetupGet(c => c.Request).Returns(requestMock.Object); contextMock.SetupGet(c => c.User.Identity.IsAuthenticated).Returns(true); contextMock.SetupGet(c => c.User.Identity.Name).Returns("admin"); contextMock.Setup(c => c.Response).Returns(responseMock.Object); var dataMock = new Mock <IPhotoContestData>(); dataMock.Setup(d => d.Contests).Returns(this.mocksContainer.ContestsRepositoryMock.Object); var service = new ContestService(dataMock.Object); var controller = new ContestsController(dataMock.Object, service); controller.ControllerContext = new ControllerContext(contextMock.Object, new RouteData(), controller); this.fakeContestsController = controller; }
public void GivenAnIncorrectParameter_GetContests_ShouldReturn_BadRequest() { // Arrange const int incorrectElectionId = 0; //var authValues = Request.Headers.Authorization; //if (authValues?.Scheme == null || authValues.Parameter == null) //{ // return BadRequest(); //} //if (!authValues.Scheme.Equals(_webConfigContainer.AuthScheme) || // !authValues.Parameter.Equals(_webConfigContainer.ApiKey)) var mockWebConfigContainer = new Mock <IWebConfigContainer>(); mockWebConfigContainer.Setup(wcc => wcc.AuthScheme).Returns(AuthScheme); mockWebConfigContainer.Setup(wcc => wcc.ApiKey).Returns(ApiKey); var mockContestServices = new Mock <IContestServices>(); mockContestServices.Setup(mut => mut.GetContestsByElectionId(0)) .Returns(new List <Contest>()); // api/v1/contests/ui/{electionId} var mockCandidateServices = new Mock <ICandidatesServices>(); mockCandidateServices.Setup(mut => mut.GetCandidatesByContestId(0)) .Returns(new List <Candidate>()); var contestsController = new ContestsController( mockWebConfigContainer.Object, mockContestServices.Object, mockCandidateServices.Object) { Configuration = new HttpConfiguration(), //var authValues = Request.Headers.Authorization; Request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri("http://localhost:63190/api/v1/contests/ui/0"), Headers = { Authorization = new AuthenticationHeaderValue(AuthScheme, ApiKey) } } }; // Act //var response = contestsController.GetContests(incorrectElectionId); //var contentResult = response as OkNegotiatedContentResult<IEnumerable<Contest>>; // Assert //Assert.IsNotNull(contentResult); //Assert.IsNotNull(contentResult.Content); //Assert.IsInstanceOfType(response, typeof(IHttpActionResult)); //Assert.IsInstanceOfType(response, typeof(OkNegotiatedContentResult<IEnumerable<Contest>>)); }
public void AddContestShouldInsertOneRecordToTheRepository() { var contests = new List<Contest>(); var fakeUser = this.mocks.FakeUserRepository.Object.GetAll().FirstOrDefault(); if (fakeUser == null) { Assert.Fail(); } this.mocks.FakeContestRepository .Setup(r => r.Add(It.IsAny<Contest>())) .Callback( (Contest contest) => { contest.Organizer = fakeUser; contests.Add(contest); }); var mockContext = new Mock<IPhotoBattlesData>(); mockContext.Setup(c => c.Users) .Returns(this.mocks.FakeUserRepository.Object); mockContext.Setup(c => c.Contests) .Returns(this.mocks.FakeContestRepository.Object); var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider.Setup(ip => ip.GetUserId()) .Returns(fakeUser.Id); var contestController = new ContestsController(mockContext.Object, mockIdProvider.Object); var newContest = new ContestBindingModel() { Title = "Contest three", Description = "Contests three description", VotingStrategyEnum = VotingStrategyEnum.Open, ParticipationStrategyEnum = ParticipationStrategyEnum.Open, RewardStrategyEnum = RewardStrategyEnum.SingleWinner, DeadlineStrategyEnum = DeadlineStrategyEnum.ParticipantsLimit, ParticipantsLimit = 3 }; var response = contestController.AddContest(newContest); var expected = contests.FirstOrDefault(c => c.Title == newContest.Title); if (expected == null) { Assert.Fail(); } mockContext.Verify(c => c.SaveChanges(), Times.Once); Assert.IsInstanceOfType(response, typeof(RedirectToRouteResult)); Assert.AreEqual(1, contests.Count); Assert.AreEqual(newContest.Description, expected.Description); }
public void GivenInvalidParameter_GetContests_ShouldReturnBadRequest() { // Arrange const int invalidElectionId = 0; var mockWebConfigContainer = new Mock <IWebConfigContainer>(); var mockContestServices = new Mock <IContestServices>(); mockContestServices.Setup(mut => mut.GetContestsByElectionId(0)) .Returns(new List <Contest>()); var mockCandidateServices = new Mock <ICandidatesServices>(); mockCandidateServices.Setup(mut => mut.GetCandidatesByContestId(0)) .Returns(new List <Candidate>()); var contestsController = new ContestsController( mockWebConfigContainer.Object, mockContestServices.Object, mockCandidateServices.Object) { Configuration = new HttpConfiguration(), Request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("http://localhost:63190/api/v1/contests/1/candidates") } }; // Act //var actionResult = contestsController.GetContests(invalidElectionId); //var ct = new CancellationToken(); //var response = actionResult.ExecuteAsync(ct).Result; //// Assert //Assert.IsInstanceOfType(actionResult, typeof(IHttpActionResult)); //Assert.IsInstanceOfType(actionResult, typeof(BadRequestErrorMessageResult)); //Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void Initialize() { this.contestsController = new ContestsController(this.EmptyOjsData); }
private void UpdateContestList(object state) { ContestsController.UpdateContests(); }
public void DissmissContestShouldWorkCorrectly() { var fakeContest = this.mocks.FakeContestRepository.Object.GetAll().FirstOrDefault(); if (fakeContest == null) { Assert.Fail(); } var fakeUser = this.mocks.FakeUserRepository.Object.GetAll().FirstOrDefault(); if (fakeUser == null) { Assert.Fail(); } var mockContext = new Mock<IPhotoBattlesData>(); mockContext.Setup(c => c.Users) .Returns(this.mocks.FakeUserRepository.Object); mockContext.Setup(c => c.Contests) .Returns(this.mocks.FakeContestRepository.Object); var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider.Setup(ip => ip.GetUserId()) .Returns(fakeUser.Id); var contestController = new ContestsController(mockContext.Object, mockIdProvider.Object); var response = contestController.DismissContest(fakeContest.Id); mockContext.Verify(c => c.SaveChanges(), Times.Once); Assert.IsInstanceOfType(response, typeof(RedirectToRouteResult)); }
public void EditContestShouldUpdateTheRecordCorrectly() { var fakeContest = this.mocks.FakeContestRepository.Object.GetAll().FirstOrDefault(); if (fakeContest == null) { Assert.Fail(); } var fakeUser = this.mocks.FakeUserRepository.Object.GetAll().FirstOrDefault(); if (fakeUser == null) { Assert.Fail(); } var mockContext = new Mock<IPhotoBattlesData>(); mockContext.Setup(c => c.Users) .Returns(this.mocks.FakeUserRepository.Object); mockContext.Setup(c => c.Contests) .Returns(this.mocks.FakeContestRepository.Object); var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider.Setup(ip => ip.GetUserId()) .Returns(fakeUser.Id); var contestController = new ContestsController(mockContext.Object, mockIdProvider.Object); var editContest = new ContestBindingModel() { Title = "Edited contest title", Description = "Edited contest description", VotingStrategyEnum = VotingStrategyEnum.Open, ParticipationStrategyEnum = ParticipationStrategyEnum.Open, RewardStrategyEnum = RewardStrategyEnum.SingleWinner, DeadlineStrategyEnum = DeadlineStrategyEnum.ParticipantsLimit, ParticipantsLimit = 3 }; var response = contestController.EditContest(editContest, fakeContest.Id); var result = this.mocks.FakeContestRepository.Object.GetAll().FirstOrDefault(); if (result == null) { Assert.Fail(); } mockContext.Verify(c => c.SaveChanges(), Times.Once); Assert.IsInstanceOfType(response, typeof(RedirectToRouteResult)); Assert.AreEqual(editContest.Title, result.Title); Assert.AreEqual(editContest.Description, result.Description); }