using Microsoft.Extensions.Logging; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using System; using System.IO.Abstractions.TestingHelpers; using System.Runtime.InteropServices; using Tgstation.Server.Host.IO; namespace Tgstation.Server.Host.System.Tests { /// /// Tests for . /// [TestClass] public sealed class TestProcessFeatures { static IProcessFeatures features; [ClassInitialize] public static void Init(TestContext _) { features = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? (IProcessFeatures)new WindowsProcessFeatures(Mock.Of>()) : new PosixProcessFeatures(new Lazy(() => null), new DefaultIOManager(new MockFileSystem()), Mock.Of>()); } [TestMethod] public void TestGetUsername() { if (!new PlatformIdentifier().IsWindows) Assert.Inconclusive("This test is buggy on linux and not required"); var username = features.GetExecutingUsername(global::System.Diagnostics.Process.GetCurrentProcess()); Assert.IsTrue(username.Contains(Environment.UserName), $"Exepcted a string containing \"{Environment.UserName}\", got \"{username}\""); } } }