public void SeverityLevelCanBeChangedForModule()
        {
            using (FileDiagnosticsTelemetryModule module = new FileDiagnosticsTelemetryModule())
            {
                module.LogFilePath = Directory.GetCurrentDirectory();
                module.LogFileName = Guid.NewGuid() + ".txt";

                using (TestEventSource eventSource = new TestEventSource())
                {
                    eventSource.TraceVerbose("MyVerbose1");
                    module.Severity = EventLevel.Verbose.ToString();

                    eventSource.TraceVerbose("MyVerbose2");

                    Assert.AreEqual(EventLevel.Verbose.ToString(), module.Severity);

                    string fileName = Path.Combine(module.LogFilePath, module.LogFileName);
                    Assert.IsTrue(File.Exists(fileName));
                    using (StreamReader sr = new StreamReader(fileName))
                    {
                        var content = sr.ReadToEnd();
                        Assert.IsTrue(content.Contains("MyVerbose2"), "Actual content: " + content);
                    }
                }
            }
        }
        public void FilePathCanBeChangedForModule()
        {
            using (FileDiagnosticsTelemetryModule module = new FileDiagnosticsTelemetryModule())
            {
                module.LogFilePath = Directory.GetCurrentDirectory();

                using (TestEventSource eventSource = new TestEventSource())
                {
                    eventSource.TraceError("MyError");

                    string fileName = Path.Combine(module.LogFilePath, module.LogFileName);
                    Assert.IsTrue(File.Exists(fileName));
                    using (StreamReader sr = new StreamReader(fileName))
                    {
                        var content = sr.ReadToEnd();
                        Assert.IsTrue(content.Contains("MyError"), "Actual content: " + content);
                    }
                }
            }
        }
        public void ModuleTracesToANonExistentFolder()
        {
            string expectedPathValue = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName());

            if (Directory.Exists(expectedPathValue))
            {
                Directory.Delete(expectedPathValue, true);
            }

            using (FileDiagnosticsTelemetryModule module = new FileDiagnosticsTelemetryModule())
            {
                module.LogFilePath = expectedPathValue;
                using (TestEventSource eventSource = new TestEventSource())
                {
                    Assert.IsTrue(Directory.Exists(expectedPathValue));
                }
            }

            Directory.Delete(expectedPathValue, true);
        }
        public void ModuleTracesToTempFolder()
        {
            using (FileDiagnosticsTelemetryModule module = new FileDiagnosticsTelemetryModule())
            {
                module.Initialize(null);
                using (TestEventSource eventSource = new TestEventSource())
                {
                    eventSource.TraceError("MyError");
                    Assert.IsTrue(module.LogFileName.Contains("ApplicationInsightsLog"), "Actual file name: " + module.LogFileName.Contains("ApplicationInsightsLog"));

                    string fileName = Path.Combine(module.LogFilePath, module.LogFileName);
                    Assert.IsTrue(File.Exists(fileName));
                    using (StreamReader sr = new StreamReader(fileName))
                    {
                        var content = sr.ReadToEnd();
                        Assert.IsTrue(content.Contains("MyError"), "Actual content: " + content);
                    }
                }
            }
        }
        private void SetInvalidFolder(string directoryName)
        {
            using (FileDiagnosticsTelemetryModule module = new FileDiagnosticsTelemetryModule())
            {
                module.LogFilePath = directoryName;

                using (TestEventSource eventSource = new TestEventSource())
                {
                    eventSource.TraceError("MyError");
                    Assert.AreNotEqual(directoryName, module.LogFilePath);

                    string fileName = Path.Combine(module.LogFilePath, module.LogFileName);
                    Assert.IsTrue(File.Exists(fileName));
                    using (StreamReader sr = new StreamReader(fileName))
                    {
                        var content = sr.ReadToEnd();
                        Assert.IsTrue(content.Contains("MyError"), "Actual content: " + content);
                    }
                }
            }
        }