public void TestLimitedFlatPathWriter() { var gc = new GlobalContext(); IEnumerable<Dependency> dependencies = new OLDPathMarker().CreateSomeTestDependencies(gc.CurrentGraph); string result = FindPathsAndWriteFlat(gc, dependencies, "A", CreateDefaultOptions("A", 4)); Assert.AreEqual(@"-- A0 T3:a:aa:aaa'A0+A1+A2+A3 T3:b:bb:bbb'A $ T3:c:cc:ccc'A T3:d:dd:ddd'A $ T3:e:ee:eee'A $ -- A1 T3:a:aa:aaa'A0+A1+A2+A3 T3:b:bb:bbb'A $ T3:c:cc:ccc'A T3:d:dd:ddd'A $ <= T3:b:bb:bbb'A $ -- A2 T3:a:aa:aaa'A0+A1+A2+A3 T3:b:bb:bbb'A $ T3:g:gg:ggg'A $ -- A3 T3:a:aa:aaa'A0+A1+A2+A3 T3:h:hh:hhh'A $ T3:g:gg:ggg'A $", result.Trim()); }
private static string FindPathsAndWriteFlat(GlobalContext gc, IEnumerable<Dependency> dependencies, string markerPrefix, string transformOptions) { var pm = new OLDPathMarker(); pm.Configure(gc, "", false); var transformedDependencies = new List<Dependency>(); pm.Transform(gc, dependencies, transformOptions, transformedDependencies, s => null); string result; using (var s = new MemoryStream()) { var w = new FlatPathWriter(); w.RenderToStreamForUnitTests(gc, transformedDependencies, s, $"{markerPrefix}* -sm"); result = Encoding.ASCII.GetString(s.ToArray()); } return result; }