Пример #1
0
        public void Match_SingleOptions()
        {
            var candidate1 = new Candidate()
            {
                CandidateId = 1, Name = "Chan Bravo", SkillTags = "reliable, reliable, ms-office, xcode, detail"
            };
            var candidate2 = new Candidate()
            {
                CandidateId = 2, Name = "Thomasine To", SkillTags = "illustrator, oration, sterilisation, kotlin, outlook"
            };
            var candidate3 = new Candidate()
            {
                CandidateId = 3, Name = "Lester Scheidt", SkillTags = "placements, iOS, entertainment, mobile, xcode"
            };
            var candidate4 = new Candidate()
            {
                CandidateId = 4, Name = "Pandora Hubble", SkillTags = "aphra-registration, sales, ms-office, xcode, outlook"
            };

            var candidates = new[] { candidate1, candidate2, candidate3, candidate4 };


            var job = new Job()
            {
                Company = "Surile", JobId = 2, Name = "Reception", Skills = "word, placements, data-entry, communication"
            };

            var service       = new MatchingService();
            var bestCandidate = service.Match(job, candidates);

            Assert.NotNull(bestCandidate);
            Assert.AreEqual(3, bestCandidate.CandidateId);
        }
Пример #2
0
        public async Task MatchPairs_MaxPairSettingIsZero_NoPairsGenerated()
        {
            // Arrange
            this.dataProvider.Setup(x => x.GetInstalledTeamsAsync())
            .Returns(() => Task.FromResult <IList <TeamInstallInfo> >(new List <TeamInstallInfo>
            {
                new TeamInstallInfo {
                    TeamId = Guid.NewGuid().ToString()
                },
            }));

            // No user opted-out
            this.dataProvider.Setup(x => x.GetAllUsersOptInStatusAsync())
            .Returns(() => Task.FromResult(new Dictionary <string, bool>()));

            // 2 members exist in each team
            this.conversationHelper.Setup(x => x.GetTeamMembers(this.botAdapter, It.IsAny <TeamInstallInfo>()))
            .Returns(() => Task.FromResult <IList <ChannelAccount> >(new List <ChannelAccount>
            {
                new TeamsChannelAccount
                {
                    Id                = Guid.NewGuid().ToString(),
                    AadObjectId       = Guid.NewGuid().ToString(),
                    UserPrincipalName = string.Empty,
                    Email             = string.Empty,
                },
                new TeamsChannelAccount
                {
                    Id                = Guid.NewGuid().ToString(),
                    AadObjectId       = Guid.NewGuid().ToString(),
                    UserPrincipalName = string.Empty,
                    Email             = string.Empty,
                },
            }));

            var maxPairUpsPerTeam = ConfigurationManager.AppSettings[this.maxPairsSettingsKey];

            ConfigurationManager.AppSettings[this.maxPairsSettingsKey] = "0";
            var sut = new MatchingService(this.dataProvider.Object, this.conversationHelper.Object, new TelemetryClient(), this.botAdapter);

            // Act

            // Send the message activity to the bot.
            var pairsNotifiedCount = await sut.MakePairsAndNotifyAsync();

            // Set original value back
            ConfigurationManager.AppSettings[this.maxPairsSettingsKey] = maxPairUpsPerTeam;

            // Assert GetInstalledTeamsAsync is called once
            this.dataProvider.Verify(m => m.GetInstalledTeamsAsync(), Times.Once);

            // Assert GetAllUsersOptInStatusAsync is called once
            this.dataProvider.Verify(m => m.GetAllUsersOptInStatusAsync(), Times.Once);

            // 1 calls to GetTeamNameByIdAsync since we have 1 team
            this.conversationHelper.Verify(m => m.GetTeamNameByIdAsync(this.botAdapter, It.IsAny <TeamInstallInfo>()), Times.Once);

            // 1 calls to GetTeamMembers since we have 1 team
            this.conversationHelper.Verify(m => m.GetTeamMembers(this.botAdapter, It.IsAny <TeamInstallInfo>()), Times.Once);

            // No pairs since max limit is reached
            Assert.Equal(0, pairsNotifiedCount);
        }
Пример #3
0
 public bool IsPartialMatch(string input)
 {
     return(MatchingService.IsPartialMatch(MatchingRegex, input));
 }
Пример #4
0
 public bool IsFullMatch(string input)
 {
     return(!MatchingService.IsFullMatch(ReservedWords, input) &&
            char.IsLetter(input[0]) && input.All(ch => (char.IsLetter(ch) || char.IsDigit(ch)) && !char.IsWhiteSpace(ch)));
 }