public void 支払い方法によって参加費の表示フラグが正常に切り替わること(int id, bool flag) { var act = 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(new DateTime(2020, 6, 10), new DateTime(2020, 6, 20)), new List <HoldingDate>() { new HoldingDate(new DateTime(2020, 6, 12)), new HoldingDate(new DateTime(2020, 6, 13)) }, new Venue("日本テニスコート"), new EntryFee(100), Enumeration.FromValue <MethodOfPayment>(id), new ApplicationPeriod(new DateTime(2020, 5, 1), new DateTime(2020, 5, 31)), new Outline("大会名:ジュニア選手 権場所:日本テニスコート"), "メール件名", "メール本文", 1 ); Assert.Equal(flag, act.ShowEntryFee); }
public void ポイントのみの大会を正しく取得() { var act = new Tournament( new TournamentName("ジュニア選手権"), TournamentType.OnlyPoints, 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") }, 1 ); Assert.Equal("ジュニア選手権", act.TournamentName.Value); Assert.Equal(TournamentType.OnlyPoints, act.TournamentType); Assert.Equal(new DateTime(2020, 4, 1), act.RegistrationYear.Value); Assert.Equal(TypeOfYear.Odd, act.TypeOfYear); Assert.Equal(new DateTime(2020, 6, 1), act.AggregationMonth.Value); Assert.Equal(new List <TennisEvent>() { TennisEvent.FromId("1_1_1"), TennisEvent.FromId("1_1_2") }, act.TennisEvents); }
public async Task ポイントのみ大会を更新する() { // Arrange var dto = new UpdateTournamentDto() { TournamentId = 1, TournamentName = "ジュニア選手権", TournamentType = TournamentType.OnlyPoints.Id, RegistrationYear = new DateTime(2020, 4, 1), TypeOfYear = TypeOfYear.Odd.Id, AggregationMonth = new DateTime(2020, 6, 1), TennisEvents = new List <(int, int, int)>() { (1, 1, 1), (1, 1, 2) }, HoldingStartDate = new DateTime(2020, 6, 10), HoldingEndDate = new DateTime(2020, 6, 20), HoldingDates = new List <DateTime>() { new DateTime(2020, 6, 12), new DateTime(2020, 6, 13) }, Venue = "日本テニスコート", EntryFee = 100, MethodOfPayment = MethodOfPayment.PrePayment.Id, ApplicationStartDate = new DateTime(2020, 5, 1), ApplicationEndDate = new DateTime(2020, 5, 31), Outline = "大会名:ジュニア選手権場所:日本テニスコート", TournamentEntryReceptionMailSubject = "メール件名", TournamentEntryReceptionMailBody = "メール本文", }; var tournament = new Tournament( new TournamentName("ジュニア選手権"), TournamentType.OnlyPoints, 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") }, 1 ); var mockRepository = new Mock <ITournamentRepository>(); mockRepository.Setup(r => r.Update(It.Is <Tournament>(o => o.TournamentType == TournamentType.OnlyPoints))) .ReturnsAsync(tournament) .Verifiable(); var usecase = new TournamentUseCase(mockRepository.Object); // Act var act = await usecase.UpdateTournament(dto); // Assert mockRepository.Verify(); Assert.Equal(TournamentType.OnlyPoints, act.TournamentType); Assert.Equal(1, act.Id); }
public void 種目Idから種目を設定する() { var tennisEvent = TennisEvent.FromId("1_1_1"); Assert.Equal(Category.Under17Or18, tennisEvent.Category); Assert.Equal(Gender.Boys, tennisEvent.Gender); Assert.Equal(Format.Singles, tennisEvent.Format); }
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 void 大会を正しく取得() { var act = 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(new DateTime(2020, 6, 10), new DateTime(2020, 6, 20)), 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 ); Assert.Equal("ジュニア選手権", act.TournamentName.Value); Assert.Equal(TournamentType.WithDraw, act.TournamentType); Assert.Equal(new DateTime(2020, 4, 1), act.RegistrationYear.Value); Assert.Equal(TypeOfYear.Odd, act.TypeOfYear); Assert.Equal(new DateTime(2020, 6, 1), act.AggregationMonth.Value); Assert.Equal(new List <TennisEvent>() { TennisEvent.FromId("1_1_1"), TennisEvent.FromId("1_1_2") }, act.TennisEvents); Assert.Equal(new DateTime(2020, 6, 10), act.HoldingPeriod.StartDate); Assert.Equal(new DateTime(2020, 6, 20), act.HoldingPeriod.EndDate); Assert.Equal(new List <HoldingDate>() { new HoldingDate(new DateTime(2020, 6, 12)), new HoldingDate(new DateTime(2020, 6, 13)) }, act.HoldingDates); Assert.Equal("日本テニスコート", act.Venue.Value); Assert.Equal(100, act.EntryFee.Value); Assert.Equal(MethodOfPayment.PrePayment, act.MethodOfPayment); Assert.Equal(new DateTime(2020, 5, 1), act.ApplicationPeriod.StartDate); Assert.Equal(new DateTime(2020, 5, 31), act.ApplicationPeriod.EndDate); Assert.Equal("大会名:ジュニア選手 権場所:日本テニスコート", act.Outline.Value); Assert.Equal("メール件名", act.TournamentEntryReceptionMailSubject); Assert.Equal("メール本文", act.TournamentEntryReceptionMailBody); }
public async Task <ActionResult> Results(int tournamentId, string tennisEventId) { this.ViewData["Action"] = "Results"; var tournament = await this.tournamentUseCase.GetTournament(tournamentId); var tennisEvent = TennisEvent.FromId(tennisEventId); return(this.View(new ResultsViewModel( $"{tournament.Id}", tournament.TournamentName.Value, tennisEvent.TennisEventId, tennisEvent.DisplayTournamentEvent, tennisEvent.IsSingles ))); }
public async void 大会開催期間と申込期間と種目一覧を取得する() { // Arrange var tournamentId = 1; 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(new DateTime(2020, 6, 10), new DateTime(2020, 6, 20)), 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("大会名:ジュニア選手権場所:日本テニスコート"), "メール件名", "メール本文", tournamentId ); var mockRepository = new Mock <ITournamentRepository>(); mockRepository.Setup(r => r.FindById(tournamentId)) .ReturnsAsync(tournament) .Verifiable(); var useCase = new TournamentEntryUseCase(mockRepository.Object); // Act var act = await useCase.GetSelectedTournament(tournamentId); // Assert mockRepository.Verify(); Assert.Equal("17/18歳以下 男子 シングルス", act.TennisEvents[0].Name); Assert.Equal("17/18歳以下 男子 ダブルス", act.TennisEvents[1].Name); Assert.Equal("2020年6月10日 ~ 2020年6月20日", act.HoldingPeriod); Assert.Equal("2020年5月1日 ~ 2020年5月31日", act.ApplicationPeriod); }
public async Task 大会IDを指定し大会取得() { // Arrange var id = 100000; 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(new DateTime(2020, 6, 10), new DateTime(2020, 6, 20)), 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("大会名:ジュニア選手 権場所:日本テニスコート"), "メール件名", "メール本文", 100000 ); var mockRepository = new Mock <ITournamentRepository>(); mockRepository.Setup(r => r.FindById(id)) .ReturnsAsync(tournament) .Verifiable(); var usecase = new TournamentUseCase(mockRepository.Object); // Act var act = await usecase.GetTournament(id); // Assert mockRepository.Verify(); Assert.Equal(id, act.Id); }
public async Task <ActionResult> Create(int tournamentId, string tennisEventId) { this.ViewData["Action"] = "Create"; var tournament = await this.tournamentUseCase.GetTournament(tournamentId); var tennisEvent = TennisEvent.FromId(tennisEventId); var dto = new DrawTableRepositoryDto(tournamentId, tennisEventId); var drawTable = await this.drawTableUseCase.GetDrawTable(dto); var useQualifyingMenu = drawTable.TournamentFormat == TournamentFormat.WithQualifying; return(this.View(new CreateViewModel( $"{tournament.Id}", tournament.TournamentName.Value, tennisEvent.TennisEventId, tennisEvent.DisplayTournamentEvent, tournament.HoldingDates.Select(o => o.DisplayValue), useQualifyingMenu, tennisEvent.IsSingles ))); }
public async Task <ActionResult> Settings(int tournamentId, string tennisEventId) { this.ViewData["Action"] = "Settings"; var tournament = await this.tournamentUseCase.GetTournament(tournamentId); var tennisEvent = TennisEvent.FromId(tennisEventId); var dto = new DrawTableRepositoryDto(tournamentId, tennisEventId) { IncludeEntryDetails = true, IncludeQualifyingDrawSettings = true, IncludeMainDrawSettings = true, }; var drawTable = await this.drawTableUseCase.GetDrawTable(dto); return(this.View(new SettingsViewModel( $"{tournament.Id}", tournament.TournamentName.Value, tennisEvent.TennisEventId, tennisEvent.DisplayTournamentEvent, drawTable ))); }
public async Task <ActionResult> Players(int tournamentId, string tennisEventId) { this.ViewData["Action"] = "Players"; var tournament = await this.tournamentUseCase.GetTournament(tournamentId); var tennisEvent = TennisEvent.FromId(tennisEventId); var dto = new DrawTableRepositoryDto(tournamentId, tennisEventId) { IncludeEntryDetails = true, }; var drawTable = await this.drawTableUseCase.GetDrawTable(dto); var useQualifyingMenu = drawTable.TournamentFormat == TournamentFormat.WithQualifying; return(this.View(new PlayerViewModel( $"{tournament.Id}", tournament.TournamentName.Value, tennisEvent.TennisEventId, tennisEvent.DisplayTournamentEvent, drawTable.EligiblePlayersType.Id, tournament.HoldingDates.Select(o => o.DisplayValue), useQualifyingMenu ))); }
public async void 申込期間中の大会名と大会IDを取得する() { // Arrange var tournaments = new List <Tournament>() { new Tournament( new TournamentName("ジュニア選手権1"), 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(DateTime.Today.AddMonths(2), DateTime.Today.AddMonths(3)), new List <HoldingDate>() { new HoldingDate(DateTime.Today.AddMonths(2).AddDays(1)), new HoldingDate(DateTime.Today.AddMonths(2).AddDays(2)) }, new Venue("日本テニスコート"), new EntryFee(100), MethodOfPayment.PrePayment, new ApplicationPeriod(DateTime.Today, DateTime.Today.AddMonths(1)), new Outline("大会名:ジュニア選手 権場所:日本テニスコート"), "メール件名", "メール本文", 1 ), new Tournament( new TournamentName("ジュニア選手権1"), 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(DateTime.Today.AddMonths(2).AddDays(1), DateTime.Today.AddMonths(3)), new List <HoldingDate>() { new HoldingDate(DateTime.Today.AddMonths(2).AddDays(2)), new HoldingDate(DateTime.Today.AddMonths(2).AddDays(3)) }, new Venue("日本テニスコート"), new EntryFee(100), MethodOfPayment.PrePayment, new ApplicationPeriod(DateTime.Today.AddMonths(-1), DateTime.Today), new Outline("大会名:ジュニア選手 権場所:日本テニスコート"), "メール件名", "メール本文", 2 ), new Tournament( new TournamentName("ジュニア選手権1"), 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(DateTime.Today.AddMonths(2), DateTime.Today.AddMonths(3)), new List <HoldingDate>() { new HoldingDate(DateTime.Today.AddMonths(2).AddDays(1)), new HoldingDate(DateTime.Today.AddMonths(2).AddDays(2)) }, new Venue("日本テニスコート"), new EntryFee(100), MethodOfPayment.PrePayment, new ApplicationPeriod(DateTime.Today.AddMonths(-2), DateTime.Today.AddMonths(-1)), new Outline("大会名:ジュニア選手 権場所:日本テニスコート"), "メール件名", "メール本文", 3 ) }; var mockRepository = new Mock <ITournamentRepository>(); mockRepository.Setup(r => r.Find()) .ReturnsAsync(tournaments) .Verifiable(); var useCase = new TournamentEntryUseCase(mockRepository.Object); // Act var act = await useCase.GetApplicationTournaments(); // Assert mockRepository.Verify(); Assert.Equal(2, act.Count); Assert.Equal("2", act[0].Id); Assert.Equal("1", act[1].Id); }