public void 登録年度から集計月度一覧をJSON形式で取得する() { // Arrange var registrationYear = "2020"; var mockUseCase = new Mock <ITournamentUseCase>(); var controller = new TournamentsController(mockUseCase.Object); var registrationYears = @$ "
public void 大会登録画面を表示() { // Arrange var mailTemplate = new Dictionary <string, string>() { { "PrePayment", "メール内容" }, { "PostPayment", "メール内容" }, { "NotRecieve", "メール内容" }, { "Other", "メール内容" } }; var mockUseCase = new Mock <ITournamentUseCase>(); mockUseCase.Setup(m => m.GetTournamentEntryReceptionMailBodies()) .Returns(mailTemplate) .Verifiable(); var controller = new TournamentsController(mockUseCase.Object); // Act var result = controller.Register(); // Assert mockUseCase.Verify(); var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsAssignableFrom <RegisterViewModel>(viewResult.ViewData.Model); Assert.Equal(mailTemplate, model.TournamentEntryReceptionMailBodies); }
public async void 大会の詳細画面を表示() { // Arrange var id = 000001; var holdingPeriodStartDate = new DateTime(2020, 6, 10); var holdingPeriodEndDate = new DateTime(2020, 6, 20); var tournament = new Tournament( new TournamentName("ジュニア選手権"), TournamentType.WithDraw, new RegistrationYear(new DateTime(2020, 4, 1)), TypeOfYear.Odd, new AggregationMonth(new DateTime(2020, 6, 1)), new List <TennisEvent>() { TennisEvent.FromId("1_1_1"), TennisEvent.FromId("1_1_2") }, new HoldingPeriod(holdingPeriodStartDate, holdingPeriodEndDate), new List <HoldingDate>() { new HoldingDate(new DateTime(2020, 6, 12)), new HoldingDate(new DateTime(2020, 6, 13)) }, new Venue("日本テニスコート"), new EntryFee(100), MethodOfPayment.PrePayment, new ApplicationPeriod(new DateTime(2020, 5, 1), new DateTime(2020, 5, 31)), new Outline("大会名:ジュニア選手 権場所:日本テニスコート"), "メール件名", "メール本文", 1); var holdingDates = new List <JsonHoldingDate>() { new JsonHoldingDate(new DateTime(2020, 03, 30), true) }; var mockUseCase = new Mock <ITournamentUseCase>(); mockUseCase.Setup(m => m.GetTournament(id)) .ReturnsAsync(tournament) .Verifiable(); mockUseCase.Setup(m => m.CreateHoldingDates(holdingPeriodStartDate, holdingPeriodEndDate)) .Returns(holdingDates) .Verifiable(); var controller = new TournamentsController(mockUseCase.Object); // Act var result = await controller.Details(id); // Assert mockUseCase.Verify(); var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsAssignableFrom <DetailsViewModel>(viewResult.ViewData.Model); }
public async void 大会が削除される() { // Arrange var id = 000001; var mockUseCase = new Mock <ITournamentUseCase>(); var controller = new TournamentsController(mockUseCase.Object); // Act var result = await controller.Delete(id); // Assert mockUseCase.Verify(m => m.DeleteTournament(It.IsAny <int>()), Times.Once()); var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Null(redirectToActionResult.ControllerName); Assert.Equal(nameof(controller.Index), redirectToActionResult.ActionName); }
public async void 大会を更新する() { // Arrange var viewModel = new EditViewModel() { TournamentId = 000001, TournamentName = "ジュニア選手権", SelectedTournamentType = TournamentType.WithDraw.Id.ToString(), SelectedRegistrationYear = "2020/4/1", SelectedTypeOfYear = TypeOfYear.Odd.Id.ToString(), SelectedAggregationMonth = "2020/6/1", SelectedTennisEvents = new List <string>() { "1_1_1", "1_1_2" }, HoldingStartDate = new DateTime(2020, 6, 10), HoldingEndDate = new DateTime(2020, 6, 20), SelectedHoldingDates = new List <string>() { "2020/6/12", "2020/6/13" }, Venue = "日本テニスコート", EntryFee = 100, SelectedMethodOfPayments = MethodOfPayment.PrePayment.Id.ToString(), ApplicationStartDate = new DateTime(2020, 5, 1), ApplicationEndDate = new DateTime(2020, 5, 31), Outline = "大会名:ジュニア選手 権場所:日本テニスコート", TournamentEntryReceptionMailSubject = "メール件名", TournamentEntryReceptionMailBody = "メール本文", }; var mockUseCase = new Mock <ITournamentUseCase>(); var controller = new TournamentsController(mockUseCase.Object); // Act var result = await controller.Edit(viewModel); // Assert mockUseCase.Verify(m => m.UpdateTournament(It.IsAny <UpdateTournamentDto>()), Times.Once()); var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Null(redirectToActionResult.ControllerName); Assert.Equal(nameof(controller.Details), redirectToActionResult.ActionName); }
public async Task TestCreateTournamentWhitValidsMoviesAndReturnsCreated() { // Arrange var model = new CreateTournamentViewModelBuilder().Build(); var expected = new Response <string>(true, "Successfully created tournament", "12345"); _tournamentServiceMock.Setup(x => x.CreateAsync(model)) .Returns(Task.FromResult(expected)); var controller = new TournamentsController(_tournamentServiceMock.Object); // Act var actionResult = await controller.PostAsync(model); //Assert var createdRequestResult = Assert.IsType <CreatedResult>(actionResult.Result); createdRequestResult.StatusCode.Should().Be((int)HttpStatusCode.Created); var result = Assert.IsType <Response <string> >(createdRequestResult.Value); result.Should().BeEquivalentTo(expected); }
public async Task TestCreateTournamentWhitUnavailableServiceMoviesAndReturnsBadRequest() { // Arrange var model = new CreateTournamentViewModelBuilder().Build(); var expected = new Response <string>(false, "Error connecting to the movie service"); _tournamentServiceMock.Setup(x => x.CreateAsync(model)) .Returns(Task.FromResult(expected)); var controller = new TournamentsController(_tournamentServiceMock.Object); // Act var actionResult = await controller.PostAsync(model); //Assert var badRequestResult = Assert.IsType <BadRequestObjectResult>(actionResult.Result); badRequestResult.StatusCode.Should().Be((int)HttpStatusCode.BadRequest); var result = Assert.IsType <Response <string> >(badRequestResult.Value); result.Should().BeEquivalentTo(expected); }
public async void 大会一覧を表示() { var mockUseCase = new Mock <ITournamentUseCase>(); var tournaments = new List <Tournament>() { new Tournament(new TournamentName("大会0"), TournamentType.OnlyPoints, new RegistrationYear(DateTime.Now), TypeOfYear.Evem, new AggregationMonth(DateTime.Now), new List <TennisEvent>() { new TennisEvent(Category.Under11Or12, Gender.Boys, Format.Doubles) }), new Tournament(new TournamentName("大会1"), TournamentType.OnlyPoints, new RegistrationYear(DateTime.Now), TypeOfYear.Evem, new AggregationMonth(DateTime.Now), new List <TennisEvent>() { new TennisEvent(Category.Under11Or12, Gender.Boys, Format.Doubles) }), new Tournament(new TournamentName("大会2"), TournamentType.OnlyPoints, new RegistrationYear(DateTime.Now), TypeOfYear.Evem, new AggregationMonth(DateTime.Now), new List <TennisEvent>() { new TennisEvent(Category.Under11Or12, Gender.Boys, Format.Doubles) }), new Tournament(new TournamentName("大会3"), TournamentType.OnlyPoints, new RegistrationYear(DateTime.Now), TypeOfYear.Evem, new AggregationMonth(DateTime.Now), new List <TennisEvent>() { new TennisEvent(Category.Under11Or12, Gender.Boys, Format.Doubles) }), new Tournament(new TournamentName("大会4"), TournamentType.OnlyPoints, new RegistrationYear(DateTime.Now), TypeOfYear.Evem, new AggregationMonth(DateTime.Now), new List <TennisEvent>() { new TennisEvent(Category.Under11Or12, Gender.Boys, Format.Doubles) }), }; mockUseCase.Setup(m => m.GetTournaments()) .ReturnsAsync(tournaments) .Verifiable(); var controller = new TournamentsController(mockUseCase.Object); var result = await controller.Index(); mockUseCase.Verify(); var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsAssignableFrom <IndexViewModel>(viewResult.ViewData.Model); Assert.Equal(5, model.Tournaments.Count); }
public void TournamentsControllerGet() { // Arrange Mock <ITournamentRepository> _mockTournamentRepository = new Mock <ITournamentRepository>(); _mockTournamentRepository.Setup(x => x.Retrieve()).Returns(new List <Tournament> { new Tournament { Name = "Hello", TournamentId = 1 }, new Tournament { Name = "Tournament 2", TournamentId = 2 } }); TournamentsController controller = new TournamentsController(_mockTournamentRepository.Object); // Act IHttpActionResult result = controller.Get() as IHttpActionResult; // Assert Assert.IsNotNull(result); //Assert.AreEqual(2, result.Count()); //Assert.AreEqual("value1", result.ElementAt(0)); //Assert.AreEqual("value2", result.ElementAt(1)); }
public void Init() { _uow.SetupGet(u => u.Tournaments).Returns(_tournamentRepo.Object); _controller = new TournamentsController(_uow.Object); }
public async void 大会編集時無効な値の場合再表示() { // Arrange var viewModel = new EditViewModel() { TournamentId = 000001, TournamentName = "ジュニア選手権", SelectedTournamentType = TournamentType.WithDraw.Id.ToString(), SelectedRegistrationYear = "2020/4/1", SelectedTypeOfYear = TypeOfYear.Odd.Id.ToString(), SelectedAggregationMonth = "2020/6/1", SelectedTennisEvents = new List <string>() { "1_1_1", "1_1_2" }, HoldingStartDate = new DateTime(2020, 6, 10), HoldingEndDate = new DateTime(2020, 6, 20), SelectedHoldingDates = new List <string>() { "2020/6/12", "2020/6/13" }, Venue = "日本テニスコート", EntryFee = 100, SelectedMethodOfPayments = MethodOfPayment.PrePayment.Id.ToString(), ApplicationStartDate = new DateTime(2020, 5, 1), ApplicationEndDate = new DateTime(2020, 5, 31), Outline = "大会名:ジュニア選手 権場所:日本テニスコート", TournamentEntryReceptionMailSubject = "メール件名", TournamentEntryReceptionMailBody = "メール 本文", }; var mockUseCase = new Mock <ITournamentUseCase>(); var controller = new TournamentsController(mockUseCase.Object); controller.ModelState.AddModelError("error", "some error"); // Act var result = await controller.Edit(viewModel); // Arrange var viewResult = Assert.IsType <ViewResult>(result); Assert.Null(viewResult.ViewName); var model = Assert.IsType <EditViewModel>(viewResult.ViewData.Model); Assert.Equal(viewModel.TournamentId, model.TournamentId); Assert.Equal(viewModel.TournamentName, model.TournamentName); Assert.Equal(viewModel.SelectedTournamentType, model.SelectedTournamentType); Assert.Equal(viewModel.SelectedRegistrationYear, model.SelectedRegistrationYear); Assert.Equal(viewModel.SelectedTypeOfYear, model.SelectedTypeOfYear); Assert.Equal(viewModel.SelectedAggregationMonth, model.SelectedAggregationMonth); Assert.Equal(viewModel.SelectedTennisEvents, model.SelectedTennisEvents); Assert.Equal(viewModel.HoldingStartDate, model.HoldingStartDate); Assert.Equal(viewModel.HoldingEndDate, model.HoldingEndDate); Assert.Equal(viewModel.SelectedHoldingDates, model.SelectedHoldingDates); Assert.Equal(viewModel.Venue, model.Venue); Assert.Equal(viewModel.EntryFee, model.EntryFee); Assert.Equal(viewModel.SelectedMethodOfPayments, model.SelectedMethodOfPayments); Assert.Equal(viewModel.ApplicationStartDate, model.ApplicationStartDate); Assert.Equal(viewModel.ApplicationEndDate, model.ApplicationEndDate); Assert.Equal(viewModel.Outline, model.Outline); Assert.Equal(viewModel.TournamentEntryReceptionMailSubject, model.TournamentEntryReceptionMailSubject); Assert.Equal(viewModel.TournamentEntryReceptionMailBody, model.TournamentEntryReceptionMailBody); }
public async void 大会登録時無効な値の場合再表示() { // Arrange var holdingPeriodStartDate = new DateTime(2020, 5, 1); var holdingPeriodEndDate = new DateTime(2020, 5, 31); var viewModel = new RegisterViewModel() { TournamentName = "ジュニア選手権", SelectedTournamentType = TournamentType.WithDraw.Name, SelectedRegistrationYear = "2020/4/1", SelectedTypeOfYear = TypeOfYear.Odd.Name, SelectedAggregationMonth = "2020/6/1", SelectedTennisEvents = new List <string>() { "1_1_1", "1_1_2" }, HoldingStartDate = holdingPeriodStartDate, HoldingEndDate = holdingPeriodEndDate, SelectedHoldingDates = new List <string>() { "2020/6/12", "2020/6/13" }, Venue = "日本テニスコート", EntryFee = 100, SelectedMethodOfPayments = MethodOfPayment.PrePayment.Name, ApplicationStartDate = new DateTime(2020, 5, 1), ApplicationEndDate = new DateTime(2020, 5, 31), Outline = "大会名:ジュニア選手 権場所:日本テニスコート", TournamentEntryReceptionMailSubject = "メール件名", TournamentEntryReceptionMailBody = "メール本文", }; var holdingDates = new List <JsonHoldingDate>() { new JsonHoldingDate(new DateTime(2020, 5, 1), true), new JsonHoldingDate(new DateTime(2020, 5, 31), true), }; var mockUseCase = new Mock <ITournamentUseCase>(); mockUseCase.Setup(m => m.CreateHoldingDates(holdingPeriodStartDate, holdingPeriodEndDate)) .Returns(holdingDates) .Verifiable(); var controller = new TournamentsController(mockUseCase.Object); controller.ModelState.AddModelError("error", "some error"); // Act var result = await controller.Register(viewModel); // Arrange var viewResult = Assert.IsType <ViewResult>(result); Assert.Null(viewResult.ViewName); var model = Assert.IsType <RegisterViewModel>(viewResult.ViewData.Model); Assert.Equal(viewModel.TournamentName, model.TournamentName); Assert.Equal(viewModel.SelectedTournamentType, model.SelectedTournamentType); Assert.Equal(viewModel.SelectedRegistrationYear, model.SelectedRegistrationYear); Assert.Equal(viewModel.SelectedTypeOfYear, model.SelectedTypeOfYear); Assert.Equal(viewModel.SelectedAggregationMonth, model.SelectedAggregationMonth); Assert.Equal(viewModel.SelectedTennisEvents, model.SelectedTennisEvents); Assert.Equal(viewModel.HoldingStartDate, model.HoldingStartDate); Assert.Equal(viewModel.HoldingEndDate, model.HoldingEndDate); Assert.Equal(viewModel.SelectedHoldingDates, model.SelectedHoldingDates); Assert.Equal(viewModel.Venue, model.Venue); Assert.Equal(viewModel.EntryFee, model.EntryFee); Assert.Equal(viewModel.SelectedMethodOfPayments, model.SelectedMethodOfPayments); Assert.Equal(viewModel.ApplicationStartDate, model.ApplicationStartDate); Assert.Equal(viewModel.ApplicationEndDate, model.ApplicationEndDate); Assert.Equal(viewModel.Outline, model.Outline); Assert.Equal(viewModel.TournamentEntryReceptionMailSubject, model.TournamentEntryReceptionMailSubject); Assert.Equal(viewModel.TournamentEntryReceptionMailBody, model.TournamentEntryReceptionMailBody); }
public TournamentTests() { _mockRepo = new Mock <ITourRepo>(); _controller = new TournamentsController(_mockRepo.Object); }
public void SetUp() { _database = Substitute.For <IStartippDb>(); _systemUnderTest = new TournamentsController(_database); }