public static void GetRecommendedChange_FirstMatchingRecommendation() { var recommendedChanges = new[] { new { DocId = "Property:Foo", Change = "This is the first recommendation!" }, new { DocId = "Class:FooTest", Change = "This is the second recommendation!" }, new { DocId = "Namespace:MyTestNamespace", Change = "This is the 3rd recommendation!" } }; var expected = recommendedChanges[0]; var ancestors = recommendedChanges.Select(r => r.DocId).ToArray(); var catalog = Substitute.For <IApiCatalogLookup>(); var recommendations = AncestorApiRecommendations.Create(catalog); catalog.GetAncestors(expected.DocId).Returns(ancestors); foreach (var item in recommendedChanges) { catalog.GetRecommendedChange(item.DocId).Returns(item.Change); } var actual = recommendations.GetRecommendedChanges(expected.DocId); Assert.Equal(expected.Change, actual); }
public static void GetRecommendedChange_DoesNotExist() { var docId = "Property:Foo"; var ancestors = new[] { "Class:Test", "Namespace:MyTestNamespace" }; var catalog = Substitute.For <IApiCatalogLookup>(); var recommendations = AncestorApiRecommendations.Create(catalog); catalog.GetAncestors(docId).Returns(ancestors); var actual = recommendations.GetRecommendedChanges(docId); Assert.Equal(DefaultRecommendedAction, actual); catalog.Received(1).GetAncestors(docId); }
public static void GetRecommendedChange_NoAncestors() { var docId = "Namespace:MyTestNamespace"; var ancestors = new string[0]; var catalog = Substitute.For <IApiCatalogLookup>(); var recommendations = AncestorApiRecommendations.Create(catalog); catalog.GetAncestors(docId).Returns(ancestors); var actual = recommendations.GetRecommendedChanges(docId); Assert.Equal(DefaultRecommendedAction, actual); catalog.Received(1).GetAncestors(docId); }
public static void GetRecommendedChange_Parent() { var docId = "Property:Foo"; var matchingParentDocId = "Class:Test"; var ancestors = new[] { matchingParentDocId, "Namespace:MyTestNamespace" }; var expectedAction = "This is the recommended action for Class:Test"; var catalog = Substitute.For <IApiCatalogLookup>(); var recommendations = AncestorApiRecommendations.Create(catalog); catalog.GetAncestors(docId).Returns(ancestors); catalog.GetRecommendedChange(matchingParentDocId).Returns(expectedAction); var actual = recommendations.GetRecommendedChanges(docId); Assert.Equal(expectedAction, actual); catalog.Received(1).GetAncestors(docId); }