public void LoadConfigFile_NetCoreSingleFilePublish_IgnoreTmpDirectory()
        {
            // Arrange
            var tmpDir     = "/var/tmp/";
            var appEnvMock = new AppEnvironmentMock(f => true, f => null)
            {
                AppDomainBaseDirectory = Path.Combine(tmpDir, "BaseDir"),
#if NETSTANDARD
                AppDomainConfigurationFile = string.Empty,                  // NetCore style
#else
                AppDomainConfigurationFile = Path.Combine(tmpDir, "ProcessDir", "Entry.exe.config"),
#endif
                CurrentProcessFilePath = Path.Combine(tmpDir, "ProcessDir", "Entry.exe"),    // NetCore published exe
                EntryAssemblyLocation  = Path.Combine(tmpDir, "TempProcessDir"),
                UserTempFilePath       = "/tmp/",
                EntryAssemblyFileName  = "Entry.dll"
            };

            var fileLoader = new LoggingConfigurationFileLoader(appEnvMock);

            // Act
            var result = fileLoader.GetDefaultCandidateConfigFilePaths().ToList();

            // Assert base-directory + process-directory + nlog-assembly-directory
            AssertResult(tmpDir, "TempProcessDir", "ProcessDir", "Entry", result);
        }
Example #2
0
        public void LoadConfigFile_NetCoreUnpublished_UseEntryDirectory()
        {
            // Arrange
            var d          = Path.DirectorySeparatorChar;
            var tmpDir     = Path.GetTempPath();
            var appEnvMock = new AppEnvironmentMock(f => true, f => null)
            {
                AppDomainBaseDirectory = Path.Combine(tmpDir, "BaseDir"),
#if NETSTANDARD
                AppDomainConfigurationFile = string.Empty,                  // NetCore style
#else
                AppDomainConfigurationFile = Path.Combine(tmpDir, "EntryDir", "Entry.exe.config"),
#endif
                CurrentProcessFilePath = Path.Combine(tmpDir, "ProcessDir", "Process.exe"),// NetCore dotnet.exe
                EntryAssemblyLocation  = Path.Combine(tmpDir, "EntryDir"),
                EntryAssemblyFileName  = "Entry.dll"
            };

            var fileLoader = new LoggingConfigurationFileLoader(appEnvMock);

            // Act
            var result = fileLoader.GetDefaultCandidateConfigFilePaths().ToList();

            // Assert base-directory + entry-directory + nlog-assembly-directory
            AssertResult(tmpDir, "EntryDir", "Entry", result);
        }
        public void LoadConfigFile_EmptyEnvironment_UseCurrentDirectory()
        {
            // Arrange
            var appEnvMock = new AppEnvironmentMock(f => true, f => null);
            var fileLoader = new LoggingConfigurationFileLoader(appEnvMock);

            // Act
            var result = fileLoader.GetDefaultCandidateConfigFilePaths().ToList();

            // Assert loading from current-directory and from nlog-assembly-directory
            if (NLog.Internal.PlatformDetector.IsWin32)
            {
                Assert.Equal(2, result.Count);  // Case insensitive
            }
            Assert.Equal("NLog.config", result.First(), StringComparer.OrdinalIgnoreCase);
            Assert.Contains("NLog.dll.nlog", result.Last(), StringComparison.OrdinalIgnoreCase);
        }