protected void BreakingMethodOverloadChangeDetected(ApiBreakType expectedBreakType, string namespaceQualifiedMethodName) { bool containsChange = _breakingChanges.Any( change => change.BreakType == expectedBreakType && change.Change is MethodGroupChange ? ((MethodGroupChange)change.Change).MethodChanges.Any(x => x.Method.FullName == namespaceQualifiedMethodName) : false); Assert.True(containsChange, string.Format("Did not find expected breaking method overload change type '{0}' for method '{1}'", expectedBreakType, namespaceQualifiedMethodName)); }
protected void BreakingMethodChangeDetected(ApiBreakType expectedBreakType, string namespaceQualifiedMethodName) { var containsChange = _breakingChanges .Where(x => x.BreakType == expectedBreakType && x.Change is MethodGroupChange) .Select(x => ((MethodGroupChange)x.Change)) .Where(x => x.ChangeType == ChangeType.Added) // Only interested in new methods, not overloads .SelectMany(x => x.MethodChanges) .Any(x => x.Method.FullName == namespaceQualifiedMethodName); Assert.True(containsChange, string.Format("Did not find expected breaking method change type '{0}' for method '{1}'", expectedBreakType, namespaceQualifiedMethodName)); }
protected void Add <TBreakingChangeItem>( ApiBreakType breakType, Func <TChange, TChangeContext, IEnumerable <TBreakingChangeItem> > breakingItemsSelector, Func <TBreakingChangeItem, TChangeContext, string> descriptionGenerator) { _funcs.Add((change, ctx) => { var breakingChanges = breakingItemsSelector(change, ctx) .Select(item => new BreakingChange(breakType, descriptionGenerator(item, ctx), change)); return(breakingChanges); }); }
protected void Add <TBreakingChangeItem>( ApiBreakType breakType, Func <TChange, TChangeContext, TBreakingChangeItem> breakingItemsSelector, Func <TBreakingChangeItem, TChangeContext, string> descriptionGenerator) { _funcs.Add((change, ctx) => { TBreakingChangeItem breakingChangeItem = breakingItemsSelector(change, ctx); return(ReferenceEquals(breakingChangeItem, null) ? new BreakingChange[0] : new[] { new BreakingChange(breakType, descriptionGenerator(breakingChangeItem, ctx), change) }); }); }
public BreakingChange(ApiBreakType breakType, string description, object change) { _breakType = breakType; _description = description; _change = change; }
protected void SingleBreakingChangeReasonIs(ApiBreakType breakType) { Assert.AreEqual(1, _breakingChanges.Length, string.Format("Expected breaking change type of {0}, got [{1}]", breakType, string.Join(",", _breakingChanges.Select(x => x.BreakType)))); Assert.AreEqual(breakType, _breakingChanges[0].BreakType); }