GivenADotnetToolsCommandResolver.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the MIT license.
  3. using Microsoft.DotNet.CommandFactory;
  4. namespace Microsoft.DotNet.Tests
  5. {
  6. public class GivenADotnetToolsCommandResolver : SdkTest
  7. {
  8. private readonly DotnetToolsCommandResolver _dotnetToolsCommandResolver;
  9. public GivenADotnetToolsCommandResolver(ITestOutputHelper log) : base(log)
  10. {
  11. var dotnetToolPath = Path.Combine(TestContext.Current.ToolsetUnderTest.SdkFolderUnderTest, "DotnetTools");
  12. _dotnetToolsCommandResolver = new DotnetToolsCommandResolver(dotnetToolPath);
  13. }
  14. [Fact]
  15. public void ItReturnsNullWhenCommandNameIsNull()
  16. {
  17. var commandResolverArguments = new CommandResolverArguments()
  18. {
  19. CommandName = null,
  20. };
  21. var result = _dotnetToolsCommandResolver.Resolve(commandResolverArguments);
  22. result.Should().BeNull();
  23. }
  24. [Fact]
  25. public void ItReturnsNullWhenCommandNameDoesNotExistInProjectTools()
  26. {
  27. var commandResolverArguments = new CommandResolverArguments()
  28. {
  29. CommandName = "nonexistent-command",
  30. };
  31. var result = _dotnetToolsCommandResolver.Resolve(commandResolverArguments);
  32. result.Should().BeNull();
  33. }
  34. [Fact]
  35. public void ItReturnsACommandSpec()
  36. {
  37. var commandResolverArguments = new CommandResolverArguments()
  38. {
  39. CommandName = "dotnet-watch",
  40. };
  41. var result = _dotnetToolsCommandResolver.Resolve(commandResolverArguments);
  42. result.Should().NotBeNull();
  43. var commandPath = result.Args.Trim('"');
  44. commandPath.Should().Contain("dotnet-watch.dll");
  45. }
  46. }
  47. }