예제 #1
0
        public void 検索条件に一致しない場合0件()
        {
            // Arrange
            var condition = new TeamSearchCondition(
                pageIndex: 1,
                displayCount: 5,
                teamTypes: new int[] { TeamType.Club.Id },
                teamName: "taisei");

            // Act
            var act = condition.Apply(this.teams.AsQueryable()).ToList();

            // Assert
            Assert.Empty(act);
        }
예제 #2
0
        public void 団体をページングして検索()
        {
            // Arrange
            var condition = new TeamSearchCondition(
                pageIndex: 1,
                displayCount: 5,
                teamTypes: new int[] { TeamType.Club.Id },
                teamName: "1");

            // Act
            var act = condition.Apply(this.teams.AsQueryable()).ToList();

            // Assert
            Assert.Single(act);
            Assert.Equal(new TeamCode("S00019"), act.First().TeamCode);
        }
예제 #3
0
        public void 団体を条件なしで検索()
        {
            // Arrange
            var condition = new TeamSearchCondition(
                pageIndex: 0,
                displayCount: 5,
                teamTypes: null,
                teamName: null);

            // Act
            var act = condition.Apply(this.teams.AsQueryable()).ToList();

            // Assert
            Assert.Equal(5, act.Count);
            Assert.Equal(new TeamCode("S00001"), act.First().TeamCode);
        }
예제 #4
0
        public async Task 団体種別が民間クラブで団体名に1を含む団体を検索()
        {
            // Arrange
            var teams = Enumerable.Range(1, 20)
                        .Select(o => new Team(
                                    teamCode: new TeamCode($"S000{o:00}"),
                                    teamType: o % 2 == 0 ? TeamType.School : TeamType.Club,
                                    teamName: new TeamName($"大成ネット学園{o}"),
                                    teamAbbreviatedName: new TeamAbbreviatedName("大成ネット学園"),
                                    representativeName: "山村修治",
                                    representativeEmailAddress: "*****@*****.**",
                                    telephoneNumber: "03-5408-8576",
                                    address: "大阪市西区京町堀2-13-1-211",
                                    coachName: "横溝学",
                                    coachEmailAddress: "*****@*****.**",
                                    teamJpin: "OS12345"))
                        .ToList();
            var condition = new TeamSearchCondition(
                pageIndex: 1,
                displayCount: 5,
                teamTypes: new int[] { TeamType.Club.Id },
                teamName: "1");
            var teamRepository = new Mock <ITeamRepository>();

            teamRepository.Setup(r => r.SearchAsync(It.Is <TeamSearchCondition>(o => o.PageIndex == 1 && o.DisplayCount == 5)))
            .ReturnsAsync(It.IsAny <Pagable <Team> >())
            .Verifiable();
            var confirmationMailAddressRepository = new Mock <IAuthorizationLinkRepository>();
            var requestTeamRepository             = new Mock <IRequestTeamRepository>();
            var reservationNumberRepository       = new Mock <IReservationNumberRepository>();
            var seasonRepository = new Mock <ISeasonRepository>();
            var mailSender       = new Mock <IMailSender>();
            var usecase          = new TeamUseCase(
                teamRepository.Object,
                confirmationMailAddressRepository.Object,
                requestTeamRepository.Object,
                reservationNumberRepository.Object,
                seasonRepository.Object, mailSender.Object);

            // Act
            var act = await usecase.SearchTeam(pageIndex : 1, displayCount : 5, teamTypes : new int[] { TeamType.Club.Id }, teamName : "1");

            // Assert
            teamRepository.Verify();
            teamRepository.VerifyNoOtherCalls();
        }
예제 #5
0
        public void 団体種別が学校の団体を検索()
        {
            // Arrange
            var condition = new TeamSearchCondition(
                pageIndex: 0,
                displayCount: 5,
                teamTypes: new int[] { TeamType.School.Id },
                teamName: null);

            // Act
            var act = condition.Apply(this.teams.AsQueryable()).ToList();

            // Assert
            Assert.Equal(5, act.Count);
            Assert.Equal(new TeamCode("S00002"), act.First().TeamCode);
            Assert.True(act.All(o => o.TeamType == TeamType.School));
        }
예제 #6
0
        public async Task <Pagable <Team> > SearchTeam(int pageIndex, int displayCount, int[] teamTypes, string teamName)
        {
            var condition = new TeamSearchCondition(pageIndex, displayCount, teamTypes, teamName);

            return(await this.teamRepository.SearchAsync(condition));
        }