static void CheckParents(LoggerBuilderCollection builders, LoggerBuilder lb, Logger logger) { if (lb.ComputeParent(null).Length == 0) { return; } HashSet<string> ancestors = new HashSet<string>(); LoggerBuilder current = lb; StringBuilder forwards = new StringBuilder(current.Name); while (current != null) { if (!ancestors.Add(current.ComputeName())) { Traceables.DetectedCycleInLogParents(forwards.ToString()); logger.ForwardToParentBlocked = true; break; } string parent = current.ComputeParent(null); if (parent.Length == 0) break; // Detect missing parents current = builders[parent]; if (current == null) { Traceables.MissingParentLoggerReference(lb.Name); break; } forwards.Append(" -> " + parent); } }
public void clear_restores_default_root() { LoggerBuilderCollection unit = new LoggerBuilderCollection(); unit.Clear(); Assert.True(unit.Contains("root")); }
public void cannot_remove_root() { LoggerBuilderCollection unit = new LoggerBuilderCollection(); unit.Remove("root"); }