File tree Expand file tree Collapse file tree
tests/NuGetGallery.Facts/Extensions Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,13 +15,19 @@ public static bool IsCakeExtension(this DisplayPackageViewModel model)
1515
1616 public static string GetCakeInstallPackageCommand ( this DisplayPackageViewModel model )
1717 {
18- var reference = $ "nuget:?package={ model . Id } &version={ model . Version } ";
18+ var scheme = model . IsDotnetToolPackageType ? "dotnet" : "nuget" ;
19+ var reference = $ "{ scheme } :?package={ model . Id } &version={ model . Version } ";
1920
2021 if ( model . Prerelease )
2122 {
2223 reference += "&prerelease" ;
2324 }
2425
26+ if ( model . IsDotnetToolPackageType )
27+ {
28+ return $ "#tool { reference } ";
29+ }
30+
2531 if ( IsCakeAddin ( model ) )
2632 {
2733 return $ "#addin { reference } ";
Original file line number Diff line number Diff line change 3636 AlertLevel = AlertLevel .Info ,
3737 AlertMessage = " This package contains a <a href='https://aka.ms/global-tools'>.NET Core Global Tool</a> you can call from the shell/command line." ,
3838 },
39+
40+ new ThirdPartyPackageManagerViewModel (" Cake" , " https://cakebuild.net/support/nuget" )
41+ {
42+ Id = " cake-dotnet-tool" ,
43+ InstallPackageCommand = Model .GetCakeInstallPackageCommand (),
44+ },
3945 };
4046 }
4147 else if (Model .IsDotnetNewTemplatePackageType )
Original file line number Diff line number Diff line change @@ -48,6 +48,40 @@ public void ReturnsFalse(string[] tags)
4848
4949 public class TheMethodGetCakeInstallPackageCommand
5050 {
51+ public class GivenADotnetToolPackage
52+ {
53+ [ Fact ]
54+ public void ReturnsADotNetToolDirective ( )
55+ {
56+ var model = new DisplayPackageViewModel
57+ {
58+ IsDotnetToolPackageType = true ,
59+ Id = "dotnet-reportgenerator-globaltool" ,
60+ Version = "1.0.0" ,
61+ } ;
62+
63+ var actual = model . GetCakeInstallPackageCommand ( ) ;
64+
65+ Assert . Equal ( "#tool dotnet:?package=dotnet-reportgenerator-globaltool&version=1.0.0" , actual ) ;
66+ }
67+
68+ [ Fact ]
69+ public void ReturnsADotNetToolDirectiveWithPrerelease ( )
70+ {
71+ var model = new DisplayPackageViewModel
72+ {
73+ IsDotnetToolPackageType = true ,
74+ Id = "dotnet-reportgenerator-globaltool" ,
75+ Version = "1.0.0-preview" ,
76+ Prerelease = true ,
77+ } ;
78+
79+ var actual = model . GetCakeInstallPackageCommand ( ) ;
80+
81+ Assert . Equal ( "#tool dotnet:?package=dotnet-reportgenerator-globaltool&version=1.0.0-preview&prerelease" , actual ) ;
82+ }
83+ }
84+
5185 public class GivenAPackageWithTheCakeAddinTag
5286 {
5387 [ Fact ]
You can’t perform that action at this time.
0 commit comments