コード例 #1
0
ファイル: RunnerTests.cs プロジェクト: floradu88/kelpie
        public void import_should_persist_data_to_the_repository()
        {
            // Arrange
            string[] args = { "--import" };

            var server1 = CreateFakeServer("JabberWocky1");

            var environment = new Environment();
            environment.Name = "PRODUCTION";
            environment.Servers.Add(server1);

            var config = new ConfigurationMock();
            config.Environments.Add(environment);

            var repository = new RepositoryMock();
            var runner = new Runner(config, repository);

            // Act
             runner.Run(args);

            // Assert
            string output = _consoleWriter.ToString();
            Assert.That(output, Is.StringContaining("Finished."));
            Assert.That(repository.LogEntries.Count, Is.EqualTo(FULL_LOG_ROW_COUNT));
        }
コード例 #2
0
ファイル: RunnerTests.cs プロジェクト: floradu88/kelpie
        public void environment_arg_should_scan_a_single_environment()
        {
            // Arrange
            string[] args = { "--environment=DEV", "--import" };

            var server1 = CreateFakeServer("JabberWocky1");
            var server2 = CreateFakeServer("JabberWocky2");

            var environmentProd = new Environment();
            environmentProd.Name = "PRODUCTION";
            environmentProd.Servers.Add(server1);

            var environmentDev = new Environment();
            environmentDev.Name = "DEV";
            environmentDev.Servers.Add(server1);
            environmentDev.Servers.Add(server2);

            var config = new ConfigurationMock();
            config.Environments.Add(environmentProd);
            config.Environments.Add(environmentDev);

            var repository = new RepositoryMock();
            var runner = new Runner(config, repository);

            // Act
            runner.Run(args);

            // Assert
            string output = _consoleWriter.ToString();
            Assert.That(output, Is.StringContaining("Finished."));
            Assert.That(repository.LogEntries.Count, Is.EqualTo(FULL_LOG_ROW_COUNT * 2));
        }
コード例 #3
0
        public void read_should_return_empty_list_when_file_is_empty()
        {
            // Arrange
            var container = CreateContainer("ExampleLogs/empty.log");
            var repository = new RepositoryMock();
            var logFileParser = new DefaultNLogFormatParser(repository, false);

            // Act
            logFileParser.ParseAndSave(container);
            IEnumerable<LogEntry> list = repository.LogEntries;

            // Assert
            Assert.That(list, Is.Not.Null);
            Assert.That(list.Count(), Is.EqualTo(0));
        }
コード例 #4
0
        public void read_should_parse_last_exception_type_and_message_from_entry_stack()
        {
            // Arrange
            var container = CreateContainer("ExampleLogs/full.log");
            var repository = new RepositoryMock();
            var logFileParser = new DefaultNLogFormatParser(repository, false);

            // Act
            logFileParser.ParseAndSave(container);
            List<LogEntry> list = repository.LogEntries;

            // Assert
            var entry = list[1];
            Assert.That(entry.DateTime, Is.GreaterThan(DateTime.MinValue));
            Assert.That(entry.ExceptionType, Is.EqualTo("System.NeedSleepException"));
            Assert.That(entry.ExceptionMessage, Is.EqualTo("I can't get no sleep sleep sleep."));
        }
コード例 #5
0
        public void read_should_parse_all_entries()
        {
            // Arrange
            var container = CreateContainer("ExampleLogs/full.log");
            var repository = new RepositoryMock();
            DateTime expectedDate = DateTime.Parse("2015-09-24 10:25:13.7780");
            var logFileParser = new DefaultNLogFormatParser(repository, false);

            // Act
            logFileParser.ParseAndSave(container);
            IEnumerable<LogEntry> list = repository.LogEntries;

            // Assert
            Assert.That(list, Is.Not.Null);
            Assert.That(list.Count(), Is.EqualTo(648));

            var entry = list.FirstOrDefault();
            Assert.That(entry.DateTime, Is.EqualTo(expectedDate));
            Assert.That(entry.ApplicationName, Is.EqualTo(APP_NAME));
            Assert.That(entry.Server, Is.EqualTo(container.Server.Name));
            Assert.That(entry.Environment, Is.EqualTo(container.Environment.Name));
            Assert.That(entry.Source, Is.EqualTo("AmazingApp"));
            Assert.That(entry.Message, Is.EqualTo("A non critical error occured on Page:http://www.example.com/Places/To/Buy/Caravans/WestLondon.html\r\n"));
        }
コード例 #6
0
ファイル: RunnerTests.cs プロジェクト: floradu88/kelpie
        public void no_arguments_should_display_help(string args)
        {
            // Arrange
            var repository = new RepositoryMock();
            var config = new ConfigurationMock();
            var runner = new Runner(config, repository);

            // Act
            runner.Run(new string[] {args});

            // Assert
            string output = _consoleWriter.ToString();
            Assert.That(output, Is.StringContaining("Kelpie import tool"));
            Assert.That(output, Is.StringContaining("--help"));
        }
コード例 #7
0
ファイル: RunnerTests.cs プロジェクト: floradu88/kelpie
        public void wipedata_arg_should_clear_the_repository()
        {
            // Arrange
            string[] args = { "--wipedata" };

            var repository = new RepositoryMock();
            repository.LogEntries.Add(new LogEntry());
            repository.LogEntries.Add(new LogEntry());

            var config = new ConfigurationMock();
            var runner = new Runner(config, repository);

            // Act
            runner.Run(args);

            // Assert
            string output = _consoleWriter.ToString();
            Assert.That(output, Is.StringContaining("Finished."));
            Assert.That(repository.LogEntries.Count, Is.EqualTo(0));
        }