Example #1
0
        public void Dispose_WithTextWriter_DoesNotDisposeTextWriter()
        {
            var textWriter = new TestTextWriter();
            using (var writer = new SqlWriter(textWriter))
            {
            }

            Assert.False(textWriter.IsDisposed);
        }
Example #2
0
 public CompilerTestLogger(ITestOutputHelper testOutput)
 {
     Stream    = new TestTextWriter(testOutput);
     m_console = new Logger.Console
     {
         Stream    = Stream,
         UseColors = false
     };
 }
Example #3
0
        public void Dispose_WithTextWriter_DoesNotDisposeTextWriter()
        {
            var textWriter = new TestTextWriter();

            using (var writer = new SqlWriter(textWriter))
            {
            }

            Assert.False(textWriter.IsDisposed);
        }
Example #4
0
        public void When_ValidVersionCommand_Then_ShowVersion()
        {
            // Set up repl with mock console
            var writer  = new TestTextWriter();
            var console = new TestConsole(writer, new TestTextReader());
            var repl    = new Ui.Repl.Repl(console, new RootCommand(new TestApplicationLifecycle(), console));

            //Compute version input
            repl.ComputeInput("version");

            // Assert if correct version is printed
            var content = writer.Content;

            Assert.Contains(Constants.McsmVersion, content);
        }
Example #5
0
        public void When_ValidHelpCommand_Then_ShowHelp()
        {
            // Set up repl with mock console
            var writer  = new TestTextWriter();
            var console = new TestConsole(writer, new TestTextReader());
            var repl    = new Ui.Repl.Repl(console, new RootCommand(new TestApplicationLifecycle(), console));

            // Compute help input
            repl.ComputeInput("help");

            // Assert that "Usage:", "help", "Shows information about all commands" is included in res
            var content = writer.Content;

            Assert.Contains("Usage:", content);
            Assert.Contains("h, help", content);
            Assert.Contains("Shows information about all commands", content);
        }
Example #6
0
        public void When_ValidExitCommand_Then_Exit()
        {
            //Set up mock console
            var writer  = new TestTextWriter();
            var console = new TestConsole(writer, new TestTextReader());

            //Set up mock application life cycle
            var stopped       = false;
            var testLifecycle = new TestApplicationLifecycle(stopDel: () => { stopped = true; });

            //Set up repl
            var repl = new Ui.Repl.Repl(console, new RootCommand(testLifecycle, console));

            //Compute exit input
            repl.ComputeInput("exit");

            //Assert if stop method was called
            Assert.True(stopped);
        }
Example #7
0
        public void ConfigTraceSourceTest()
        {
            TraceSource _tracer = new TraceSource("CAS.CodeProtect.UnitTests.TraceSource");

            Assert.IsNotNull(_tracer);
            Assert.AreEqual(1, _tracer.Listeners.Count);
            Dictionary <string, TraceListener> _listeners = _tracer.Listeners.Cast <TraceListener>().ToDictionary <TraceListener, string>(x => x.Name);

            Assert.IsTrue(_listeners.ContainsKey("LogFile"));
            TraceListener _listener = _listeners["LogFile"];

            Assert.IsNotNull(_listener);
            Assert.IsInstanceOfType(_listener, typeof(AdvancedDelimitedListTraceListener));
            AdvancedDelimitedListTraceListener _advancedListener = _listener as AdvancedDelimitedListTraceListener;

            Assert.IsNotNull(_advancedListener.Filter);
            Assert.IsInstanceOfType(_advancedListener.Filter, typeof(EventTypeFilter));
            EventTypeFilter _eventTypeFilter = _advancedListener.Filter as EventTypeFilter;

            Assert.AreEqual(SourceLevels.All, _eventTypeFilter.EventType);
            //Writer
            using (TestTextWriter _writer = new TestTextWriter())
            {
                _advancedListener.Writer = _writer;
                _tracer.TraceEvent(TraceEventType.Error, 0, "Test message");
                Assert.IsTrue(_writer.WriteCount > 5);
                int _writeCount = _writer.WriteCount;
                _advancedListener.Flush();
                Assert.AreEqual <int>(_writeCount, _writer.WriteCount);
                _advancedListener.Close();
                Assert.AreEqual <int>(_writeCount, _writer.WriteCount);
            }

            //Test Switch
            Assert.IsNotNull(_tracer.Switch);
            Assert.AreEqual <string>("CAS.CodeProtect.UnitTests.TraceSource.Switch", _tracer.Switch.DisplayName);
            Assert.AreEqual <SourceLevels>(SourceLevels.All, _tracer.Switch.Level);

            //Trace
            Assert.IsFalse(Trace.Listeners.Cast <TraceListener>().Where <TraceListener>(x => x.Name == "LogFile").Any <TraceListener>());
        }
        public void HashUtilities_ShouldRespectQuietFlag()
        {
            int numberOfTestFiles = 10;

            List <string> filePaths = new List <string>(numberOfTestFiles);

            for (int i = 0; i < numberOfTestFiles; i++)
            {
                string filePath     = Path.GetTempFileName();
                string fileContents = Guid.NewGuid().ToString();

                File.WriteAllText(filePath, fileContents);

                filePaths.Add(filePath);
            }

            //  The easy path, simply calculate the hashes.
            //  We should write to the Console with the default TextWriter.
            try
            {
                IDictionary <string, HashData> hashes = HashUtilities.MultithreadedComputeTargetFileHashes(filePaths);
            }
            catch (Exception e)
            {
                //  If anything fails, delete the files and fail the test
                foreach (string filePath in filePaths)
                {
                    if (File.Exists(filePath))
                    {
                        File.Delete(filePath);
                    }
                }

                Assert.True(false, e.Message);
            }

            //  An custom textwriter.S
            //  Using it should throw an InvalidOperationException when writing a string
            TestTextWriter testTextWriter = new TestTextWriter();
            TextWriter     defaultOut     = Console.Out;

            Console.SetOut(testTextWriter);

            try
            {
                IDictionary <string, HashData> hashes = HashUtilities.MultithreadedComputeTargetFileHashes(filePaths);

                //  If we got here, things went wrong, so cleanup
                foreach (string filePath in filePaths)
                {
                    if (File.Exists(filePath))
                    {
                        File.Delete(filePath);
                    }
                }
                Console.SetOut(defaultOut);

                Assert.True(false, "Exception was expected but not thrown");
            }
            catch (InvalidOperationException)
            {
                //  Do nothing, this is the desired behavior.
            }

            //  Mimic the --quiet flag.  We should not use the console this time.
            try
            {
                IDictionary <string, HashData> hashes = HashUtilities.MultithreadedComputeTargetFileHashes(filePaths, true);
            }
            catch
            {
                Assert.True(false, "Unexpected exception.");
            }
            finally
            {
                foreach (string filePath in filePaths)
                {
                    if (File.Exists(filePath))
                    {
                        File.Delete(filePath);
                    }
                }

                Console.SetOut(defaultOut);
            }
        }