// Copyright (c) .NET Foundation and contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; using Microsoft.DotNet.Cli.Utils; namespace Microsoft.DotNet.Tools.Tests.ComponentMocks { internal class EnvironmentPathInstructionMock : IEnvironmentPathInstruction { private readonly string _packageExecutablePath; private readonly bool _packageExecutablePathExists; private readonly IReporter _reporter; public const string MockInstructionText = "MOCK INSTRUCTION"; public EnvironmentPathInstructionMock( IReporter reporter, string packageExecutablePath, bool packageExecutablePathExists = false) { _packageExecutablePath = packageExecutablePath ?? throw new ArgumentNullException(nameof(packageExecutablePath)); _reporter = reporter ?? throw new ArgumentNullException(nameof(reporter)); _packageExecutablePathExists = packageExecutablePathExists; } public void PrintAddPathInstructionIfPathDoesNotExist() { if (!PackageExecutablePathExists()) { _reporter.WriteLine(MockInstructionText); } } private bool PackageExecutablePathExists() { return _packageExecutablePathExists; } } }