public void TestWriteOverlappingCycles()
        {
            const string cycleMarkerPrefix = "X";

            var          gc    = new GlobalContext();
            WorkingGraph graph = gc.CurrentGraph;

            var a = graph.CreateItem(ItemType.SIMPLE, "a");
            var b = graph.CreateItem(ItemType.SIMPLE, "b");
            var c = graph.CreateItem(ItemType.SIMPLE, "c");
            var d = graph.CreateItem(ItemType.SIMPLE, "d");
            var e = graph.CreateItem(ItemType.SIMPLE, "e");

            List <Dependency> dependencies = CreateDependenciesAndFindCycles(gc, a, b, c, d, e, keepOnlyCyclesOption: false, markerPrefix: cycleMarkerPrefix);

            using (var s = new MemoryStream()) {
                var w = new FlatPathWriter();
                w.RenderToStreamForUnitTests(gc, dependencies, s, cycleMarkerPrefix + "* -sm");
                string result = Encoding.ASCII.GetString(s.ToArray());
                Assert.AreEqual(@"-- X0
SIMPLE:a'X0
SIMPLE:c'X1
SIMPLE:d
SIMPLE:e
<= SIMPLE:a'X0 $

-- X1
SIMPLE:c'X1
SIMPLE:d
<= SIMPLE:c'X1 $", result.Trim());
            }
        }
        public void TestSimpleFlatPathWriterForOnePath()
        {
            var gc = new GlobalContext {
                IgnoreCase = true
            };
            WorkingGraph graph = gc.CurrentGraph;

            ItemType t3 = ItemType.New("T3(ShortName:MiddleName:LongName)");
            var      RegexPathMarker = "P0";

            Item a = graph.CreateItem(t3, "a:aa:aaa".Split(':'));

            a.MarkPathElement(RegexPathMarker, 0, isStart: false, isEnd: false, isMatchedByCountSymbol: false,
                              isLoopBack: false);
            Item b = graph.CreateItem(t3, "b:bb:bbb".Split(':'));

            b.SetMarker(RegexPathMarker, 1);

            var d = CreateDependency(graph, a, b, RegexPathMarker, true, true, false, false);

            Dependency[] dependencies = { d };

            using (var s = new MemoryStream()) {
                var w = new FlatPathWriter();
                w.RenderToStreamForUnitTests(gc, dependencies, s, "P*");
                string result = Encoding.ASCII.GetString(s.ToArray());
                Assert.AreEqual(@"-- P0
a:aa:aaa
b:bb:bbb $", result.Trim());
            }
        }
Exemple #3
0
        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;
        }
        public void TestWriteLaterCycle()
        {
            const string      cycleMarkerPrefix = "C";
            List <Dependency> dependencies      = FindLaterCycle(cycleMarkerPrefix);
            var gc = new GlobalContext();

            using (var s = new MemoryStream()) {
                var w = new FlatPathWriter();
                w.RenderToStreamForUnitTests(gc, dependencies, s, cycleMarkerPrefix + "* -sm");
                string result = Encoding.ASCII.GetString(s.ToArray());
                Assert.AreEqual(@"-- C0
SIMPLE:c'C0
SIMPLE:d
SIMPLE:e
<= SIMPLE:c'C0 $", result.Trim());
            }
        }