public async void Patch_No_Errors() { VotesControllerMockFacade mock = new VotesControllerMockFacade(); var mockResult = new Mock <UpdateResponse <ApiVotesResponseModel> >(); mockResult.SetupGet(x => x.Success).Returns(true); mock.ServiceMock.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <ApiVotesRequestModel>())) .Callback <int, ApiVotesRequestModel>( (id, model) => model.BountyAmount.Should().Be(1) ) .Returns(Task.FromResult <UpdateResponse <ApiVotesResponseModel> >(mockResult.Object)); mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiVotesResponseModel>(new ApiVotesResponseModel())); VotesController controller = new VotesController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiVotesModelMapper()); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); var patch = new JsonPatchDocument <ApiVotesRequestModel>(); patch.Replace(x => x.BountyAmount, 1); IActionResult response = await controller.Patch(default(int), patch); response.Should().BeOfType <OkObjectResult>(); (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK); mock.ServiceMock.Verify(x => x.Update(It.IsAny <int>(), It.IsAny <ApiVotesRequestModel>())); }
public void TestPostVote() { Vote a = new Vote() { VoteId = 1, EndDate = DateTime.Now.AddDays(2), YesNoQuestion = "1", Deleted = false, Yes = 2, No = 1 }; var mockVoteValidator = new Mock <IVoteValidator>(); mockVoteValidator.Setup(x => x.PostVote(a)).Verifiable(); mockVoteValidator.Setup(x => x.secure(null)).Verifiable(); mockVoteValidator.Setup(x => x.AtmSecure(null)).Verifiable(); var controller = new VotesController(mockVoteValidator.Object); var controllerContext = new HttpControllerContext(); var request = new HttpRequestMessage(); request.Headers.Add("TODO_PAGOS_TOKEN", "1"); controllerContext.Request = request; controller.ControllerContext = controllerContext; IHttpActionResult actionResult = controller.PostVote(a); var contentResult = actionResult as OkNegotiatedContentResult <IEnumerable <Vote> >; Assert.IsNotNull(actionResult); }
public async void BulkInsert_No_Errors() { VotesControllerMockFacade mock = new VotesControllerMockFacade(); var mockResponse = new CreateResponse <ApiVotesResponseModel>(new FluentValidation.Results.ValidationResult()); mockResponse.SetRecord(new ApiVotesResponseModel()); mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiVotesRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiVotesResponseModel> >(mockResponse)); VotesController controller = new VotesController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); var records = new List <ApiVotesRequestModel>(); records.Add(new ApiVotesRequestModel()); IActionResult response = await controller.BulkInsert(records); response.Should().BeOfType <OkObjectResult>(); (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK); var result = (response as OkObjectResult).Value as List <ApiVotesResponseModel>; result.Should().NotBeEmpty(); mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiVotesRequestModel>())); }
public void AddVote_UnitOfWorkNull_ShouldThrowException() { VotesController votesController = new VotesController(); Guest guest = new Guest { EmailAddress = "*****@*****.**" }; Party party = new Party { Guests = new List <Guest> { guest }, EndTime = DateTime.Now, StartTime = DateTime.Now }; PlayList playList = new PlayList { Party = party }; Track track = new Track { Title = "Song1", Interpret = "Interpret", PlayLists = new List <PlayList> { playList } }; votesController.AddVote(null, guest, playList, track); }
public void TestsSetup() { AutoMapperConfig.RegisterMappings(); this.votes = ServicesObjectFactory.GetVoteService(); this.controller = new VotesController(this.votes); this.controller.Cache = new HttpCacheService(); }
public async Task Delete_given_repository_returns_false_returns_NotFound() { var repository = new Mock <IVoteRepository>(); var controller = new VotesController(repository.Object); var delete = await controller.Delete(42); Assert.IsType <NotFoundResult>(delete); }
public async Task Delete_given_id_deletes_vote() { var repository = new Mock <IVoteRepository>(); var controller = new VotesController(repository.Object); await controller.Delete(42); repository.Verify(s => s.DeleteAsync(42)); }
public async Task Get_given_non_existing_returns_NotFound() { var repo = new Mock <IVoteRepository>(); var controller = new VotesController(repo.Object); var get = await controller.Get(42); var res = get.Result; Assert.IsType <NotFoundResult>(res); }
public async Task Delete_given_valid_returns_NoContent() { var repository = new Mock <IVoteRepository>(); repository.Setup(s => s.DeleteAsync(42)).ReturnsAsync(true); var controller = new VotesController(repository.Object); var delete = await controller.Delete(42); Assert.IsType <NoContentResult>(delete); }
public async Task Put_returns_NoContent() { var dto = new VoteDTO(); var repository = new Mock <IVoteRepository>(); repository.Setup(s => s.UpdateAsync(dto)).ReturnsAsync(true); var controller = new VotesController(repository.Object); var put = await controller.Put(42, dto); Assert.IsType <NoContentResult>(put); }
public async Task Put_given_dto_updates_vote() { var repository = new Mock <IVoteRepository>(); var controller = new VotesController(repository.Object); var dto = new VoteDTO(); await controller.Put(42, dto); repository.Verify(s => s.UpdateAsync(dto)); }
public async Task Get_existing_id_returns_dto() { var dto = new VoteDTO(); var repo = new Mock <IVoteRepository>(); repo.Setup(s => s.FindAsync(42)).ReturnsAsync(dto); var controller = new VotesController(repo.Object); var get = await controller.Get(42); Assert.Equal(dto, get.Value); }
public async Task Post_given_valid_dto_returns_CreatedAtAction() { var dto = new VoteDTO(); var repo = new Mock <IVoteRepository>(); repo.Setup(s => s.CreateAsync(It.IsAny <VoteDTO>())).ReturnsAsync(1); var controller = new VotesController(repo.Object); var post = await controller.Post(dto); Assert.IsType <CreatedAtActionResult>(post.Result); }
public async Task Put_given_repository_returns_false_returns_NotFound() { var repository = new Mock <IVoteRepository>(); var controller = new VotesController(repository.Object); var dto = new VoteDTO(); var put = await controller.Put(42, dto); Assert.IsType <NotFoundResult>(put); }
public async Task GetVotes_returns_all() { IList <VoteDTO> dtos = new List <VoteDTO>() { new VoteDTO() }; var repo = new Mock <IVoteRepository>(); repo.Setup(s => s.ReadAsync()).ReturnsAsync(dtos); var controller = new VotesController(repo.Object); var get = await controller.Get(); }
public VotesControllerTests() { this.dbContext = MockDbContext.GetContext(); this.restaurantRepository = new EfDeletableEntityRepository <Restaurant>(this.dbContext); this.votesRepository = new EfRepository <Vote>(this.dbContext); this.commentsRepository = new EfDeletableEntityRepository <Comment>(this.dbContext); this.votesService = new VoteService(this.votesRepository); this.commentsService = new CommentService(this.commentsRepository, this.votesService); this.controller = new VotesController(this.votesService); }
public async void Get_Not_Exists() { VotesControllerMockFacade mock = new VotesControllerMockFacade(); mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiVotesResponseModel>(null)); VotesController controller = new VotesController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Get(default(int)); response.Should().BeOfType <StatusCodeResult>(); (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound); mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>())); }
//[ExpectedException(typeof(Exception))] public void TestGetVotes() { var allVotes = new[] { new Vote() { VoteId = 1, EndDate = DateTime.Now.AddDays(2), YesNoQuestion = "1", Deleted = false, Yes = 2, No = 1 }, new Vote() { VoteId = 2, EndDate = DateTime.Now.AddDays(2), YesNoQuestion = "2", Deleted = false, Yes = 4, No = 2 }, }; var mockVoteValidator = new Mock <IVoteValidator>(); mockVoteValidator.Setup(x => x.GetVotes()).Returns(allVotes); var controller = new VotesController(mockVoteValidator.Object); // Arrange var controllerContext = new HttpControllerContext(); var request = new HttpRequestMessage(); request.Headers.Add("TODO_PAGOS_TOKEN", "1"); // Don't forget these lines, if you do then the request will be null. controllerContext.Request = request; controller.ControllerContext = controllerContext; IHttpActionResult actionResult = controller.GetVotes(); //throw new Exception(actionResult.GetType().ToString()); var contentResult = actionResult as OkNegotiatedContentResult <IEnumerable <Vote> >; Assert.IsNotNull(contentResult); }
public async void Delete_Errors() { VotesControllerMockFacade mock = new VotesControllerMockFacade(); var mockResult = new Mock <ActionResponse>(); mockResult.SetupGet(x => x.Success).Returns(false); mock.ServiceMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.FromResult <ActionResponse>(mockResult.Object)); VotesController controller = new VotesController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Delete(default(int)); response.Should().BeOfType <ObjectResult>(); (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity); mock.ServiceMock.Verify(x => x.Delete(It.IsAny <int>())); }
public void CheckVoteControllerDecoratedWithValidateAntiForgeryToken() { UserManager <ApplicationUser> userManager = MockUserManager(); var mockVoteService = new Mock <IVotesService>(); var mockImageService = new Mock <IImagesService>(); VotesController controller = new VotesController( userManager, mockVoteService.Object, mockImageService.Object).WithIdentity(FirstTestUserId, "TestUser"); var type = controller.GetType(); var methodInfo = type.GetMethod("Index", new Type[] { typeof(VoteInputModel) }); var attributes = methodInfo.GetCustomAttributes(typeof(ValidateAntiForgeryTokenAttribute), true); Assert.True(attributes.Any(), "No ValidateAntiForgeryTokenAttribute found on Index method"); }
public async void Update_NotFound() { VotesControllerMockFacade mock = new VotesControllerMockFacade(); var mockResult = new Mock <UpdateResponse <ApiVotesResponseModel> >(); mockResult.SetupGet(x => x.Success).Returns(false); mock.ServiceMock.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <ApiVotesRequestModel>())).Returns(Task.FromResult <UpdateResponse <ApiVotesResponseModel> >(mockResult.Object)); mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiVotesResponseModel>(null)); VotesController controller = new VotesController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiVotesModelMapper()); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Update(default(int), new ApiVotesRequestModel()); response.Should().BeOfType <StatusCodeResult>(); (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound); mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>())); }
public async void All_Not_Exists() { VotesControllerMockFacade mock = new VotesControllerMockFacade(); mock.ServiceMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult <List <ApiVotesResponseModel> >(new List <ApiVotesResponseModel>())); VotesController controller = new VotesController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.All(1000, 0); response.Should().BeOfType <OkObjectResult>(); (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK); var items = (response as OkObjectResult).Value as List <ApiVotesResponseModel>; items.Should().BeEmpty(); mock.ServiceMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>())); }
public async void Create_Errors() { VotesControllerMockFacade mock = new VotesControllerMockFacade(); var mockResponse = new Mock <CreateResponse <ApiVotesResponseModel> >(new FluentValidation.Results.ValidationResult()); var mockRecord = new ApiVotesResponseModel(); mockResponse.SetupGet(x => x.Success).Returns(false); mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiVotesRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiVotesResponseModel> >(mockResponse.Object)); VotesController controller = new VotesController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Create(new ApiVotesRequestModel()); response.Should().BeOfType <ObjectResult>(); (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity); mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiVotesRequestModel>())); }
public async void Patch_Record_Not_Found() { VotesControllerMockFacade mock = new VotesControllerMockFacade(); var mockResult = new Mock <ActionResponse>(); mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiVotesResponseModel>(null)); VotesController controller = new VotesController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); var patch = new JsonPatchDocument <ApiVotesRequestModel>(); patch.Replace(x => x.BountyAmount, 1); IActionResult response = await controller.Patch(default(int), patch); response.Should().BeOfType <StatusCodeResult>(); (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound); mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>())); }
public async void TestVoteFunctionality() { UserManager <ApplicationUser> userManager = MockUserManager(); var mockVoteService = new Mock <IVotesService>(); mockVoteService.Setup(x => x.VoteAsync(VotesControllerTest.FirstTestImageId, It.IsAny <string>(), true)) .ReturnsAsync(false); mockVoteService.Setup(x => x.VoteAsync(VotesControllerTest.FirstTestImageId, It.IsAny <string>(), false)) .ReturnsAsync(true); var mockImageService = new Mock <IImagesService>(); mockImageService.Setup(x => x.GetImageById <Image>(It.IsAny <string>())) .Returns(new Image() { Id = VotesControllerTest.FirstTestImageId, }); VotesController controller = new VotesController( userManager, mockVoteService.Object, mockImageService.Object).WithIdentity(FirstTestUserId, "TestUser"); VoteInputModel model = new VoteInputModel() { ImageId = VotesControllerTest.FirstTestImageId, IsLike = false, }; ActionResult <VoteResponseModel> result = await controller.Index(model); Assert.True(result.Value.Result); model.IsLike = true; result = await controller.Index(model); Assert.False(result.Value.Result); }
public async void ValidateInputModel() { UserManager <ApplicationUser> userManager = MockUserManager(); var mockVoteService = new Mock <IVotesService>(); var mockImageService = new Mock <IImagesService>(); VotesController controller = new VotesController( userManager, mockVoteService.Object, mockImageService.Object).WithIdentity(FirstTestUserId, "TestUser"); ActionResult <VoteResponseModel> result = await controller.Index(null); Assert.IsType <BadRequestResult>(result.Result); result = await controller.Index(new VoteInputModel() { ImageId = null, }); Assert.IsType <BadRequestResult>(result.Result); }
public void AddVote_NewCorrectVote_ShouldAddInDatabase() { IUnitOfWork unitOfWork = new MockUnitOfWork(); VotesController votesController = new VotesController(); Guest guest = new Guest { EmailAddress = "*****@*****.**", Id = 1 }; Party party = new Party { Guests = new List <Guest> { guest }, EndTime = DateTime.Now, StartTime = DateTime.Now, Id = 1 }; PlayList playList = new PlayList { Party = party, Id = 1 }; Track track = new Track { Title = "Song1", Interpret = "Interpret", PlayLists = new List <PlayList> { playList } }; unitOfWork.Parties.Insert(party); unitOfWork.Guests.Insert(guest); unitOfWork.PlayLists.Insert(playList); unitOfWork.Tracks.Insert(track); bool ok = votesController.AddVote(unitOfWork, guest, playList, track); Assert.IsTrue(ok); var votes = unitOfWork.Votes.Get(); Assert.IsTrue(votes.Any(v => v.Track == track && v.PlayList == playList)); }