コード例 #1
0
        public void StructuredTextLoggerUsesHighestChildTypeToUpdateParentType()
        {
            //Arrange
            var analytics = new Mock<IAnalytics>();
            var logger = new StructuredTextLogger(@"x:\log.log", analytics.Object);
            var fileSystemInfo = GetTextLoggerMockFileSystem();
            const string message = "Message 1";
            const string error = "Error 1";
            FileSystemHelpers.Instance = fileSystemInfo.FileSystem;

            //Act
            var sublogger = logger.Log(message, LogEntryType.Message);
            sublogger.Log(error, LogEntryType.Error);
            var entries = logger.GetLogEntries();

            //Assert
            Assert.Equal(1, entries.Count());
            Assert.Equal(message, entries.First().Message);
            Assert.Equal(LogEntryType.Error, entries.First().Type);

            var subEntries = logger.GetLogEntryDetails(entries.First().Id);

            Assert.Equal(1, subEntries.Count());
            Assert.Equal(error, subEntries.First().Message);
            Assert.Equal(LogEntryType.Error, subEntries.First().Type);

            //Clean up
            fileSystemInfo.MemoryStream.RealDispose();
        }
コード例 #2
0
        public void StructuredTextLoggerLogFunction(string message, LogEntryType type)
        {
            //Arrange
            var fileSystem = new Mock<IFileSystem>();
            var fileBase = new Mock<FileBase>();
            var stream = new TestMemoryStream();
            var analytics = new Mock<IAnalytics>();
            var logger = new StructuredTextLogger(@"x:\log.log", analytics.Object);

            fileSystem.Setup(f => f.File).Returns(fileBase.Object);

            fileBase.Setup(f => f.Open(It.IsAny<string>(), It.IsAny<FileMode>(), It.IsAny<FileAccess>(), It.IsAny<FileShare>()))
                    .Returns(stream);
            fileBase.Setup(f => f.OpenRead(It.IsAny<string>()))
                    .Returns((string path) => 
                    {
                        stream.Position = 0;
                        return stream;
                    });
            fileBase.Setup(f => f.ReadAllText(It.IsAny<string>()))
                    .Returns((string path) =>
                    {
                        using (var reader = new StreamReader(fileBase.Object.OpenRead(path)))
                        {
                            return reader.ReadToEnd();
                        }
                    });
            fileBase.Setup(f => f.ReadAllLines(It.IsAny<string>()))
                    .Returns((string path) =>
                    {
                        return fileBase.Object.ReadAllText(path).Split(new[] { System.Environment.NewLine }, StringSplitOptions.None);
                    });

            FileSystemHelpers.Instance = fileSystem.Object;

            //Act
            logger.Log(message, type);
            var entries = logger.GetLogEntries();

            //Assert
            Assert.Equal(1, entries.Count());
            Assert.Equal(message, entries.First().Message);
            Assert.Equal(type, entries.First().Type);
            stream.RealDispose();
        }
コード例 #3
0
        public void StructuredTextLoggerLogFunction(string message, LogEntryType type)
        {
            //Arrange
            var analytics = new Mock<IAnalytics>();
            var logger = new StructuredTextLogger(@"x:\log.log", analytics.Object);
            var fileSystemInfo = GetTextLoggerMockFileSystem();
            FileSystemHelpers.Instance = fileSystemInfo.FileSystem;

            //Act
            logger.Log(message, type);
            var entries = logger.GetLogEntries();

            //Assert
            Assert.Equal(1, entries.Count());
            Assert.Equal(message, entries.First().Message);
            Assert.Equal(type, entries.First().Type);

            //Clean up
            fileSystemInfo.MemoryStream.RealDispose();
        }