public async Task PostConcertReturnsCreaterAtActionResultTest() { // Arrange int testId = 1; Concert concert = GetTestConcerts().FirstOrDefault(p => p.Id == testId); var mockLogger = new Mock <ILogger <ConcertsController> >(); var mockRepo = new Mock <IConcertRepository>(); mockRepo.Setup(c => c.AddConcert(concert)) .Returns(EntityState.Added); mockRepo.Setup(c => c.SaveChanges()) .Returns(Task.CompletedTask); var controller = new ConcertsController(mockRepo.Object, mockLogger.Object); // Act var result = await controller.PostConcert(concert); // Assert var requestResult = Assert.IsType <CreatedAtActionResult>(result); var model = Assert.IsType <Concert>(requestResult.Value); Assert.Equal(concert.Id, model.Id); Assert.Equal(concert.VenueId, model.VenueId); Assert.Equal(concert.PerfomerId, model.PerfomerId); Assert.Equal(concert.Date, model.Date); }
public async Task PutConcertReturnsNotFoundTest() { // Arrange var mock = new Mock <IUpdateEntry>(); var entries = new List <IUpdateEntry>(); entries.Add(mock.Object); int testId = 1; Concert concert = GetTestConcerts().FirstOrDefault(p => p.Id == testId); var mockLogger = new Mock <ILogger <ConcertsController> >(); var mockRepo = new Mock <IConcertRepository>(); mockRepo.Setup(c => c.ChangeState(concert, EntityState.Modified)).Verifiable(); mockRepo.Setup(c => c.SaveChanges()).Throws( new DbUpdateConcurrencyException(It.IsNotNull <string>(), entries)); mockRepo.Setup(c => c.ConcertExists(testId)).Returns(false); var controller = new ConcertsController(mockRepo.Object, mockLogger.Object); // Act var result = await controller.PutConcert(testId, concert); // Assert Assert.IsType <NotFoundResult>(result); }
public async Task PutConcertReturnsBadRequestResultIdTest() { // Arrange int testId = 2; Concert concert = GetTestConcerts()[0]; var mockRepo = new Mock <IConcertRepository>(); var mockLogger = new Mock <ILogger <ConcertsController> >(); var controller = new ConcertsController(mockRepo.Object, mockLogger.Object); // Act var result = await controller.PutConcert(testId, concert); // Assert Assert.IsType <BadRequestResult>(result); }
public async Task PutConcertReturnsBadRequestResultModelStateTest() { // Arrange & Act var mockRepo = new Mock <IConcertRepository>(); var mockLogger = new Mock <ILogger <ConcertsController> >(); var controller = new ConcertsController(mockRepo.Object, mockLogger.Object); controller.ModelState.AddModelError("error", "some error"); // Act var result = await controller.PutConcert(id : 0, concert : null); // Assert Assert.IsType <BadRequestObjectResult>(result); }
public async Task PutConcertReturnsNoContentResultTest() { // Arrange int testId = 1; Concert concert = GetTestConcerts().FirstOrDefault(p => p.Id == testId); var mockLogger = new Mock <ILogger <ConcertsController> >(); var mockRepo = new Mock <IConcertRepository>(); mockRepo.Setup(c => c.ChangeState(concert, EntityState.Modified)).Verifiable(); mockRepo.Setup(c => c.SaveChanges()).Returns(Task.CompletedTask); var controller = new ConcertsController(mockRepo.Object, mockLogger.Object); // Act var result = await controller.PutConcert(testId, concert); // Assert Assert.IsType <NoContentResult>(result); }
public async Task GetAllConcertReturnsNoContent() { int testId = 1; List <Concert> list = null; var mockLogger = new Mock <ILogger <ConcertsController> >(); var mockService = new Mock <IGatewayService>(); mockService.Setup(c => c.GetConcerts(testId, testId)) .ReturnsAsync(list); var controller = new ConcertsController(mockService.Object, mockLogger.Object); // Act var result = await controller.Get(testId, testId); // Assert Assert.IsType <NoContentResult>(result); }
public void Intialize() { _concertService = new Mock <IConcertService>(); _tweetService = new Mock <ITweetService>(); _controller = new ConcertsController(_concertService.Object, _tweetService.Object); _request = new HttpRequestMessage(); _request.Headers.Add("app_id", "testapp"); _request.Headers.Add("user", "testuser"); _controller.Request = _request; _concertService.Setup(s => s.GetConcerts(It.IsAny <string>())) .Returns(() => new ConcertsResponse { Concerts = ConcertTestData.GetAllConcerts() }); }
public async Task PostGatewayReturnsBadRequestResult() { int testId = 1; bool success = true; var mockLogger = new Mock <ILogger <ConcertsController> >(); var mockService = new Mock <IGatewayService>(); mockService.Setup(c => c.PostConcert(It.IsAny <Concert>())) .ReturnsAsync((true, GetTestConcerts()[0])); mockService.Setup(c => c.PutSchedule(It.IsAny <Schedule>())) .ReturnsAsync(false); var controller = new ConcertsController(mockService.Object, mockLogger.Object); // Act var result = await controller.Post(concert : null); // Assert var requestResult = Assert.IsType <BadRequestResult>(result); }
public async Task PostGatewayReturnsCreatedAtActionResult() { int testId = 1; bool success = true; var mockLogger = new Mock <ILogger <ConcertsController> >(); var mockService = new Mock <IGatewayService>(); Schedule schedule = new Schedule(); mockService.Setup(c => c.PostSchedule(It.IsAny <Schedule>())) .ReturnsAsync(true); Concert concert = GetTestConcerts()[0]; mockService.Setup(c => c.PostConcert(It.IsAny <Concert>())) .ReturnsAsync((true, concert)); var controller = new ConcertsController(mockService.Object, mockLogger.Object); // Act var result = await controller.Post(concert); // Assert var requestResult = Assert.IsType <CreatedAtActionResult>(result); }
public void GetConcertReturnsAllConcertsTest() { // Arrange int page = 1, size = 2; var testConcerts = GetTestConcerts().Skip((page - 1) * size).Take(size); var mockLogger = new Mock <ILogger <ConcertsController> >(); var mockRepo = new Mock <IConcertRepository>(); mockRepo.Setup(c => c.GetAllConcerts(page, size)) .Returns(testConcerts); var controller = new ConcertsController(mockRepo.Object, mockLogger.Object); // Act var result = controller.GetConcert(page, size); // Assert // var requestResult = Assert.IsType<IEnumerable<Concert>>(result); var model = Assert.IsAssignableFrom <IEnumerable <Concert> >( result); Assert.Equal(2, model.Count()); }
public async Task GetAllConcertReturnsConcerts() { int testId = 1; var mockLogger = new Mock <ILogger <ConcertsController> >(); var mockService = new Mock <IGatewayService>(); mockService.Setup(c => c.GetConcerts(testId, testId)) .ReturnsAsync(GetTestConcerts()); mockService.Setup(c => c.GetPerfomerById(testId)) .ReturnsAsync(GetPerfomer(testId)); mockService.Setup(c => c.GetVenueById(testId)) .ReturnsAsync(GetVenue(testId)); var controller = new ConcertsController(mockService.Object, mockLogger.Object); // Act var result = await controller.Get(testId, testId); // Assert var requestResult = Assert.IsType <OkObjectResult>(result); var model = Assert.IsType <List <ConcertRequest> >(requestResult.Value); Assert.Single(model); }
public void Intialize() { _concertService = new Mock <IConcertService>(); _tweetService = new Mock <ITweetService>(); _controller = new ConcertsController(_concertService.Object, _tweetService.Object); _request = new HttpRequestMessage(); _request.Headers.Add("app_id", "testapp"); _request.Headers.Add("user", "testuser"); _controller.Request = _request; _concertService.Setup(s => s.CreateConcert(It.IsAny <string>(), It.IsAny <Concert>())) .Returns(() => new CreateUpdateConcertResponse { RequestId = _requestId, Concert = ConcertTestData.GetCreatedConcert(), }); _tweetService.Setup(s => s.TweetConcert(It.IsAny <Concert>())) .Returns(() => _tweetUrl); _concert = ConcertTestData.GetConcertToCreate(); }