Exemplo n.º 1
0
        public void TestEnvironmentBasedPrintLineDebuggerShouldWork()
        {
            var writer = new MockWriter();

            // loggers should not log anything if there's no static writer set
            // this is useful to enable logging just for the duration of one test
            PrintLineDebugger.Default.Value.Log("outOfContext1");

            // This pattern is useful when debugging individual tests under CI.
            // The TestEnvironment the writer, so the logs will only be collected during the test
            // Caveat: One cannot use writers instantiated in the test in out of proc nodes. Either turn multiproc off, or set the writer in each node, probably in OutOfProcNode.Run
            using (var env = TestEnvironment.Create())
            {
                env.CreatePrintLineDebugger(writer.Writer());

                PrintLineDebugger.Default.Value.Log("inner");
            }

            PrintLineDebugger.Default.Value.Log("outOfContext2");

            writer.Logs.ShouldNotBeEmpty();
            writer.Logs[0].ShouldEndWith("inner");
            writer.Logs.Count.ShouldBe(1);

            AssertContextInfo(writer.Logs);
        }
Exemplo n.º 2
0
        public void CompositeWriterCanWriteToMultipleWriters()
        {
            var writer1 = new MockWriter();
            var writer2 = new MockWriter();

            var compositeWriter = new PrintLineDebuggerWriters.CompositeWriter(
                new []
            {
                writer1.Writer(),
                writer2.Writer()
            });

            using (var logger = PrintLineDebugger.Create(compositeWriter.Writer))
            {
                logger.Log("Hello World");
            }

            writer1.Logs.ShouldNotBeEmpty();
            writer1.Logs.First().ShouldEndWith("Hello World");
            writer1.Logs.ShouldHaveSingleItem();

            AssertContextInfo(writer1.Logs);

            writer1.Logs.ShouldBe(writer2.Logs, Case.Sensitive);
        }
Exemplo n.º 3
0
        public void DefaultDebuggerCanUseStaticallyControlledWriters()
        {
            var writer = new MockWriter();

            try
            {
                PrintLineDebugger.Default.Value.Log("outOfContext1");

                // This pattern is useful when debugging msbuild under VS / CLI, not individual tests under CI
                // The writer would be set at the start of each central and out of proc node, and the ID could be used to pick which file to dump the logs in (per process, per class emitting the log, etc)
                PrintLineDebugger.SetWriter(writer.Writer());

                PrintLineDebugger.Default.Value.Log("inner");
            }
            finally
            {
                PrintLineDebugger.UnsetWriter();
            }

            PrintLineDebugger.Default.Value.Log("outOfContext2");

            writer.Logs.ShouldNotBeEmpty();
            writer.Logs[0].ShouldEndWith("inner");
            writer.Logs.Count.ShouldBe(1);

            AssertContextInfo(writer.Logs);
        }
Exemplo n.º 4
0
        // This is one way to use the debugger without a TestEnvironment
        public void DefaultDebuggerShouldUseOuterDebuggerWriter()
        {
            var writer = new MockWriter();

            PrintLineDebugger.Default.Value.Log("outOfContext1");

            using (var logger = PrintLineDebugger.Create(writer.Writer()))
            {
                logger.Log("outer1");

                // this is what you'd litter throughout the codebase to gather random logs
                PrintLineDebugger.Default.Value.Log("inner");
                logger.Log("outer2");
            }

            PrintLineDebugger.Default.Value.Log("outOfContext2");

            writer.Logs.ShouldNotBeEmpty();
            writer.Logs[0].ShouldEndWith("outer1");
            writer.Logs[1].ShouldEndWith("inner");
            writer.Logs[2].ShouldEndWith("outer2");
            writer.Logs.Count.ShouldBe(3);

            AssertContextInfo(writer.Logs);
        }
Exemplo n.º 5
0
        public static MockWriter MockWriter()
        {
            var context = new RenderContext();
            var writer  = new MockWriter(context);

            writer.StartRender(null);
            return(writer);
        }
Exemplo n.º 6
0
        public void ShouldPrintLinkedList()
        {
            var expectedOutputs = new List <int>()
            {
                1, 2, 3
            };
            IConsoleWriter writerMock = MockWriter.GetInstance(expectedOutputs);

            LinkedListDS linkedList = GetLinkedList(writerMock);

            linkedList.Result();
        }
        public void ShouldPrintAllNodeFromRootToLeaf()
        {
            var expectedOutputs = new List <String>()
            {
                "Tree path: 1,2,4", "Tree path: 1,2,5", "Tree path: 1,3,6"
            };
            IConsoleWriter writerMock            = MockWriter.GetInstanceForString(expectedOutputs);
            var            rootNode              = TreeTestData.GetSimpleTreeRootNode();
            PrintingTreeNodesFromRootToLeaf tree = new PrintingTreeNodesFromRootToLeaf(writerMock);

            tree.Print(rootNode, new List <int>());
        }
        public void ShouldPrintTreeInLevelOrderForComplexTree()
        {
            var expectedOutputs = new List <int>()
            {
                8, 7, 6, 5, 4, 3, 2, 1
            };
            IConsoleWriter writerMock = MockWriter.GetInstance(expectedOutputs);
            var            rootNode   = TreeTestData.GetComplexTreeRootNode();
            var            levelOrderTraversalInReverse = new LevelOrderTraversalInReverse(writerMock);

            levelOrderTraversalInReverse.Print(rootNode);
        }
Exemplo n.º 9
0
        public void ShouldPrintTreeNodesInZigZagTraversal()
        {
            var expectedOutputs = new List <int>()
            {
                1, 3, 2, 4, 5, 6
            };
            IConsoleWriter  writerMock      = MockWriter.GetInstance(expectedOutputs);
            TreeDSNode      rootNode        = TreeTestData.GetSimpleTreeRootNode();
            ZigZagTraversal zigzagTraversal = new ZigZagTraversal(rootNode, writerMock);

            zigzagTraversal.Travel();
        }
Exemplo n.º 10
0
        public void ShouldPrintTreeInLevelOrder()
        {
            var expectedOutputs = new List <int>()
            {
                1, 2, 3, 4, 5, 6
            };
            IConsoleWriter writerMock = MockWriter.GetInstance(expectedOutputs);
            TreeDSNode     rootNode   = TreeTestData.GetSimpleTreeRootNode();
            TreeTraversal  tree       = new TreeTraversal(rootNode, writerMock);

            tree.LevelOrderTraversal();
        }
Exemplo n.º 11
0
        public void ShouldAddNodeAfterGivenValue()
        {
            var expectedOutputs = new List <int>()
            {
                1, 2, 4, 3
            };
            IConsoleWriter writerMock = MockWriter.GetInstance(expectedOutputs);

            LinkedListDS linkedList = GetLinkedList(writerMock);

            linkedList.AddNodeAfter(2, 4);

            linkedList.Result();
        }
Exemplo n.º 12
0
        public void DebuggerCanPrependAnId()
        {
            var writer = new MockWriter();

            using (var logger = PrintLineDebugger.Create(writer.Writer(), "foo"))
            {
                logger.Log("Hello World");
            }

            writer.Logs.ShouldNotBeEmpty();
            writer.Logs.First().ShouldEndWith("Hello World");
            writer.Logs.ShouldHaveSingleItem();

            AssertContextInfo(writer.Logs, "foo");
        }
 public void SetUp()
 {
     _writer      = new MockWriter();
     _transformer = new BitmapTransformer();
     _renderer    = new BinaryBobRenderer(_writer, _transformer);
 }
Exemplo n.º 14
0
 public void SetUp()
 {
     _transformerMock = new Mock <IBitmapTransformer>();
     _writer          = new MockWriter();
     _renderer        = new BinaryTileRenderer(_transformerMock.Object, _writer);
 }