File: ShellShimTests\ZshDetectorTests.cs
Web Access
Project: ..\..\..\test\dotnet.Tests\dotnet.Tests.csproj (dotnet.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
#nullable disable
 
using Microsoft.DotNet.Cli.ShellShim;
using Microsoft.DotNet.Cli.Utils;
using Moq;
 
namespace Microsoft.DotNet.ShellShim.Tests
{
    public class ZshDetectorTests
    {
        [Theory]
        [InlineData("/bin/zsh")]
        [InlineData("/other-place/zsh")]
        public void GivenFollowingEnvironmentVariableValueItCanDetectZsh(string environmentVariableValue)
        {
            Mock<IEnvironmentProvider> provider = new(MockBehavior.Strict);
 
            provider
                .Setup(p => p.GetEnvironmentVariable("SHELL"))
                .Returns(environmentVariableValue);
 
            ZshDetector.IsZshTheUsersShell(provider.Object).Should().BeTrue();
        }
 
        [Theory]
        [InlineData("/bin/bash")]
        [InlineData("/other/value")]
        [InlineData(null)]
        public void GivenFollowingEnvironmentVariableValueItCanDetectItIsNotZsh(string environmentVariableValue)
        {
            Mock<IEnvironmentProvider> provider = new(MockBehavior.Strict);
 
            provider
                .Setup(p => p.GetEnvironmentVariable("SHELL"))
                .Returns(environmentVariableValue);
 
            ZshDetector.IsZshTheUsersShell(provider.Object).Should().BeFalse();
        }
    }
}