using Castle.Core.Logging; using Microsoft.Extensions.Logging; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using System; using System.Threading.Tasks; using Tgstation.Server.Host.IO; namespace Tgstation.Server.Host.System.Tests { /// /// Tests for . /// [TestClass] public sealed class TestProcessFeatures { IProcessFeatures features; [TestInitialize] public void Init() { features = new PlatformIdentifier().IsWindows ? (IProcessFeatures)new WindowsProcessFeatures(Mock.Of>()) : new PosixProcessFeatures(new Lazy(() => null), new DefaultIOManager(), Mock.Of>()); } [TestMethod] public async Task TestGetUsername() { if (!new PlatformIdentifier().IsWindows) Assert.Inconclusive("This test is buggy on linux and not required"); var username = await features.GetExecutingUsername(global::System.Diagnostics.Process.GetCurrentProcess(), default); Assert.IsTrue(username.Contains(Environment.UserName), $"Exepcted a string containing \"{Environment.UserName}\", got \"{username}\""); } } }