コード例 #1
0
        // Edit Test InvalidModel |

        public void Edit_Tournament_ReturnTournamentID()
        {
            int tournamentID = 2;

            var tournaments = new Tournaments
            {
                TournamentId       = 2,
                TournamentName     = "Tournament 2020",
                StartDate          = DateTime.Now,
                EndDate            = DateTime.Now.AddDays(5),
                TournamentLocation = "Belgrade"
            };

            _mockRepo.Setup(e => e.FindElementById(tournamentID)).Returns(tournaments);

            var expectedModel = new Tournaments()
            {
                TournamentId       = tournaments.TournamentId,
                TournamentName     = tournaments.TournamentName,
                StartDate          = tournaments.StartDate,
                EndDate            = tournaments.EndDate,
                TournamentLocation = tournaments.TournamentLocation
            };

            var actual = _controller.Edit(tournamentID);

            var actualModel = actual.Model as Tournaments;

            Assert.Equal(actualModel.TournamentId, tournaments.TournamentId);
            Assert.Equal(actualModel.TournamentName, tournaments.TournamentName);
            Assert.Equal(actualModel.StartDate.ToString(), tournaments.StartDate.ToString());
            Assert.Equal(actualModel.EndDate.ToString(), tournaments.EndDate.ToString());
            Assert.Equal(actualModel.TournamentLocation, tournaments.TournamentLocation);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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 mailTemplate = new Dictionary <string, string>()
            {
                { "PrePayment", "メール内容" },
                { "PostPayment", "メール内容" },
                { "NotRecieve", "メール内容" },
                { "Other", "メール内容" }
            };

            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();
            mockUseCase.Setup(m => m.GetTournamentEntryReceptionMailBodies())
            .Returns(mailTemplate)
            .Verifiable();
            var controller = new TournamentsController(mockUseCase.Object);

            // Act
            var result = await controller.Edit(id);

            // Assert
            mockUseCase.Verify();
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <EditViewModel>(viewResult.ViewData.Model);

            Assert.Equal(mailTemplate, model.TournamentEntryReceptionMailBodies);
        }