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; }
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); } }
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); }
public void TestDetailsView() { var controller = new ShowsController(); var result = controller.Details(2) as ViewResult; Assert.AreEqual("Details", result.ViewName); }
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()); }
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)); }
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)); }
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 ); }
public void TestEmptyJsonRequest() { ShowsController controller = new ShowsController(); JsonRequest request = new JsonRequest(); var response = controller.FilterShows(request); Assert.AreEqual(response.StatusCode, HttpStatusCode.OK); }
public void Get_ViewResult_Index_Test() { //Arrange ShowsController controller = new ShowsController(); //Act var result = controller.Index(); //Assert Assert.IsType <ViewResult>(result); }
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); }
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); }
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(); }
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); }
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); }
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); }
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); }
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"]); }
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()); }
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); }
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); }
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"]); }
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); }
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"]); }
public void SetController(Controller controller) { _controller = (ShowsController)controller; }