Ejemplo n.º 1
0
        public void Setup()
        {
            _showDto = new ShowDTO
            {
                ID = "1234"
            };
            _showSubDto = new ShowSubscriptionDTO
            {
                Id    = _showDto.ID,
                Title = "Test"
            };
            _showService = new Mock <IShowService>();
            _showService.Setup(s => s.GetMostPopularShows()).Returns(Task.FromResult(new List <ShowPopularityDTO>()));
            _showService.Setup(s => s.GetShowByIdAsync(1234)).Returns(Task.FromResult(_showDto));
            _subService = new Mock <ISubscriptionService>();
            _subService.Setup(s => s.SubscribeToShow(_showSubDto, "123")).Returns(Task.FromResult(true));
            _contextMock = new Mock <HttpContext>();
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, _userId),
            }, "mock"));

            _contextMock.Setup(x => x.User).Returns(user);
            _showController = new ShowsController(_showService.Object, _subService.Object);
            _showController.ControllerContext.HttpContext = _contextMock.Object;
        }
Ejemplo n.º 2
0
        public void ShouldReturnFilteredResponseModel()
        {
            //desrialize the sample json to Request object
            Request payload = JsonConvert.DeserializeObject <Request>(File.ReadAllText(@"sample_request.json"));
            //deserialize sample json output to ResponseModel object
            ResponseModel expected = JsonConvert.DeserializeObject <ResponseModel>(File.ReadAllText(@"sample_response.json"));

            //Arrange
            var controller = new ShowsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            //Act
            var response = controller.PostShow(payload);

            //Assert
            response.TryGetContentValue <ResponseModel>(out ResponseModel actual);
            Assert.AreEqual(expected.Response.Length, actual.Response.Length);
            for (int i = 0; i < expected.Response.Length; i++)
            {
                Assert.AreEqual(expected.Response[i].Image, actual.Response[i].Image);
                Assert.AreEqual(expected.Response[i].Slug, actual.Response[i].Slug);
                Assert.AreEqual(expected.Response[i].Title, actual.Response[i].Title);
            }
        }
Ejemplo n.º 3
0
        public async Task Call_both_auditorium_layout_api_and_reservation_api_when_getting_a_given_show()
        {
            var showId             = "666";
            var auditoriumProvider = Substitute.For <IProvideAuditoriumSeating>();

            auditoriumProvider.GetAuditoriumSeatingFor(showId)
            .Returns(AuditoriumDtoBuilder.From("A1", "A2", "B1", "B2", "C1", "C2").Build());

            var reservationsProvider = Substitute.For <IProvideReservedSeats>();

            reservationsProvider.GetReservedSeats(showId)
            .Returns(new ReservedSeatsDto(new List <string> {
                "A2", "B1", "C1", "C2"
            }));

            var controller = new ShowsController(auditoriumProvider, reservationsProvider,
                                                 Substitute.For <ISuggestSeats>(), Substitute.For <IProvidePrices>(), null, null, null);

            var showDto = (await controller.GetShow(showId)).Value;


            TestContext.WriteLine(JsonConvert.SerializeObject(showDto, Formatting.Indented));

            Check.That(showDto.Rows.Keys).ContainsExactly("A", "B", "C");

            Check.That(showDto.Rows["A"].Select(s => s.ReservationStatus))
            .ContainsExactly(ReservationStatus.Available, ReservationStatus.Reserved);
            Check.That(showDto.Rows["B"].Select(s => s.ReservationStatus))
            .ContainsExactly(ReservationStatus.Reserved, ReservationStatus.Available);
            Check.That(showDto.Rows["C"].Select(s => s.ReservationStatus))
            .ContainsExactly(ReservationStatus.Reserved, ReservationStatus.Reserved);
        }
Ejemplo n.º 4
0
        public void TestDetailsView()
        {
            var controller = new ShowsController();
            var result     = controller.Details(2) as ViewResult;

            Assert.AreEqual("Details", result.ViewName);
        }
Ejemplo n.º 5
0
        public async Task GetOk()
        {
            var controller = new ShowsController(_repoMock.Object, _webAccessorMock.Object, _stateMonitorMock.Object,
                                                 Mock.Of <ILogger <ShowsController> >());
            var result = await controller.Get(0, 10);

            Assert.AreEqual(2, result.Count());
        }
Ejemplo n.º 6
0
        public async Task SyncOk()
        {
            var controller = new ShowsController(_repoMock.Object, _webAccessorMock.Object, _stateMonitorMock.Object,
                                                 Mock.Of <ILogger <ShowsController> >());
            var result = await controller.Sync();

            Assert.IsInstanceOfType(result, typeof(OkResult));
        }
Ejemplo n.º 7
0
        public async Task SyncException()
        {
            _repoMock.Setup(r => r.AddShows(It.IsAny <List <Show> >())).ThrowsAsync(new Exception());
            var controller = new ShowsController(_repoMock.Object, _webAccessorMock.Object, _stateMonitorMock.Object,
                                                 Mock.Of <ILogger <ShowsController> >());
            var result = await controller.Sync();

            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
        }
Ejemplo n.º 8
0
        public async Task SyncLocked()
        {
            _stateMonitorMock.Setup(s => s.OptainLock()).Returns(false);
            var controller = new ShowsController(_repoMock.Object, _webAccessorMock.Object, _stateMonitorMock.Object,
                                                 Mock.Of <ILogger <ShowsController> >());
            var result = await controller.Sync();

            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
        }
        public void IndexTest()
        {
            //TODO: Fix test
            ShowsController c        = new ShowsController();
            string          showName = "The Last Defender";

            c.Index(showName);
            // Assert.AreEqual(showName, c.title   );
        }
Ejemplo n.º 10
0
        public void TestEmptyJsonRequest()
        {
            ShowsController controller = new ShowsController();

            JsonRequest request  = new JsonRequest();
            var         response = controller.FilterShows(request);

            Assert.AreEqual(response.StatusCode, HttpStatusCode.OK);
        }
Ejemplo n.º 11
0
        public void Get_ViewResult_Index_Test()
        {
            //Arrange
            ShowsController controller = new ShowsController();

            //Act
            var result = controller.Index();

            //Assert
            Assert.IsType <ViewResult>(result);
        }
Ejemplo n.º 12
0
        public ShowControllerTests()
        {
            var ctx = TestDbUtilities <ShowContext> .BuildInMemoryContext();

            var repo = new ShowRepository(ctx);

            var configuration = new MapperConfiguration(cfg => cfg.AddProfile <ShowMaps>());
            var mapper        = new Mapper(configuration);

            _controller = new ShowsController(repo, mapper);
        }
Ejemplo n.º 13
0
        public async Task GetShowsAsync_Should_Send_QueryCommand()
        {
            // Arrange
            var mediatorMock    = new Mock <IMediator>();
            var showsController = new ShowsController(mediatorMock.Object);

            // Act
            await showsController.GetShowsAsync(1, 1);

            // Assert
            mediatorMock.Verify(i => i.Send(It.Is <PaginatedShowsQuery>(j => j.Limit == 1 && j.Offset == 1), CancellationToken.None), Times.Once);
        }
Ejemplo n.º 14
0
        public async Task Call_suggestion_api_when_asking_for_seats_suggestions()
        {
            var showId = "666";
            var party  = 2;

            var seatSuggestionsProvider     = Substitute.For <ISuggestSeats>();
            var suggestionsForFirstCategory =
                SeatFactory.BuildSuggestions(party, PricingCategoryRequested.First, "A7-A8", "A10-A11", "B6-B7");

            var suggestionsForSecondCategory =
                SeatFactory.BuildSuggestions(party, PricingCategoryRequested.Second, "A12-A13", "C6-C7", "D8-D9");

            var suggestionsForThirdCategory =
                SeatFactory.BuildSuggestions(party, PricingCategoryRequested.Third, "E8-E9", "E10-E11", "E6-E7");

            var suggestionsForMixedCategory =
                SeatFactory.BuildSuggestions(party,
                                             PricingCategoryRequested.Mixed); // to be refactor since mixed here makes no sense

            seatSuggestionsProvider.MakeSuggestions(showId, party).Returns(new SuggestionsMade(new ShowId(showId),
                                                                                               new PartyRequested(party),
                                                                                               suggestionsForFirstCategory, suggestionsForSecondCategory, suggestionsForThirdCategory,
                                                                                               suggestionsForMixedCategory));

            var pricingProvider = Substitute.For <IProvidePrices>();

            pricingProvider.GetPrices(showId).Returns(new PricingMapping(110, 90, 70));

            var controller = new ShowsController(Substitute.For <IProvideAuditoriumSeating>(),
                                                 Substitute.For <IProvideReservedSeats>(), seatSuggestionsProvider, pricingProvider, null, null, null);

            var suggestions = await controller.MakeSuggestions(showId, party);

            Check.That(suggestions.ShowId).IsEqualTo(showId);
            Check.That(suggestions.PartyRequested).IsEqualTo(party);
            Check.That(suggestions.SuggestionsForFirstCategory)
            .ContainsExactly(
                new ShowSuggestion(showId, party, PricingCategoryRequested.First,
                                   SeatFactory.BuildSeats(PricingCategory.First, "A7", "A8"), 2 * 110),
                new ShowSuggestion(showId, party, PricingCategoryRequested.First,
                                   SeatFactory.BuildSeats(PricingCategory.First, "A10", "A11"), 2 * 110),
                new ShowSuggestion(showId, party, PricingCategoryRequested.First,
                                   SeatFactory.BuildSeats(PricingCategory.First, "B6", "B7"), 2 * 110));

            Check.That(suggestions.SuggestionsForFirstCategory.Select(s => s.TotalPrice))
            .ContainsExactly(2 * 110, 2 * 110, 2 * 110);
            Check.That(suggestions.SuggestionsForSecondCategory.Select(s => s.TotalPrice))
            .ContainsExactly(2 * 90, 2 * 90, 2 * 90);
            Check.That(suggestions.SuggestionsForThirdCategory.Select(s => s.TotalPrice))
            .ContainsExactly(2 * 70, 2 * 70, 2 * 70);
            Check.That(suggestions.SuggestionsForMixedCategory.Select(s => s.TotalPrice)).IsEmpty();
        }
Ejemplo n.º 15
0
        public void TestInvalidJson()
        {
            ShowsController controller = new ShowsController();

            controller.Request = new HttpRequestMessage();
            controller.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
            // request will be null in case of bad json string
            JsonRequest request = null;
            //act
            var response = controller.FilterShows(request);

            Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest);
        }
Ejemplo n.º 16
0
        public void Shows_Create_Get()
        {
            // Arrange
            var sources = GetTestSourceSet();
            var db      = new Mock <IPersonalInformationManagerContext>();

            db.Setup(e => e.Sources).Returns(sources);
            ShowsController controller = new ShowsController(db.Object);

            // Act
            ViewResult result = controller.Create() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
Ejemplo n.º 17
0
        public async Task Call_GetAllShowIds_on_AuditoriumSeatingApi_when_asking_for_all_showIds()
        {
            var auditoriumProvider = Substitute.For <IProvideAuditoriumSeating>();
            var expectedShowIds    = new[]
            { new ShowIdDto("show1", ""), new ShowIdDto("show2", "show2"), new ShowIdDto("7", "7") };

            auditoriumProvider.GetAllShowIds().Returns(expectedShowIds);

            var controller = new ShowsController(auditoriumProvider, Substitute.For <IProvideReservedSeats>(),
                                                 Substitute.For <ISuggestSeats>(), Substitute.For <IProvidePrices>(), null, null, null);

            var showIds = await controller.GetAllShowIds();

            Check.That(showIds.Value).ContainsExactly(expectedShowIds);
        }
Ejemplo n.º 18
0
        public void Shows_IndexDataTable()
        {
            // Arrange
            Source source = GetTestSource();
            var    shows  = GetTestShowSet(source);
            var    db     = new Mock <IPersonalInformationManagerContext>();

            db.Setup(e => e.Shows).Returns(shows);

            ShowsController controller = new ShowsController(db.Object);

            // Act
            ViewResult result = controller.IndexDataTable() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
Ejemplo n.º 19
0
        public void Shows_DeleteConfirmed()
        {
            // Arrange
            Source source = GetTestSource();
            var    shows  = GetTestShowSet(source);
            var    db     = new Mock <IPersonalInformationManagerContext>();

            db.Setup(e => e.Shows).Returns(shows);
            db.Setup(e => e.Shows.Find(It.IsAny <int>())).Returns(GetTestShow(source));
            db.Setup(e => e.SaveChanges()).Returns(1);
            ShowsController controller = new ShowsController(db.Object);

            // Act
            var result = (RedirectToRouteResult)controller.DeleteConfirmed(1);

            // Assert
            Assert.AreEqual("Index", result.RouteValues["action"]);
        }
Ejemplo n.º 20
0
        public void Shows_Index()
        {
            // Arrange
            Source source = GetTestSource();
            var    shows  = GetTestShowSet(source);
            var    db     = new Mock <IPersonalInformationManagerContext>();

            db.Setup(e => e.Shows).Returns(shows);
            ShowsController controller = new ShowsController(db.Object);

            // Act
            ViewResult result = controller.Index("", "", "", null) as ViewResult;
            var        model  = result.Model as PagedList.IPagedList <PersonalInformationManager.Models.Show>;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(2, model.Count());
        }
Ejemplo n.º 21
0
        public ShowsControllerTests()
        {
            var fixture = new Fixture();

            _expectedPaginatedResponse = fixture.CreateMany <Show>(3);
            _expectedShow    = fixture.Create <Show>();
            _expectedShow.Id = 1;

            _showServiceMock = new Mock <IShowService>();

            _showServiceMock.Setup(ssm => ssm.GetShowAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(Maybe <Show> .From(_expectedShow));

            _showServiceMock.Setup(ssm => ssm.GetAllPaginatedAsync(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(_expectedPaginatedResponse);

            _showController = new ShowsController(_showServiceMock.Object);
        }
Ejemplo n.º 22
0
        public async Task Get_tvshow_items_success()
        {
            var fakeTVshows = this.GetFakeTVshows();

            Func <IQueryable <Show>, IOrderedQueryable <Show> > orderBy = shows => shows.OrderBy(x => x.Name);

            string includeProperties = string.Empty;

            _repositoryMock.Setup(moq => moq.Get(It.IsAny <Expression <Func <Show, bool> > >(), orderBy, includeProperties))
            .Returns(fakeTVshows);
            // Act
            ShowsController controller   = new ShowsController(_repositoryMock.Object);
            IActionResult   actionResult = await controller.Get(10, 0);

            // Assert
            ViewResult viewResult = Assert.IsType <ViewResult>(actionResult);

            Assert.Null(viewResult.Model);
        }
Ejemplo n.º 23
0
        public void Shows_Edit_Post()
        {
            // Arrange
            Source source  = GetTestSource();
            var    sources = GetTestSourceSet();
            Show   show    = GetTestShow(source);
            var    db      = new Mock <IPersonalInformationManagerContext>();

            db.Setup(e => e.Sources).Returns(sources);
            db.Setup(e => e.SetModified(It.IsAny <Show>()));
            db.Setup(e => e.SaveChanges()).Returns(1);
            ShowsController controller = new ShowsController(db.Object);

            // Act
            var result = (RedirectToRouteResult)controller.Edit(show, null);

            // Assert
            Assert.AreEqual("Index", result.RouteValues["action"]);
        }
Ejemplo n.º 24
0
        public void Shows_Details()
        {
            // Arrange
            Source source = GetTestSource();
            var    shows  = GetTestShowSet(source);
            var    db     = new Mock <IPersonalInformationManagerContext>();

            db.Setup(e => e.Shows).Returns(shows);
            db.Setup(e => e.Shows.Find(It.IsAny <int>())).Returns(GetTestShow(source));
            ShowsController controller = new ShowsController(db.Object);

            // Act
            ViewResult result = controller.Details(1) as ViewResult;
            var        model  = result.Model as PersonalInformationManager.Models.Show;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(SHOW_TITLE, model.Title);
        }
Ejemplo n.º 25
0
        public void Shows_Create_Post()
        {
            // Arrange
            var sources = GetTestSourceSet();
            var shows   = new InMemoryDbSet <Show> {
            };
            var db      = new Mock <IPersonalInformationManagerContext>();

            db.Setup(e => e.Sources).Returns(sources);
            db.Setup(e => e.SaveChanges()).Returns(1);
            db.Setup(e => e.Shows).Returns(shows);
            ShowsController controller = new ShowsController(db.Object);
            Source          source     = GetTestSource();
            Show            show       = GetTestShow(source);

            // Act
            var result = (RedirectToRouteResult)controller.Create(show, null);

            // Assert
            Assert.AreEqual("Index", result.RouteValues["action"]);
        }
Ejemplo n.º 26
0
 public void SetController(Controller controller)
 {
     _controller = (ShowsController)controller;
 }