Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 10
0
        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());
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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();
        }