public void MatchAlgorithmNoMatchFound() { // Arrange var searchValue = "Test3"; // Set up the mock conditions: Dice return 1 for Test1, first case so no need to set up other return values _mockCoefficientAlgorithm.Setup(r => r.Match(It.IsAny<string>(), It.IsAny<string>())).Returns(0.0f); // No Match _mockSimilarityAlgorithm.Setup(r => r.Match(It.IsAny<string>(), It.IsAny<string>())).Returns(0.0f); // No Match _mockEditDistanceAlgorithm.Setup(r => r.Match(It.IsAny<string>(), It.IsAny<string>())).Returns(10); // No Match _mockPreProcessor.Setup(p => p.ApplyPreProcess("Test1", It.IsAny<PreProcessTypesEnum>())).Returns("Test1"); _mockPreProcessor.Setup(p => p.ApplyPreProcess("Test2", It.IsAny<PreProcessTypesEnum>())).Returns("Test2"); var algorithm = new MatchingAlgorithm(_mockCoefficientAlgorithm.Object, CoefficientLimit, _mockSimilarityAlgorithm.Object, SimilarityLimit, _mockEditDistanceAlgorithm.Object, EditDistanceLimit, _mockPreProcessor.Object); // Act var result = algorithm.Match(searchValue, _aggregates); // Assert Assert.AreEqual(-1, result, "Expected the match to return -1, no match found"); }
public void MatchWithDiceCoefficientReturnsAggregateNumber2() { // Arrange var searchValue = "Test2"; // Set up the mock conditions: Dice returns 1 for "Test2 to show an exact match _mockCoefficientAlgorithm.Setup(r => r.Match(searchValue, "Test1")).Returns(0.0f); // No Match _mockCoefficientAlgorithm.Setup(r => r.Match(searchValue, "Test2")).Returns(1.0f); // Match _mockSimilarityAlgorithm.Setup(r => r.Match(It.IsAny<string>(), It.IsAny<string>())).Returns(0.0f); // No Match _mockEditDistanceAlgorithm.Setup(r => r.Match(It.IsAny<string>(), It.IsAny<string>())).Returns(10); // No Match _mockPreProcessor.Setup(p => p.ApplyPreProcess("Test1", It.IsAny<PreProcessTypesEnum>())).Returns("Test1"); _mockPreProcessor.Setup(p => p.ApplyPreProcess("Test2", It.IsAny<PreProcessTypesEnum>())).Returns("Test2"); var algorithm = new MatchingAlgorithm(_mockCoefficientAlgorithm.Object, CoefficientLimit, _mockSimilarityAlgorithm.Object, SimilarityLimit, _mockEditDistanceAlgorithm.Object, EditDistanceLimit, _mockPreProcessor.Object); // Act var result = algorithm.Match(searchValue, _aggregates); // Assert Assert.AreEqual(2, result, "Expected the match to return the first instance: Aggregate Id of 2"); }