Esempio n. 1
0
        public void ShouldBeAbleToCalculateSinglePartialMatch()
        {
            const int    expectedWeight = 6;
            const string searchTerms    = "Lock description";
            var          separateTerms  = new List <string>
            {
                "Lock",
                "description"
            };

            var mediums = new List <MediumDto>
            {
                new MediumDto
                {
                    Owner       = "Owner",
                    Description = "Medium description"
                }
            };

            var service = new MediumWeightCalculator();

            service.CalculateWeights(mediums, new List <GroupDto>(), searchTerms, separateTerms);

            mediums[0].Weight.Should().Be(expectedWeight);
        }
Esempio n. 2
0
        public void ShouldBeAbleToCalculateMultiplePartialWeights()
        {
            const int    expectedWeight = 16;
            const string searchTerms    = "Medium lock";
            var          separateTerms  = new List <string>
            {
                "Medium",
                "lock"
            };

            var mediums = new List <MediumDto>
            {
                new MediumDto
                {
                    Description = "Medium desc",
                    Owner       = "Owner medium"
                }
            };

            var service = new MediumWeightCalculator();

            service.CalculateWeights(mediums, new List <GroupDto>(), searchTerms, separateTerms);

            mediums[0].Weight.Should().Be(expectedWeight);
        }
Esempio n. 3
0
        public void ShouldBeAbleToCalculateWeightForMultipleMediums()
        {
            const int    mediumOneExpectedWeight = 130;
            const int    mediumTwoExpectedWeight = 40;
            const string searchTerms             = "Card medium";
            var          separateTerms           = new List <string>
            {
                "Card",
                "medium"
            };

            var mediums = new List <MediumDto>
            {
                new MediumDto
                {
                    Owner = "Card Medium",
                    Type  = MediumType.Card
                },
                new MediumDto
                {
                    Owner = "Medium one",
                    Type  = MediumType.Card
                }
            };

            var service = new MediumWeightCalculator();

            service.CalculateWeights(mediums, new List <GroupDto>(), searchTerms, separateTerms);

            mediums[0].Weight.Should().Be(mediumOneExpectedWeight);
            mediums[1].Weight.Should().Be(mediumTwoExpectedWeight);
        }
Esempio n. 4
0
        public void ShouldBeAbleToCalculatePartialAndFullMatches()
        {
            const int    expectedWeight = 106;
            const string searchTerms    = "Medium Owner";
            var          separateTerms  = new List <string>
            {
                "Medium",
                "Owner"
            };

            var mediums = new List <MediumDto>
            {
                new MediumDto
                {
                    Owner       = "Medium Owner",
                    Description = "Is a Medium"
                }
            };

            var service = new MediumWeightCalculator();

            service.CalculateWeights(mediums, new List <GroupDto>(), searchTerms, separateTerms);

            mediums[0].Weight.Should().Be(expectedWeight);
        }
Esempio n. 5
0
        public void ShouldDistributeTransitoryWeightToCorrectMedium()
        {
            const int    mediumOneExpectedWeight = 130;
            const int    mediumTwoExpectedWeight = 50;
            const int    transitoryWeight        = 10;
            var          guid          = Guid.NewGuid();
            const string searchTerms   = "Card medium";
            var          separateTerms = new List <string>
            {
                "Card",
                "medium"
            };

            var mediums = new List <MediumDto>
            {
                new MediumDto
                {
                    Owner = "Card Medium",
                    Type  = MediumType.Card
                },
                new MediumDto
                {
                    Owner   = "Medium one",
                    Type    = MediumType.Card,
                    GroupId = guid
                }
            };

            var groups = new List <GroupDto>
            {
                new GroupDto
                {
                    Id = guid,
                    TransitoryWeight = transitoryWeight
                }
            };
            var service = new MediumWeightCalculator();

            service.CalculateWeights(mediums, groups, searchTerms, separateTerms);

            mediums[0].Weight.Should().Be(mediumOneExpectedWeight);
            mediums[1].Weight.Should().Be(mediumTwoExpectedWeight);
        }
Esempio n. 6
0
        public void ShouldBeAbleToFullyMatchMediumType()
        {
            const int    expectedWeight = 30;
            const string searchTerms    = "Card";
            var          separateTerms  = new List <string>
            {
                "Card"
            };

            var mediums = new List <MediumDto>
            {
                new MediumDto
                {
                    Type = MediumType.Card
                }
            };

            var service = new MediumWeightCalculator();

            service.CalculateWeights(mediums, new List <GroupDto>(), searchTerms, separateTerms);

            mediums[0].Weight.Should().Be(expectedWeight);
        }
Esempio n. 7
0
        public void ShouldIncludeTransitoryWeightFromGroup()
        {
            const int expectedWeight   = 6;
            const int transitoryWeight = 6;
            var       guid             = Guid.NewGuid();

            var searchTerms   = "No Match";
            var separateTerms = new List <string>
            {
                "No",
                "Match"
            };

            var mediums = new List <MediumDto>
            {
                new MediumDto
                {
                    Owner   = "Own",
                    GroupId = guid
                }
            };

            var groups = new List <GroupDto>
            {
                new GroupDto
                {
                    Id = guid,
                    TransitoryWeight = transitoryWeight
                }
            };

            var service = new MediumWeightCalculator();

            service.CalculateWeights(mediums, groups, searchTerms, separateTerms);

            mediums[0].Weight.Should().Be(expectedWeight);
        }
Esempio n. 8
0
        public void ShouldCalculateFullMatch()
        {
            const int    expectedWeight = 100;
            const string searchTerm     = "Super owner";
            var          separateTerms  = new List <string>
            {
                "Super",
                "owner"
            };

            var mediums = new List <MediumDto>
            {
                new MediumDto
                {
                    Owner = "Super owner"
                }
            };

            var service = new MediumWeightCalculator();

            service.CalculateWeights(mediums, new List <GroupDto>(), searchTerm, separateTerms);

            mediums[0].Weight.Should().Be(expectedWeight);
        }
Esempio n. 9
0
        public void ShouldDoNothingWhenListOfMediumsIsEmpty()
        {
            var service = new MediumWeightCalculator();

            service.CalculateWeights(new List <MediumDto>(), new List <GroupDto>(), string.Empty, new List <string>());
        }