public static void GetBreakingChange_FirstMatchingRecommendation() { var breakingChanges = new Dictionary <string, IEnumerable <BreakingChange> >(StringComparer.Ordinal) { { "Property:Foo", new[] { new BreakingChange { Id = "5" }, new BreakingChange { Id = "7" } } }, { "Class:FooTest", new[] { new BreakingChange { Id = "6" }, new BreakingChange { Id = "2" } } }, { "Namespace:MyTestNamespace", new[] { new BreakingChange { Id = "8" }, new BreakingChange { Id = "17" } } } }; var expected = breakingChanges.First(); var ancestors = breakingChanges.Keys.ToArray(); var catalog = Substitute.For <IApiCatalogLookup>(); var recommendations = BreakingChangeRecommendationsMock.Create(catalog, breakingChanges); catalog.GetAncestors(expected.Key).Returns(ancestors); var actual = recommendations.GetBreakingChanges(expected.Key); Assert.Equal(expected.Value, actual); }
public static void GetBreakingChange_Parent() { var docId = "Property:Foo"; var matchingParentDocId = "Class:Test"; var ancestors = new[] { matchingParentDocId, "Namespace:MyTestNamespace" }; var expected = new[] { new BreakingChange { Id = "5" }, new BreakingChange { Id = "7" } }; var breakingChanges = new Dictionary <string, IEnumerable <BreakingChange> >(StringComparer.Ordinal) { { docId, null }, { matchingParentDocId, expected } }; var catalog = Substitute.For <IApiCatalogLookup>(); var recommendations = BreakingChangeRecommendationsMock.Create(catalog, breakingChanges); catalog.GetAncestors(docId).Returns(ancestors); var actual = recommendations.GetBreakingChanges(docId); Assert.Equal(expected, actual); catalog.Received(1).GetAncestors(docId); }
public static void GetBreakingChange_NoAncestors() { var docId = "Namespace:MyTestNamespace"; var ancestors = new string[0]; var catalog = Substitute.For <IApiCatalogLookup>(); var recommendations = BreakingChangeRecommendationsMock.Create(catalog); catalog.GetAncestors(docId).Returns(ancestors); var actual = recommendations.GetBreakingChanges(docId); Assert.Empty(actual); catalog.Received(1).GetAncestors(docId); }
public static void GetBreakingChange_DoesNotExist() { var docId = "Property:Foo"; var ancestors = new[] { "Class:Test", "Namespace:MyTestNamespace" }; var catalog = Substitute.For <IApiCatalogLookup>(); var recommendations = BreakingChangeRecommendationsMock.Create(catalog); catalog.GetAncestors(docId).Returns(ancestors); var actual = recommendations.GetBreakingChanges(docId); Assert.Empty(actual); catalog.Received(1).GetAncestors(docId); }