diff --git a/.editorconfig b/.editorconfig
index 7dced9dd6..c98086357 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -3,4 +3,14 @@ root = true
[*.cs]
dotnet_diagnostic.IDE0056.severity = none
-dotnet_diagnostic.IDE0057.severity = none
\ No newline at end of file
+dotnet_diagnostic.IDE0057.severity = none
+
+# Verify settings
+[*.{received,verified}.{json,txt,xml,cs}]
+charset = utf-8-bom
+end_of_line = lf
+indent_size = unset
+indent_style = unset
+insert_final_newline = false
+tab_width = unset
+trim_trailing_whitespace = false
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
index 1ff0c4230..c89b273d1 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3,6 +3,16 @@
###############################################################################
* text=auto
+###############################################################################
+# Verify settings
+###############################################################################
+
+*.verified.txt text eol=lf working-tree-encoding=UTF-8
+*.verified.xml text eol=lf working-tree-encoding=UTF-8
+*.verified.json text eol=lf working-tree-encoding=UTF-8
+*.verified.cs text eol=lf working-tree-encoding=UTF-8
+*.verified.bin binary
+
###############################################################################
# Set default behavior for command prompt diff.
#
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index d4f9850e4..d33ce7477 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -43,6 +43,7 @@ jobs:
with:
files: |
out\TestResults-Pester*.xml
+ out\*.trx
- name: Publish Nuget
uses: actions/upload-artifact@v4
with:
diff --git a/.gitignore b/.gitignore
index 6f9636e84..bae0103ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -215,9 +215,15 @@ TfsCmdlets.PSDesktop.xml
CSharp/.idea/**
+# Verify files
+
+*.received.*
+*.received/
+
# Miscellaneous files
CSharp/*/Generated/**
Docs/AzDO-Security-Actions.csv
**/testResults.xml
PS/_Tests/coverage.xml
+CSharp/**/Old/**
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 2a5a0b527..abe39c65d 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -41,5 +41,6 @@
"titleBar.inactiveForeground": "#e7e7e799"
},
"peacock.color": "Indigo",
- "dotnet.preferCSharpExtension": false
+ "dotnet.preferCSharpExtension": false,
+ "dotnet.defaultSolution": "CSharp/TfsCmdlets.sln"
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.Legacy/TfsCmdlets.Legacy.csproj b/CSharp/TfsCmdlets.Legacy/TfsCmdlets.Legacy.csproj
index c71abdd35..c73e1b59f 100644
--- a/CSharp/TfsCmdlets.Legacy/TfsCmdlets.Legacy.csproj
+++ b/CSharp/TfsCmdlets.Legacy/TfsCmdlets.Legacy.csproj
@@ -24,7 +24,7 @@
-
+
diff --git a/CSharp/TfsCmdlets.Shared/CmdletControllerAttribute.cs b/CSharp/TfsCmdlets.Shared/CmdletControllerAttribute.cs
new file mode 100644
index 000000000..8dcea2a99
--- /dev/null
+++ b/CSharp/TfsCmdlets.Shared/CmdletControllerAttribute.cs
@@ -0,0 +1,28 @@
+namespace TfsCmdlets {
+
+ [AttributeUsage(System.AttributeTargets.Class, Inherited = true, AllowMultiple = false)]
+ public sealed class CmdletControllerAttribute : ExportAttribute
+ {
+ public Type DataType { get; }
+
+ public string CustomCmdletName { get; set; }
+
+ public string[] CustomVerbs { get; set; }
+
+ public string[] CustomNouns { get; set; }
+
+ public Type CustomBaseClass { get; set; }
+
+ public Type Client { get; set; }
+
+
+ public CmdletControllerAttribute() : base(typeof(IController))
+ {
+ }
+
+ public CmdletControllerAttribute(Type dataType) : base(typeof(IController))
+ {
+ DataType = dataType;
+ }
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/Cmdlets/CmdletBase.cs b/CSharp/TfsCmdlets.Shared/Cmdlets/CmdletBase.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Cmdlets/CmdletBase.cs
rename to CSharp/TfsCmdlets.Shared/Cmdlets/CmdletBase.cs
diff --git a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/CopyClassificationNodeController.cs b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/CopyClassificationNodeController.cs
similarity index 98%
rename from CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/CopyClassificationNodeController.cs
rename to CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/CopyClassificationNodeController.cs
index 06a1fa9dc..33a02815f 100644
--- a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/CopyClassificationNodeController.cs
+++ b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/CopyClassificationNodeController.cs
@@ -4,7 +4,7 @@
namespace TfsCmdlets.Cmdlets.WorkItem.AreasIterations
{
- internal abstract class CopyClassificationNodeController: ControllerBase
+ public abstract class CopyClassificationNodeController: ControllerBase
{
protected override IEnumerable Run()
{
diff --git a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/GetClassificationNodeController.cs b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/GetClassificationNodeController.cs
similarity index 94%
rename from CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/GetClassificationNodeController.cs
rename to CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/GetClassificationNodeController.cs
index ed6f2e5fd..2c780e9de 100644
--- a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/GetClassificationNodeController.cs
+++ b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/GetClassificationNodeController.cs
@@ -4,7 +4,7 @@
namespace TfsCmdlets.Cmdlets.WorkItem.AreasIterations
{
- internal abstract class GetClassificationNodeController: ControllerBase
+ public abstract class GetClassificationNodeController: ControllerBase
{
private INodeUtil NodeUtil { get; set; }
@@ -81,7 +81,7 @@ protected override IEnumerable Run()
}
[ImportingConstructor]
- protected GetClassificationNodeController(INodeUtil nodeUtil, IPowerShellService powerShell, IDataManager data, IParameterManager parameters, ILogger logger, IWorkItemTrackingHttpClient client)
+ protected GetClassificationNodeController(INodeUtil nodeUtil, IWorkItemTrackingHttpClient client, IPowerShellService powerShell, IDataManager data, IParameterManager parameters, ILogger logger)
: base(powerShell, data, parameters, logger)
{
NodeUtil = nodeUtil;
diff --git a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/MoveClassificationNodeController.cs b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/MoveClassificationNodeController.cs
similarity index 97%
rename from CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/MoveClassificationNodeController.cs
rename to CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/MoveClassificationNodeController.cs
index 0aeef95e3..926aeb504 100644
--- a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/MoveClassificationNodeController.cs
+++ b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/MoveClassificationNodeController.cs
@@ -5,7 +5,7 @@
namespace TfsCmdlets.Cmdlets.WorkItem.AreasIterations
{
- internal abstract class MoveClassificationNodeController : ControllerBase
+ public abstract class MoveClassificationNodeController : ControllerBase
{
private IWorkItemTrackingHttpClient Client { get; set; }
diff --git a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/NewClassificationNodeController.cs b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/NewClassificationNodeController.cs
similarity index 97%
rename from CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/NewClassificationNodeController.cs
rename to CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/NewClassificationNodeController.cs
index 222ab0b0c..9f0d95cc1 100644
--- a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/NewClassificationNodeController.cs
+++ b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/NewClassificationNodeController.cs
@@ -4,7 +4,7 @@
namespace TfsCmdlets.Cmdlets.WorkItem.AreasIterations
{
- internal abstract class NewClassificationNodeController: ControllerBase
+ public abstract class NewClassificationNodeController: ControllerBase
{
private INodeUtil NodeUtil { get; }
diff --git a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/RemoveClassificationNodeController.cs b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/RemoveClassificationNodeController.cs
similarity index 96%
rename from CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/RemoveClassificationNodeController.cs
rename to CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/RemoveClassificationNodeController.cs
index b3dd44778..a99416d6a 100644
--- a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/RemoveClassificationNodeController.cs
+++ b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/RemoveClassificationNodeController.cs
@@ -4,7 +4,7 @@
namespace TfsCmdlets.Cmdlets.WorkItem.AreasIterations
{
- internal abstract class RemoveClassificationNodeController: ControllerBase
+ public abstract class RemoveClassificationNodeController: ControllerBase
{
private IWorkItemTrackingHttpClient Client { get; set; }
diff --git a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/RenameClassificationNodeController.cs b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/RenameClassificationNodeController.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/RenameClassificationNodeController.cs
rename to CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/RenameClassificationNodeController.cs
diff --git a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/TestClassificationNodeController.cs b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/TestClassificationNodeController.cs
similarity index 85%
rename from CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/TestClassificationNodeController.cs
rename to CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/TestClassificationNodeController.cs
index 7426706ae..8bc2d0bf9 100644
--- a/CSharp/TfsCmdlets/Cmdlets/WorkItem/AreasIterations/TestClassificationNodeController.cs
+++ b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/AreasIterations/TestClassificationNodeController.cs
@@ -1,6 +1,6 @@
namespace TfsCmdlets.Cmdlets.WorkItem.AreasIterations
{
- internal abstract class TestClassificationNodeController: ControllerBase
+ public abstract class TestClassificationNodeController: ControllerBase
{
protected override IEnumerable Run()
{
diff --git a/CSharp/TfsCmdlets/Cmdlets/WorkItem/Tagging/ToggleWorkItemTagController.cs b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/Tagging/ToggleWorkItemTagController.cs
similarity index 73%
rename from CSharp/TfsCmdlets/Cmdlets/WorkItem/Tagging/ToggleWorkItemTagController.cs
rename to CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/Tagging/ToggleWorkItemTagController.cs
index 9582559c1..42a1bd765 100644
--- a/CSharp/TfsCmdlets/Cmdlets/WorkItem/Tagging/ToggleWorkItemTagController.cs
+++ b/CSharp/TfsCmdlets.Shared/Cmdlets/WorkItem/Tagging/ToggleWorkItemTagController.cs
@@ -2,7 +2,7 @@
namespace TfsCmdlets.Cmdlets.WorkItem.Tagging
{
- internal abstract class ToggleWorkItemTagController: ControllerBase
+ public abstract class ToggleWorkItemTagController: ControllerBase
{
[Import]
private ITaggingHttpClient Client { get; set; }
@@ -16,9 +16,12 @@ protected override IEnumerable Run()
foreach (var tag in tags)
{
if (!PowerShell.ShouldProcess(tp, $"{(enabled? "Enable": "Disable")} work item tag '{tag.Name}'")) continue;
-
- yield return Client.UpdateTagAsync(tp.Id, tag.Id, tag.Name, enabled)
- .GetResult($"Error renaming work item tag '{tag.Name}'");
+#if UNIT_TEST_PROJECT
+ yield break;
+#else
+ yield return Client.UpdateTagAsync(tp.Id, tag.Id, tag.Name, enabled)
+ .GetResult($"Error renaming work item tag '{tag.Name}'");
+#endif
}
}
diff --git a/CSharp/TfsCmdlets/Cmdlets/ControllerBase.cs b/CSharp/TfsCmdlets.Shared/Controllers/ControllerBase.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Cmdlets/ControllerBase.cs
rename to CSharp/TfsCmdlets.Shared/Controllers/ControllerBase.cs
diff --git a/CSharp/TfsCmdlets/Enums.cs b/CSharp/TfsCmdlets.Shared/Enums.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Enums.cs
rename to CSharp/TfsCmdlets.Shared/Enums.cs
diff --git a/CSharp/TfsCmdlets/Extensions/HashtableExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/HashtableExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/HashtableExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/HashtableExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/JsonExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/JsonExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/JsonExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/JsonExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/ListExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/ListExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/ListExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/ListExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/ObjectExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/ObjectExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/ObjectExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/ObjectExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/PSObjectExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/PSObjectExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/PSObjectExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/PSObjectExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/PipelineExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/PipelineExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/PipelineExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/PipelineExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/StringExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/StringExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/StringExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/StringExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/TaskExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/TaskExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/TaskExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/TaskExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/TeamProjectExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/TeamProjectExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/TeamProjectExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/TeamProjectExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/WorkItemExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/WorkItemExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/WorkItemExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/WorkItemExtensions.cs
diff --git a/CSharp/TfsCmdlets/Extensions/XmlExtensions.cs b/CSharp/TfsCmdlets.Shared/Extensions/XmlExtensions.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Extensions/XmlExtensions.cs
rename to CSharp/TfsCmdlets.Shared/Extensions/XmlExtensions.cs
diff --git a/CSharp/TfsCmdlets/GlobalUsings.cs b/CSharp/TfsCmdlets.Shared/GlobalUsings.cs
similarity index 100%
rename from CSharp/TfsCmdlets/GlobalUsings.cs
rename to CSharp/TfsCmdlets.Shared/GlobalUsings.cs
diff --git a/CSharp/TfsCmdlets/HttpClients/HttpClientAttribute.cs b/CSharp/TfsCmdlets.Shared/HttpClientAttribute.cs
similarity index 62%
rename from CSharp/TfsCmdlets/HttpClients/HttpClientAttribute.cs
rename to CSharp/TfsCmdlets.Shared/HttpClientAttribute.cs
index 62f31e6fc..038bb9603 100644
--- a/CSharp/TfsCmdlets/HttpClients/HttpClientAttribute.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClientAttribute.cs
@@ -1,6 +1,6 @@
-namespace TfsCmdlets.HttpClients
+namespace TfsCmdlets
{
- internal class HttpClientAttribute : Attribute
+ public sealed class HttpClientAttribute : Attribute
{
public HttpClientAttribute(Type type)
{
diff --git a/CSharp/TfsCmdlets/HttpClients/IAccountLicensingHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IAccountLicensingHttpClient.cs
similarity index 73%
rename from CSharp/TfsCmdlets/HttpClients/IAccountLicensingHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IAccountLicensingHttpClient.cs
index 1fdad0e29..107eef9f3 100644
--- a/CSharp/TfsCmdlets/HttpClients/IAccountLicensingHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IAccountLicensingHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(AccountLicensingHttpClient))]
- partial interface IAccountLicensingHttpClient
+ public partial interface IAccountLicensingHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IBuildHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IBuildHttpClient.cs
similarity index 74%
rename from CSharp/TfsCmdlets/HttpClients/IBuildHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IBuildHttpClient.cs
index 1836bb416..d172ee91f 100644
--- a/CSharp/TfsCmdlets/HttpClients/IBuildHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IBuildHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(BuildHttpClient))]
- partial interface IBuildHttpClient
+ public partial interface IBuildHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IExtensionManagementHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IExtensionManagementHttpClient.cs
similarity index 74%
rename from CSharp/TfsCmdlets/HttpClients/IExtensionManagementHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IExtensionManagementHttpClient.cs
index 3ee0f204d..8ba034199 100644
--- a/CSharp/TfsCmdlets/HttpClients/IExtensionManagementHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IExtensionManagementHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(ExtensionManagementHttpClient))]
- partial interface IExtensionManagementHttpClient
+ public partial interface IExtensionManagementHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IFeedHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IFeedHttpClient.cs
similarity index 74%
rename from CSharp/TfsCmdlets/HttpClients/IFeedHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IFeedHttpClient.cs
index 11f3cf95f..d0359244e 100644
--- a/CSharp/TfsCmdlets/HttpClients/IFeedHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IFeedHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients {
[HttpClient(typeof(FeedHttpClient))]
- partial interface IFeedHttpClient {
+ public partial interface IFeedHttpClient {
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IGenericHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IGenericHttpClient.cs
similarity index 65%
rename from CSharp/TfsCmdlets/HttpClients/IGenericHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IGenericHttpClient.cs
index 238ffc206..f7d80843e 100644
--- a/CSharp/TfsCmdlets/HttpClients/IGenericHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IGenericHttpClient.cs
@@ -1,7 +1,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(GenericHttpClient))]
- partial interface IGenericHttpClient
+ public partial interface IGenericHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IGitExtendedHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IGitExtendedHttpClient.cs
similarity index 73%
rename from CSharp/TfsCmdlets/HttpClients/IGitExtendedHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IGitExtendedHttpClient.cs
index d751893c1..9ed61ac13 100644
--- a/CSharp/TfsCmdlets/HttpClients/IGitExtendedHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IGitExtendedHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(GitExtendedHttpClient))]
- partial interface IGitExtendedHttpClient
+ public partial interface IGitExtendedHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IGitHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IGitHttpClient.cs
similarity index 76%
rename from CSharp/TfsCmdlets/HttpClients/IGitHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IGitHttpClient.cs
index 5871cb3aa..4eae42a4f 100644
--- a/CSharp/TfsCmdlets/HttpClients/IGitHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IGitHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(GitHttpClient))]
- partial interface IGitHttpClient
+ public partial interface IGitHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IGraphHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IGraphHttpClient.cs
similarity index 75%
rename from CSharp/TfsCmdlets/HttpClients/IGraphHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IGraphHttpClient.cs
index 2e9e3edf2..f085ba38a 100644
--- a/CSharp/TfsCmdlets/HttpClients/IGraphHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IGraphHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(GraphHttpClient))]
- partial interface IGraphHttpClient
+ public partial interface IGraphHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IIdentityHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IIdentityHttpClient.cs
similarity index 75%
rename from CSharp/TfsCmdlets/HttpClients/IIdentityHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IIdentityHttpClient.cs
index f9a9eb596..a7758e2d2 100644
--- a/CSharp/TfsCmdlets/HttpClients/IIdentityHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IIdentityHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(IdentityHttpClient))]
- partial interface IIdentityHttpClient
+ public partial interface IIdentityHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IOperationsHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IOperationsHttpClient.cs
similarity index 73%
rename from CSharp/TfsCmdlets/HttpClients/IOperationsHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IOperationsHttpClient.cs
index a2eb79ba8..6abcfd51d 100644
--- a/CSharp/TfsCmdlets/HttpClients/IOperationsHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IOperationsHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients {
[HttpClient(typeof(OperationsHttpClient))]
- partial interface IOperationsHttpClient {
+ public partial interface IOperationsHttpClient {
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IPolicyHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IPolicyHttpClient.cs
similarity index 74%
rename from CSharp/TfsCmdlets/HttpClients/IPolicyHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IPolicyHttpClient.cs
index 505347d97..c0a3ffbc7 100644
--- a/CSharp/TfsCmdlets/HttpClients/IPolicyHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IPolicyHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(PolicyHttpClient))]
- partial interface IPolicyHttpClient
+ public partial interface IPolicyHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IProcessHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IProcessHttpClient.cs
similarity index 72%
rename from CSharp/TfsCmdlets/HttpClients/IProcessHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IProcessHttpClient.cs
index 827ce0a27..eab76dd34 100644
--- a/CSharp/TfsCmdlets/HttpClients/IProcessHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IProcessHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(ProcessHttpClient))]
- partial interface IProcessHttpClient {
+ public partial interface IProcessHttpClient {
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IProjectHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IProjectHttpClient.cs
similarity index 74%
rename from CSharp/TfsCmdlets/HttpClients/IProjectHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IProjectHttpClient.cs
index e37153677..ea2847722 100644
--- a/CSharp/TfsCmdlets/HttpClients/IProjectHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IProjectHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(ProjectHttpClient))]
- partial interface IProjectHttpClient
+ public partial interface IProjectHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IReleaseHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IReleaseHttpClient.cs
similarity index 77%
rename from CSharp/TfsCmdlets/HttpClients/IReleaseHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IReleaseHttpClient.cs
index 14c42e006..21bff1056 100644
--- a/CSharp/TfsCmdlets/HttpClients/IReleaseHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IReleaseHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(ReleaseHttpClient))]
- partial interface IReleaseHttpClient
+ public partial interface IReleaseHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IReleaseHttpClient2.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IReleaseHttpClient2.cs
similarity index 77%
rename from CSharp/TfsCmdlets/HttpClients/IReleaseHttpClient2.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IReleaseHttpClient2.cs
index f13cbe28f..f79011691 100644
--- a/CSharp/TfsCmdlets/HttpClients/IReleaseHttpClient2.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IReleaseHttpClient2.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(ReleaseHttpClient2))]
- partial interface IReleaseHttpClient2
+ public partial interface IReleaseHttpClient2
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/ISearchHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/ISearchHttpClient.cs
similarity index 75%
rename from CSharp/TfsCmdlets/HttpClients/ISearchHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/ISearchHttpClient.cs
index a7d16645e..aa1c5def5 100644
--- a/CSharp/TfsCmdlets/HttpClients/ISearchHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/ISearchHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(SearchHttpClient))]
- partial interface ISearchHttpClient
+ public partial interface ISearchHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IServiceHooksPublisherHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IServiceHooksPublisherHttpClient.cs
similarity index 72%
rename from CSharp/TfsCmdlets/HttpClients/IServiceHooksPublisherHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IServiceHooksPublisherHttpClient.cs
index ce189c8cc..713212237 100644
--- a/CSharp/TfsCmdlets/HttpClients/IServiceHooksPublisherHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IServiceHooksPublisherHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(ServiceHooksPublisherHttpClient))]
- partial interface IServiceHooksPublisherHttpClient
+ public partial interface IServiceHooksPublisherHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/ITaggingHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/ITaggingHttpClient.cs
similarity index 74%
rename from CSharp/TfsCmdlets/HttpClients/ITaggingHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/ITaggingHttpClient.cs
index cfde10a22..59018bd17 100644
--- a/CSharp/TfsCmdlets/HttpClients/ITaggingHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/ITaggingHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(TaggingHttpClient))]
- partial interface ITaggingHttpClient
+ public partial interface ITaggingHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/ITeamAdminHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/ITeamAdminHttpClient.cs
similarity index 98%
rename from CSharp/TfsCmdlets/HttpClients/ITeamAdminHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/ITeamAdminHttpClient.cs
index 282dbf1a3..10283b40c 100644
--- a/CSharp/TfsCmdlets/HttpClients/ITeamAdminHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/ITeamAdminHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(TeamAdminHttpClient))]
- partial interface ITeamAdminHttpClient
+ public partial interface ITeamAdminHttpClient
{
}
diff --git a/CSharp/TfsCmdlets/HttpClients/ITeamHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/ITeamHttpClient.cs
similarity index 75%
rename from CSharp/TfsCmdlets/HttpClients/ITeamHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/ITeamHttpClient.cs
index fe4a56e03..2609b3bcf 100644
--- a/CSharp/TfsCmdlets/HttpClients/ITeamHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/ITeamHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients {
[HttpClient(typeof(TeamHttpClient))]
- partial interface ITeamHttpClient
+ public partial interface ITeamHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/ITestPlanHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/ITestPlanHttpClient.cs
similarity index 77%
rename from CSharp/TfsCmdlets/HttpClients/ITestPlanHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/ITestPlanHttpClient.cs
index 9b0fafdf2..d430b6bd3 100644
--- a/CSharp/TfsCmdlets/HttpClients/ITestPlanHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/ITestPlanHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(TestPlanHttpClient))]
- partial interface ITestPlanHttpClient
+ public partial interface ITestPlanHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IVssHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IVssHttpClient.cs
similarity index 100%
rename from CSharp/TfsCmdlets/HttpClients/IVssHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IVssHttpClient.cs
diff --git a/CSharp/TfsCmdlets/HttpClients/IWikiHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IWikiHttpClient.cs
similarity index 74%
rename from CSharp/TfsCmdlets/HttpClients/IWikiHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IWikiHttpClient.cs
index 92c80ecb1..cc89e69e7 100644
--- a/CSharp/TfsCmdlets/HttpClients/IWikiHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IWikiHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(WikiHttpClient))]
- partial interface IWikiHttpClient
+ public partial interface IWikiHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IWorkHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IWorkHttpClient.cs
similarity index 75%
rename from CSharp/TfsCmdlets/HttpClients/IWorkHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IWorkHttpClient.cs
index 82221dde9..66a5fe802 100644
--- a/CSharp/TfsCmdlets/HttpClients/IWorkHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IWorkHttpClient.cs
@@ -4,7 +4,7 @@ namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(WorkHttpClient))]
- partial interface IWorkHttpClient
+ public partial interface IWorkHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IWorkItemTrackingHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IWorkItemTrackingHttpClient.cs
similarity index 73%
rename from CSharp/TfsCmdlets/HttpClients/IWorkItemTrackingHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IWorkItemTrackingHttpClient.cs
index b8d3ea626..08bb65c11 100644
--- a/CSharp/TfsCmdlets/HttpClients/IWorkItemTrackingHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IWorkItemTrackingHttpClient.cs
@@ -4,7 +4,7 @@ namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(WorkItemTrackingHttpClient))]
- partial interface IWorkItemTrackingHttpClient {
+ public partial interface IWorkItemTrackingHttpClient {
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/IWorkItemTrackingProcessHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/IWorkItemTrackingProcessHttpClient.cs
similarity index 72%
rename from CSharp/TfsCmdlets/HttpClients/IWorkItemTrackingProcessHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/IWorkItemTrackingProcessHttpClient.cs
index af2a1e417..ddc1d6e6b 100644
--- a/CSharp/TfsCmdlets/HttpClients/IWorkItemTrackingProcessHttpClient.cs
+++ b/CSharp/TfsCmdlets.Shared/HttpClients/IWorkItemTrackingProcessHttpClient.cs
@@ -3,7 +3,7 @@
namespace TfsCmdlets.HttpClients
{
[HttpClient(typeof(WorkItemTrackingProcessHttpClient))]
- partial interface IWorkItemTrackingProcessHttpClient
+ public partial interface IWorkItemTrackingProcessHttpClient
{
}
}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/HttpClients/Impl/GenericHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/Impl/GenericHttpClient.cs
similarity index 100%
rename from CSharp/TfsCmdlets/HttpClients/Impl/GenericHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/Impl/GenericHttpClient.cs
diff --git a/CSharp/TfsCmdlets/HttpClients/Impl/GitExtendedHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/Impl/GitExtendedHttpClient.cs
similarity index 100%
rename from CSharp/TfsCmdlets/HttpClients/Impl/GitExtendedHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/Impl/GitExtendedHttpClient.cs
diff --git a/CSharp/TfsCmdlets/HttpClients/Impl/TeamAdminHttpClient.cs b/CSharp/TfsCmdlets.Shared/HttpClients/Impl/TeamAdminHttpClient.cs
similarity index 100%
rename from CSharp/TfsCmdlets/HttpClients/Impl/TeamAdminHttpClient.cs
rename to CSharp/TfsCmdlets.Shared/HttpClients/Impl/TeamAdminHttpClient.cs
diff --git a/CSharp/TfsCmdlets.Shared/ModelAttribute.cs b/CSharp/TfsCmdlets.Shared/ModelAttribute.cs
new file mode 100644
index 000000000..38237018d
--- /dev/null
+++ b/CSharp/TfsCmdlets.Shared/ModelAttribute.cs
@@ -0,0 +1,12 @@
+namespace TfsCmdlets;
+
+[AttributeUsage(System.AttributeTargets.Class, Inherited = true, AllowMultiple = false)]
+public sealed class ModelAttribute: Attribute
+{
+ public Type DataType { get; }
+
+ public ModelAttribute(Type dataType)
+ {
+ DataType = dataType;
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets/Models/BacklogLevelConfiguration.cs b/CSharp/TfsCmdlets.Shared/Models/BacklogLevelConfiguration.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/BacklogLevelConfiguration.cs
rename to CSharp/TfsCmdlets.Shared/Models/BacklogLevelConfiguration.cs
diff --git a/CSharp/TfsCmdlets/Models/Board.cs b/CSharp/TfsCmdlets.Shared/Models/Board.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/Board.cs
rename to CSharp/TfsCmdlets.Shared/Models/Board.cs
diff --git a/CSharp/TfsCmdlets/Models/CardRule.cs b/CSharp/TfsCmdlets.Shared/Models/CardRule.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/CardRule.cs
rename to CSharp/TfsCmdlets.Shared/Models/CardRule.cs
diff --git a/CSharp/TfsCmdlets/Models/ClassificationNode.cs b/CSharp/TfsCmdlets.Shared/Models/ClassificationNode.cs
similarity index 99%
rename from CSharp/TfsCmdlets/Models/ClassificationNode.cs
rename to CSharp/TfsCmdlets.Shared/Models/ClassificationNode.cs
index f72e84676..3db6836aa 100644
--- a/CSharp/TfsCmdlets/Models/ClassificationNode.cs
+++ b/CSharp/TfsCmdlets.Shared/Models/ClassificationNode.cs
@@ -59,13 +59,14 @@ public IEnumerable GetChildren(string pattern = "**") =>
private IEnumerable GetNodesRecursively(ClassificationNode node, string pattern)
{
+#if !UNIT_TEST_PROJECT
if (node.ChildCount == 0 && _client != null)
{
node = new ClassificationNode(_client.GetClassificationNodeAsync(ProjectName, StructureGroup, node.RelativePath, 2)
.GetResult($"Error retrieving {StructureGroup} from path '{node.RelativePath}'"),
ProjectName, _client);
}
-
+#endif
if (node.ChildCount == 0) yield break;
foreach (var c in node.Children.Select(n => new ClassificationNode(n, ProjectName, _client)))
diff --git a/CSharp/TfsCmdlets/Models/Connection.cs b/CSharp/TfsCmdlets.Shared/Models/Connection.cs
similarity index 98%
rename from CSharp/TfsCmdlets/Models/Connection.cs
rename to CSharp/TfsCmdlets.Shared/Models/Connection.cs
index 7cac289aa..7509b3381 100644
--- a/CSharp/TfsCmdlets/Models/Connection.cs
+++ b/CSharp/TfsCmdlets.Shared/Models/Connection.cs
@@ -4,7 +4,7 @@
#if NETCOREAPP3_1_OR_GREATER
using AdoConnection = Microsoft.VisualStudio.Services.WebApi.VssConnection;
using Microsoft.VisualStudio.Services.WebApi.Location;
-#else
+#elif NET471_OR_GREATER
using Microsoft.TeamFoundation.Client;
using AdoConnection = Microsoft.TeamFoundation.Client.TfsConnection;
#endif
@@ -14,10 +14,10 @@ namespace TfsCmdlets.Models
public sealed class Connection : ModelBase, ITfsServiceProvider
{
/// Converts Connection to AdoConnection
- public static implicit operator AdoConnection(Connection c) => c?.InnerObject;
+ public static implicit operator AdoConnection(Connection c) => c.InnerObject;
/// Converts AdoConnection to Connection
- public static implicit operator Connection(AdoConnection c) => c == null? null: new Connection(c);
+ public static implicit operator Connection(AdoConnection c) => new Connection(c);
public Connection(AdoConnection obj) : base(obj) { }
diff --git a/CSharp/TfsCmdlets/Models/ContributionNodeQuery.cs b/CSharp/TfsCmdlets.Shared/Models/ContributionNodeQuery.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/ContributionNodeQuery.cs
rename to CSharp/TfsCmdlets.Shared/Models/ContributionNodeQuery.cs
diff --git a/CSharp/TfsCmdlets/Models/GitItem.cs b/CSharp/TfsCmdlets.Shared/Models/GitItem.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/GitItem.cs
rename to CSharp/TfsCmdlets.Shared/Models/GitItem.cs
diff --git a/CSharp/TfsCmdlets/Models/GlobalList.cs b/CSharp/TfsCmdlets.Shared/Models/GlobalList.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/GlobalList.cs
rename to CSharp/TfsCmdlets.Shared/Models/GlobalList.cs
diff --git a/CSharp/TfsCmdlets/Models/Identity.cs b/CSharp/TfsCmdlets.Shared/Models/Identity.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/Identity.cs
rename to CSharp/TfsCmdlets.Shared/Models/Identity.cs
diff --git a/CSharp/TfsCmdlets/Models/IdentityRefWrapper.cs b/CSharp/TfsCmdlets.Shared/Models/IdentityRefWrapper.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/IdentityRefWrapper.cs
rename to CSharp/TfsCmdlets.Shared/Models/IdentityRefWrapper.cs
diff --git a/CSharp/TfsCmdlets/Models/ModelBase.cs b/CSharp/TfsCmdlets.Shared/Models/ModelBase.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/ModelBase.cs
rename to CSharp/TfsCmdlets.Shared/Models/ModelBase.cs
diff --git a/CSharp/TfsCmdlets/Models/Parameter.cs b/CSharp/TfsCmdlets.Shared/Models/Parameter.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/Parameter.cs
rename to CSharp/TfsCmdlets.Shared/Models/Parameter.cs
diff --git a/CSharp/TfsCmdlets/Models/WorkItem/Query/QueryItem.cs b/CSharp/TfsCmdlets.Shared/Models/QueryItem.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/WorkItem/Query/QueryItem.cs
rename to CSharp/TfsCmdlets.Shared/Models/QueryItem.cs
diff --git a/CSharp/TfsCmdlets/Models/ServerVersion.cs b/CSharp/TfsCmdlets.Shared/Models/ServerVersion.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/ServerVersion.cs
rename to CSharp/TfsCmdlets.Shared/Models/ServerVersion.cs
diff --git a/CSharp/TfsCmdlets/Models/Team.cs b/CSharp/TfsCmdlets.Shared/Models/Team.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/Team.cs
rename to CSharp/TfsCmdlets.Shared/Models/Team.cs
diff --git a/CSharp/TfsCmdlets/Models/TeamAdmin.cs b/CSharp/TfsCmdlets.Shared/Models/TeamAdmin.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/TeamAdmin.cs
rename to CSharp/TfsCmdlets.Shared/Models/TeamAdmin.cs
diff --git a/CSharp/TfsCmdlets/Models/TeamMember.cs b/CSharp/TfsCmdlets.Shared/Models/TeamMember.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/TeamMember.cs
rename to CSharp/TfsCmdlets.Shared/Models/TeamMember.cs
diff --git a/CSharp/TfsCmdlets/Models/TeamProjectMember.cs b/CSharp/TfsCmdlets.Shared/Models/TeamProjectMember.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/TeamProjectMember.cs
rename to CSharp/TfsCmdlets.Shared/Models/TeamProjectMember.cs
diff --git a/CSharp/TfsCmdlets/Models/TfsInstallationPath.cs b/CSharp/TfsCmdlets.Shared/Models/TfsInstallationPath.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/TfsInstallationPath.cs
rename to CSharp/TfsCmdlets.Shared/Models/TfsInstallationPath.cs
diff --git a/CSharp/TfsCmdlets/Models/WorkItemHistory.cs b/CSharp/TfsCmdlets.Shared/Models/WorkItemHistory.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Models/WorkItemHistory.cs
rename to CSharp/TfsCmdlets.Shared/Models/WorkItemHistory.cs
diff --git a/CSharp/TfsCmdlets/Services/IAsyncOperationAwaiter.cs b/CSharp/TfsCmdlets.Shared/Services/IAsyncOperationAwaiter.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IAsyncOperationAwaiter.cs
rename to CSharp/TfsCmdlets.Shared/Services/IAsyncOperationAwaiter.cs
diff --git a/CSharp/TfsCmdlets/Services/IController.cs b/CSharp/TfsCmdlets.Shared/Services/IController.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IController.cs
rename to CSharp/TfsCmdlets.Shared/Services/IController.cs
diff --git a/CSharp/TfsCmdlets/Services/ICurrentConnections.cs b/CSharp/TfsCmdlets.Shared/Services/ICurrentConnections.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/ICurrentConnections.cs
rename to CSharp/TfsCmdlets.Shared/Services/ICurrentConnections.cs
diff --git a/CSharp/TfsCmdlets/Services/IDataManager.cs b/CSharp/TfsCmdlets.Shared/Services/IDataManager.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IDataManager.cs
rename to CSharp/TfsCmdlets.Shared/Services/IDataManager.cs
diff --git a/CSharp/TfsCmdlets/Services/IInteractiveAuthentication.cs b/CSharp/TfsCmdlets.Shared/Services/IInteractiveAuthentication.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IInteractiveAuthentication.cs
rename to CSharp/TfsCmdlets.Shared/Services/IInteractiveAuthentication.cs
diff --git a/CSharp/TfsCmdlets/Services/IKnownWorkItemLinkTypes.cs b/CSharp/TfsCmdlets.Shared/Services/IKnownWorkItemLinkTypes.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IKnownWorkItemLinkTypes.cs
rename to CSharp/TfsCmdlets.Shared/Services/IKnownWorkItemLinkTypes.cs
diff --git a/CSharp/TfsCmdlets/Services/ILegacyWorkItemService.cs b/CSharp/TfsCmdlets.Shared/Services/ILegacyWorkItemService.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/ILegacyWorkItemService.cs
rename to CSharp/TfsCmdlets.Shared/Services/ILegacyWorkItemService.cs
diff --git a/CSharp/TfsCmdlets/Services/ILogger.cs b/CSharp/TfsCmdlets.Shared/Services/ILogger.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/ILogger.cs
rename to CSharp/TfsCmdlets.Shared/Services/ILogger.cs
diff --git a/CSharp/TfsCmdlets/Services/INodeUtil.cs b/CSharp/TfsCmdlets.Shared/Services/INodeUtil.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/INodeUtil.cs
rename to CSharp/TfsCmdlets.Shared/Services/INodeUtil.cs
diff --git a/CSharp/TfsCmdlets/Services/IPaginator.cs b/CSharp/TfsCmdlets.Shared/Services/IPaginator.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IPaginator.cs
rename to CSharp/TfsCmdlets.Shared/Services/IPaginator.cs
diff --git a/CSharp/TfsCmdlets/Services/IParameterManager.cs b/CSharp/TfsCmdlets.Shared/Services/IParameterManager.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IParameterManager.cs
rename to CSharp/TfsCmdlets.Shared/Services/IParameterManager.cs
diff --git a/CSharp/TfsCmdlets/Services/IPowerShellService.cs b/CSharp/TfsCmdlets.Shared/Services/IPowerShellService.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IPowerShellService.cs
rename to CSharp/TfsCmdlets.Shared/Services/IPowerShellService.cs
diff --git a/CSharp/TfsCmdlets/Services/IProcessUtil.cs b/CSharp/TfsCmdlets.Shared/Services/IProcessUtil.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IProcessUtil.cs
rename to CSharp/TfsCmdlets.Shared/Services/IProcessUtil.cs
diff --git a/CSharp/TfsCmdlets/Services/IRegistryService.cs b/CSharp/TfsCmdlets.Shared/Services/IRegistryService.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IRegistryService.cs
rename to CSharp/TfsCmdlets.Shared/Services/IRegistryService.cs
diff --git a/CSharp/TfsCmdlets/Services/IRestApiService.cs b/CSharp/TfsCmdlets.Shared/Services/IRestApiService.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IRestApiService.cs
rename to CSharp/TfsCmdlets.Shared/Services/IRestApiService.cs
diff --git a/CSharp/TfsCmdlets/Services/IRuntimeUtil.cs b/CSharp/TfsCmdlets.Shared/Services/IRuntimeUtil.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IRuntimeUtil.cs
rename to CSharp/TfsCmdlets.Shared/Services/IRuntimeUtil.cs
diff --git a/CSharp/TfsCmdlets/Services/ITfsServiceProvider.cs b/CSharp/TfsCmdlets.Shared/Services/ITfsServiceProvider.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/ITfsServiceProvider.cs
rename to CSharp/TfsCmdlets.Shared/Services/ITfsServiceProvider.cs
diff --git a/CSharp/TfsCmdlets/Services/ITfsVersionTable.cs b/CSharp/TfsCmdlets.Shared/Services/ITfsVersionTable.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/ITfsVersionTable.cs
rename to CSharp/TfsCmdlets.Shared/Services/ITfsVersionTable.cs
diff --git a/CSharp/TfsCmdlets/Services/IWorkItemPatchBuilder.cs b/CSharp/TfsCmdlets.Shared/Services/IWorkItemPatchBuilder.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/IWorkItemPatchBuilder.cs
rename to CSharp/TfsCmdlets.Shared/Services/IWorkItemPatchBuilder.cs
diff --git a/CSharp/TfsCmdlets/Services/ServiceLocator.cs b/CSharp/TfsCmdlets.Shared/Services/ServiceLocator.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Services/ServiceLocator.cs
rename to CSharp/TfsCmdlets.Shared/Services/ServiceLocator.cs
diff --git a/CSharp/TfsCmdlets/Cmdlets/TfsCmdletAttribute.cs b/CSharp/TfsCmdlets.Shared/TfsCmdletAttribute.cs
similarity index 97%
rename from CSharp/TfsCmdlets/Cmdlets/TfsCmdletAttribute.cs
rename to CSharp/TfsCmdlets.Shared/TfsCmdletAttribute.cs
index 4a57863ed..8a2a647d2 100644
--- a/CSharp/TfsCmdlets/Cmdlets/TfsCmdletAttribute.cs
+++ b/CSharp/TfsCmdlets.Shared/TfsCmdletAttribute.cs
@@ -1,4 +1,4 @@
-namespace TfsCmdlets.Cmdlets
+namespace TfsCmdlets
{
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public sealed class TfsCmdletAttribute : Attribute
diff --git a/CSharp/TfsCmdlets.Shared/TfsCmdlets.Shared.projitems b/CSharp/TfsCmdlets.Shared/TfsCmdlets.Shared.projitems
new file mode 100644
index 000000000..88da3fa32
--- /dev/null
+++ b/CSharp/TfsCmdlets.Shared/TfsCmdlets.Shared.projitems
@@ -0,0 +1,114 @@
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+ true
+ 1ef8b954-3db2-4d8c-a95b-fe5ea047b40f
+
+
+ TfsCmdlets.Shared
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.Shared/TfsCmdlets.Shared.shproj b/CSharp/TfsCmdlets.Shared/TfsCmdlets.Shared.shproj
new file mode 100644
index 000000000..00f41734e
--- /dev/null
+++ b/CSharp/TfsCmdlets.Shared/TfsCmdlets.Shared.shproj
@@ -0,0 +1,13 @@
+
+
+
+ 1ef8b954-3db2-4d8c-a95b-fe5ea047b40f
+ 14.0
+
+
+
+
+
+
+
+
diff --git a/CSharp/TfsCmdlets/Util/ErrorUtil.cs b/CSharp/TfsCmdlets.Shared/Util/ErrorUtil.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Util/ErrorUtil.cs
rename to CSharp/TfsCmdlets.Shared/Util/ErrorUtil.cs
diff --git a/CSharp/TfsCmdlets/Util/LazyProperty.cs b/CSharp/TfsCmdlets.Shared/Util/LazyProperty.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Util/LazyProperty.cs
rename to CSharp/TfsCmdlets.Shared/Util/LazyProperty.cs
diff --git a/CSharp/TfsCmdlets/Util/Mru.cs b/CSharp/TfsCmdlets.Shared/Util/Mru.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Util/Mru.cs
rename to CSharp/TfsCmdlets.Shared/Util/Mru.cs
diff --git a/CSharp/TfsCmdlets/Util/PSJsonConverter.cs b/CSharp/TfsCmdlets.Shared/Util/PSJsonConverter.cs
similarity index 100%
rename from CSharp/TfsCmdlets/Util/PSJsonConverter.cs
rename to CSharp/TfsCmdlets.Shared/Util/PSJsonConverter.cs
diff --git a/CSharp/TfsCmdlets.Shared/WorkItemFieldAttribute.cs b/CSharp/TfsCmdlets.Shared/WorkItemFieldAttribute.cs
new file mode 100644
index 000000000..7694fbfb7
--- /dev/null
+++ b/CSharp/TfsCmdlets.Shared/WorkItemFieldAttribute.cs
@@ -0,0 +1,17 @@
+using Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models;
+
+namespace TfsCmdlets
+{
+ [AttributeUsage(System.AttributeTargets.Property, Inherited = true, AllowMultiple = false)]
+ public sealed class WorkItemFieldAttribute : Attribute
+ {
+ public string Name { get; }
+ public FieldType Type { get; }
+
+ public WorkItemFieldAttribute(string name, FieldType type)
+ {
+ Name = name;
+ Type = type;
+ }
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGeneratores.UnitTests/CSharpSourceGeneratorVerifier.cs b/CSharp/TfsCmdlets.SourceGeneratores.UnitTests/CSharpSourceGeneratorVerifier.cs
deleted file mode 100644
index b679873e4..000000000
--- a/CSharp/TfsCmdlets.SourceGeneratores.UnitTests/CSharpSourceGeneratorVerifier.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using Microsoft.CodeAnalysis;
-using Microsoft.CodeAnalysis.CSharp;
-using Microsoft.CodeAnalysis.CSharp.Testing;
-using Microsoft.CodeAnalysis.Testing;
-using System.Collections.Immutable;
-
-namespace TfsCmdlets.SourceGenerators.UnitTests
-{
- public static class CSharpSourceGeneratorVerifier
- where TSourceGenerator : ISourceGenerator, new()
- {
- public class Test : CSharpSourceGeneratorTest
- {
- public Test()
- {
- }
-
- protected override CompilationOptions CreateCompilationOptions()
- {
- var compilationOptions = base.CreateCompilationOptions();
- return compilationOptions.WithSpecificDiagnosticOptions(
- compilationOptions.SpecificDiagnosticOptions.SetItems(GetNullableWarningsFromCompiler()));
- }
-
- public LanguageVersion LanguageVersion { get; set; } = LanguageVersion.Default;
-
- private static ImmutableDictionary GetNullableWarningsFromCompiler()
- {
- string[] args = { "/warnaserror:nullable" };
- var commandLineArguments = CSharpCommandLineParser.Default.Parse(args, baseDirectory: Environment.CurrentDirectory, sdkDirectory: Environment.CurrentDirectory);
- var nullableWarnings = commandLineArguments.CompilationOptions.SpecificDiagnosticOptions;
-
- return nullableWarnings;
- }
-
- protected override ParseOptions CreateParseOptions()
- {
- return ((CSharpParseOptions)base.CreateParseOptions()).WithLanguageVersion(LanguageVersion);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGeneratores.UnitTests/Controllers/Resolve_Default_Value_Namespace.cs b/CSharp/TfsCmdlets.SourceGeneratores.UnitTests/Controllers/Resolve_Default_Value_Namespace.cs
deleted file mode 100644
index bdc64e2db..000000000
--- a/CSharp/TfsCmdlets.SourceGeneratores.UnitTests/Controllers/Resolve_Default_Value_Namespace.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using Microsoft.CodeAnalysis.Text;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using TfsCmdlets.SourceGenerators.Generators.Controllers;
-using Xunit;
-using VerifyCS = TfsCmdlets.SourceGenerators.UnitTests.CSharpSourceGeneratorVerifier;
-
-namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers
-{
- public class Resolve_Default_Value_Namespace
- {
- [Fact]
- public async Task Can_Resolve_Enum_Namespaces()
- {
- var code = """
- using Microsoft.TeamFoundation.WorkItemTracking.WebApi;
- using Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models;
-
- namespace TfsCmdlets.Cmdlets.WorkItem.Field
- {
- ///
- /// Gets information from one or more process templates.
- ///
- [TfsCmdlet(CmdletScope.Collection, OutputType = typeof(WorkItemField))]
- partial class NewWorkItemField
- {
- ///
- /// Specifies the type of the field.
- ///
- [Parameter]
- public FieldType Type { get; set; } = FieldType.String;
- }
- }
- """;
-
- var generated = """
- namespace TfsCmdlets.Cmdlets.WorkItem.Field
- {
- internal partial class NewWorkItemFieldController: ControllerBase
- {
- // Type
- protected bool Has_Type { get; set; }
- protected Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.FieldType Type { get; set; }
-
- // Passthru
- protected bool Has_Passthru {get;set;} // => Parameters.HasParameter("Passthru");
- protected bool Passthru {get;set;} // => _Passthru; // Parameters.Get("Passthru");
-
- // Collection
- protected bool Has_Collection => Parameters.HasParameter("Collection");
- protected Models.Connection Collection => Data.GetCollection();
-
- // Server
- protected bool Has_Server => Parameters.HasParameter("Server");
- protected Models.Connection Server => Data.GetServer();
-
- // ParameterSetName
- protected bool Has_ParameterSetName {get;set;}
- protected string ParameterSetName {get;set;}
-
-
- protected override void CacheParameters()
- {
- // Field
- Has_Field = Parameters.HasParameter("Field");
- Field = Parameters.Get("Field");
-
- // ReferenceName
- Has_ReferenceName = Parameters.HasParameter("ReferenceName");
- ReferenceName = Parameters.Get("ReferenceName");
-
- // Description
- Has_Description = Parameters.HasParameter("Description");
- Description = Parameters.Get("Description");
-
- // Type
- Has_Type = Parameters.HasParameter("Type");
- Type = Parameters.Get("Type", FieldType.String);
- """;
-
- await new VerifyCS.Test
- {
- TestState =
- {
- Sources = { code },
- GeneratedSources =
- {
- (typeof(ControllerGenerator), "NewWorkItemFieldController.cs", SourceText.From(generated, Encoding.UTF8, SourceHashAlgorithm.Sha256)),
- },
- },
- }.RunAsync();
- }
- }
-}
diff --git a/CSharp/TfsCmdlets.SourceGeneratores.UnitTests/TfsCmdlets.SourceGenerators.UnitTests.csproj b/CSharp/TfsCmdlets.SourceGeneratores.UnitTests/TfsCmdlets.SourceGenerators.UnitTests.csproj
deleted file mode 100644
index be5c21651..000000000
--- a/CSharp/TfsCmdlets.SourceGeneratores.UnitTests/TfsCmdlets.SourceGenerators.UnitTests.csproj
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
- net8.0
- enable
- enable
- false
- true
-
-
-
- allruntime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Admin/AdminCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Admin/AdminCmdletTests.cs
new file mode 100644
index 000000000..602a279b8
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Admin/AdminCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Admin;
+
+public partial class AdminCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetInstallationPathCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetInstallationPathCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\GetInstallationPath.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetVersionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetVersionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\GetVersion.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetConfigurationServerConnectionStringCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetConfigurationServerConnectionStringCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\GetConfigurationServerConnectionString.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Admin/Registry/RegistryCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Admin/Registry/RegistryCmdletTests.cs
new file mode 100644
index 000000000..c799f5f2b
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Admin/Registry/RegistryCmdletTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Admin.Registry;
+
+public partial class RegistryCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetRegistryValueCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetRegistryValueCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\Registry\\GetRegistryValue.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SetRegistryValueCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SetRegistryValueCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\Registry\\SetRegistryValue.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Artifact/ArtifactCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Artifact/ArtifactCmdletTests.cs
new file mode 100644
index 000000000..971d4af51
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Artifact/ArtifactCmdletTests.cs
@@ -0,0 +1,48 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Artifact;
+
+public partial class ArtifactCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetArtifactCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetArtifactCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Artifact\\GetArtifact.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetArtifactFeedCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetArtifactFeedCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Artifact\\GetArtifactFeed.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetArtifactFeedViewCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetArtifactFeedViewCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Artifact\\GetArtifactFeedView.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetArtifactVersionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetArtifactVersionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Artifact\\GetArtifactVersion.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Credential/CredentialCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Credential/CredentialCmdletTests.cs
new file mode 100644
index 000000000..18c8642e8
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Credential/CredentialCmdletTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Credential;
+
+public partial class CredentialCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_NewCredentialCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewCredentialCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Credential\\NewCredential.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ExtensionManagement/ExtensionManagementCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ExtensionManagement/ExtensionManagementCmdletTests.cs
new file mode 100644
index 000000000..4d3c1146b
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ExtensionManagement/ExtensionManagementCmdletTests.cs
@@ -0,0 +1,59 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.ExtensionManagement;
+
+public partial class ExtensionManagementCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetExtensionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetExtensionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\GetExtension.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_InstallExtensionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_InstallExtensionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\InstallExtension.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_UninstallExtensionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_UninstallExtensionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\UninstallExtension.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_EnableExtensionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_EnableExtensionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\EnableExtension.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisableExtensionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisableExtensionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\DisableExtension.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Branch/GitBranchCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Branch/GitBranchCmdletTests.cs
new file mode 100644
index 000000000..c23ebb6cf
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Branch/GitBranchCmdletTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Git.Branch;
+
+public partial class GitBranchCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitBranchCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitBranchCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Branch\\GetGitBranch.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveGitBranchCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveGitBranchCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Branch\\RemoveGitBranch.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Commit/GitCommitCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Commit/GitCommitCmdletTests.cs
new file mode 100644
index 000000000..cdf921567
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Commit/GitCommitCmdletTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Git.Commit;
+
+public partial class GitCommitCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitCommitCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitCommitCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Commit\\GetGitCommit.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/GitCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/GitCmdletTests.cs
new file mode 100644
index 000000000..1f6405097
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/GitCmdletTests.cs
@@ -0,0 +1,70 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Git;
+
+public partial class GitCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitRepositoryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitRepositoryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\GetGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewGitRepositoryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewGitRepositoryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\NewGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveGitRepositoryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveGitRepositoryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\RemoveGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameGitRepositoryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameGitRepositoryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\RenameGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_EnableGitRepositoryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_EnableGitRepositoryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\EnableGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisableGitRepositoryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisableGitRepositoryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\DisableGitRepository.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Item/GitItemCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Item/GitItemCmdletTests.cs
new file mode 100644
index 000000000..aa06beb35
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Item/GitItemCmdletTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Git.Item;
+
+public partial class GitItemCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitItemCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitItemCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Item\\GetGitItem.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Policy/GitPolicyCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Policy/GitPolicyCmdletTests.cs
new file mode 100644
index 000000000..8c0f5a2da
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Git/Policy/GitPolicyCmdletTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Git.Policy;
+
+public partial class GitPolicyCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitPolicyTypeCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitPolicyTypeCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Policy\\GetGitPolicyType.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetGitBranchPolicyCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitBranchPolicyCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Policy\\GetGitBranchPolicy.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Identity/Group/GroupCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Identity/Group/GroupCmdletTests.cs
new file mode 100644
index 000000000..b497c9cc8
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Identity/Group/GroupCmdletTests.cs
@@ -0,0 +1,70 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Identity.Group;
+
+public partial class GroupCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGroupCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGroupCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\GetGroup.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewGroupCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewGroupCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\NewGroup.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveGroupCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveGroupCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\RemoveGroup.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_AddGroupMemberCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_AddGroupMemberCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\AddGroupMember.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetGroupMemberCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGroupMemberCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\GetGroupMember.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveGroupMemberCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveGroupMemberCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\RemoveGroupMember.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Identity/IdentityCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Identity/IdentityCmdletTests.cs
new file mode 100644
index 000000000..1cec834b5
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Identity/IdentityCmdletTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Identity;
+
+public partial class IdentityCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetIdentityCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetIdentityCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\GetIdentity.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Identity/User/UserCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Identity/User/UserCmdletTests.cs
new file mode 100644
index 000000000..033924a53
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Identity/User/UserCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Identity.User;
+
+public partial class UserCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetUserCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetUserCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\User\\GetUser.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewUserCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewUserCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\User\\NewUser.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveUserCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveUserCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\User\\RemoveUser.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Organization/OrganizationCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Organization/OrganizationCmdletTests.cs
new file mode 100644
index 000000000..223d4ca62
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Organization/OrganizationCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Organization;
+
+public partial class OrganizationCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_ConnectOrganizationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ConnectOrganizationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Organization\\ConnectOrganization.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisconnectOrganizationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisconnectOrganizationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Organization\\DisconnectOrganization.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetOrganizationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetOrganizationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Organization\\GetOrganization.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/Build/Definition/BuildDefinitionCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/Build/Definition/BuildDefinitionCmdletTests.cs
new file mode 100644
index 000000000..ceed82c38
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/Build/Definition/BuildDefinitionCmdletTests.cs
@@ -0,0 +1,59 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Pipeline.Build.Definition;
+
+public partial class BuildDefinitionCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetBuildDefinitionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetBuildDefinitionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\GetBuildDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisableBuildDefinitionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisableBuildDefinitionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\DisableBuildDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_EnableBuildDefinitionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_EnableBuildDefinitionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\EnableBuildDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ResumeBuildDefinitionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ResumeBuildDefinitionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\ResumeBuildDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SuspendBuildDefinitionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SuspendBuildDefinitionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\SuspendBuildDefinition.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/Build/Folder/BuildFolderCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/Build/Folder/BuildFolderCmdletTests.cs
new file mode 100644
index 000000000..3a19b26dc
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/Build/Folder/BuildFolderCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Pipeline.Build.Folder;
+
+public partial class BuildFolderCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetBuildDefinitionFolderCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetBuildDefinitionFolderCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Folder\\GetBuildDefinitionFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewBuildDefinitionFolderCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewBuildDefinitionFolderCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Folder\\NewBuildDefinitionFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveBuildDefinitionFolderCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveBuildDefinitionFolderCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Folder\\RemoveBuildDefinitionFolder.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/Build/PipelineBuildCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/Build/PipelineBuildCmdletTests.cs
new file mode 100644
index 000000000..f9df824dd
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/Build/PipelineBuildCmdletTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Pipeline.Build;
+
+public partial class PipelineBuildCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_StartBuildCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_StartBuildCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\StartBuild.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/ReleaseManagement/ReleaseManagementCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/ReleaseManagement/ReleaseManagementCmdletTests.cs
new file mode 100644
index 000000000..72ad620f5
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Pipeline/ReleaseManagement/ReleaseManagementCmdletTests.cs
@@ -0,0 +1,48 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Pipeline.ReleaseManagement;
+
+public partial class ReleaseManagementCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetReleaseDefinitionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetReleaseDefinitionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\ReleaseManagement\\GetReleaseDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetReleaseDefinitionFolderCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetReleaseDefinitionFolderCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\ReleaseManagement\\GetReleaseDefinitionFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewReleaseDefinitionFolderCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewReleaseDefinitionFolderCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\ReleaseManagement\\NewReleaseDefinitionFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveReleaseDefinitionFolderCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveReleaseDefinitionFolderCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\ReleaseManagement\\RemoveReleaseDefinitionFolder.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ProcessTemplate/Field/ProcessFieldCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ProcessTemplate/Field/ProcessFieldCmdletTests.cs
new file mode 100644
index 000000000..d00322883
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ProcessTemplate/Field/ProcessFieldCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.ProcessTemplate.Field;
+
+public partial class ProcessFieldCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetProcessFieldDefinitionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetProcessFieldDefinitionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\Field\\GetProcessFieldDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewProcessFieldDefinitionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewProcessFieldDefinitionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\Field\\NewProcessFieldDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveProcessFieldDefinitionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveProcessFieldDefinitionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\Field\\RemoveProcessFieldDefinition.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ProcessTemplate/ProcessTemplateCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ProcessTemplate/ProcessTemplateCmdletTests.cs
new file mode 100644
index 000000000..9e941f436
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ProcessTemplate/ProcessTemplateCmdletTests.cs
@@ -0,0 +1,48 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.ProcessTemplate;
+
+public partial class ProcessTemplateCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetProcessTemplateCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetProcessTemplateCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\GetProcessTemplate.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ExportProcessTemplateCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ExportProcessTemplateCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\ExportProcessTemplate.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ImportProcessTemplateCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ImportProcessTemplateCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\ImportProcessTemplate.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewProcessTemplateCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewProcessTemplateCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\NewProcessTemplate.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/RestApi/RestApiCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/RestApi/RestApiCmdletTests.cs
new file mode 100644
index 000000000..200ef8c91
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/RestApi/RestApiCmdletTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.RestApi;
+
+public partial class RestApiCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_InvokeRestApiCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_InvokeRestApiCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\RestApi\\InvokeRestApi.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetRestClientCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetRestClientCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\RestApi\\GetRestClient.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ServiceHook/ServiceHookCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ServiceHook/ServiceHookCmdletTests.cs
new file mode 100644
index 000000000..a234f4a32
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/ServiceHook/ServiceHookCmdletTests.cs
@@ -0,0 +1,48 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.ServiceHook;
+
+public partial class ServiceHookCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetServiceHookSubscriptionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetServiceHookSubscriptionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ServiceHook\\GetServiceHookSubscription.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetServiceHookNotificationHistoryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetServiceHookNotificationHistoryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ServiceHook\\GetServiceHookNotificationHistory.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetServiceHookPublisherCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetServiceHookPublisherCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ServiceHook\\GetServiceHookPublisher.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetServiceHookConsumerCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetServiceHookConsumerCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ServiceHook\\GetServiceHookConsumer.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Shell/ShellCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Shell/ShellCmdletTests.cs
new file mode 100644
index 000000000..f2c125172
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Shell/ShellCmdletTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Shell;
+
+public partial class ShellCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_EnterShellCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_EnterShellCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Shell\\EnterShell.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ExitShellCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ExitShellCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Shell\\ExitShell.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/Backlog/TeamBacklogCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/Backlog/TeamBacklogCmdletTests.cs
new file mode 100644
index 000000000..57819a561
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/Backlog/TeamBacklogCmdletTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Team.Backlog;
+
+public partial class TeamBacklogCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetTeamBacklogLevelCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamBacklogLevelCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\Backlog\\GetTeamBacklogLevel.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/Board/TeamBoardCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/Board/TeamBoardCmdletTests.cs
new file mode 100644
index 000000000..d02c2b30d
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/Board/TeamBoardCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Team.Board;
+
+public partial class TeamBoardCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetTeamBoardCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamBoardCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\Board\\GetTeamBoard.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamBoardCardRuleCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamBoardCardRuleCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\Board\\GetTeamBoardCardRule.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SetTeamBoardCardRuleCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SetTeamBoardCardRuleCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\Board\\SetTeamBoardCardRule.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/TeamAdmin/TeamAdminCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/TeamAdmin/TeamAdminCmdletTests.cs
new file mode 100644
index 000000000..419b92dea
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/TeamAdmin/TeamAdminCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Team.TeamAdmin;
+
+public partial class TeamAdminCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_AddTeamAdminCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_AddTeamAdminCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamAdmin\\AddTeamAdmin.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamAdminCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamAdminCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamAdmin\\GetTeamAdmin.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamAdminCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamAdminCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamAdmin\\RemoveTeamAdmin.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/TeamCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/TeamCmdletTests.cs
new file mode 100644
index 000000000..281e87823
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/TeamCmdletTests.cs
@@ -0,0 +1,81 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Team;
+
+public partial class TeamCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_ConnectTeamCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ConnectTeamCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\ConnectTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisconnectTeamCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisconnectTeamCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\DisconnectTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\GetTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewTeamCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewTeamCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\NewTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\RemoveTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameTeamCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameTeamCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\RenameTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SetTeamCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SetTeamCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\SetTeam.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/TeamMember/TeamMemberCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/TeamMember/TeamMemberCmdletTests.cs
new file mode 100644
index 000000000..5f205b54a
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Team/TeamMember/TeamMemberCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Team.TeamMember;
+
+public partial class TeamMemberCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_AddTeamMemberCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_AddTeamMemberCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamMember\\AddTeamMember.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamMemberCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamMemberCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamMember\\GetTeamMember.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamMemberCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamMemberCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamMember\\RemoveTeamMember.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProject/Avatar/TeamProjectAvatarCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProject/Avatar/TeamProjectAvatarCmdletTests.cs
new file mode 100644
index 000000000..c34bc30b6
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProject/Avatar/TeamProjectAvatarCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.TeamProject.Avatar;
+
+public partial class TeamProjectAvatarCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_RemoveTeamProjectAvatarCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamProjectAvatarCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\Avatar\\RemoveTeamProjectAvatar.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ExportTeamProjectAvatarCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ExportTeamProjectAvatarCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\Avatar\\ExportTeamProjectAvatar.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ImportTeamProjectAvatarCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ImportTeamProjectAvatarCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\Avatar\\ImportTeamProjectAvatar.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProject/Member/TeamProjectMemberCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProject/Member/TeamProjectMemberCmdletTests.cs
new file mode 100644
index 000000000..2fbaa3bf8
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProject/Member/TeamProjectMemberCmdletTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.TeamProject.Member;
+
+public partial class TeamProjectMemberCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetTeamProjectMemberCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamProjectMemberCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\Member\\GetTeamProjectMember.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProject/TeamProjectCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProject/TeamProjectCmdletTests.cs
new file mode 100644
index 000000000..087b4e3d0
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProject/TeamProjectCmdletTests.cs
@@ -0,0 +1,92 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.TeamProject;
+
+public partial class TeamProjectCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_ConnectTeamProjectCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ConnectTeamProjectCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\ConnectTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisconnectTeamProjectCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisconnectTeamProjectCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\DisconnectTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamProjectCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamProjectCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\GetTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewTeamProjectCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewTeamProjectCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\NewTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamProjectCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamProjectCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\RemoveTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameTeamProjectCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameTeamProjectCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\RenameTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SetTeamProjectCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SetTeamProjectCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\SetTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_UndoTeamProjectRemovalCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_UndoTeamProjectRemovalCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\UndoTeamProjectRemoval.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProjectCollection/TeamProjectCollectionCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProjectCollection/TeamProjectCollectionCmdletTests.cs
new file mode 100644
index 000000000..11e77cace
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TeamProjectCollection/TeamProjectCollectionCmdletTests.cs
@@ -0,0 +1,59 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.TeamProjectCollection;
+
+public partial class TeamProjectCollectionCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_ConnectTeamProjectCollectionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ConnectTeamProjectCollectionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProjectCollection\\ConnectTeamProjectCollection.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisconnectTeamProjectCollectionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisconnectTeamProjectCollectionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProjectCollection\\DisconnectTeamProjectCollection.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamProjectCollectionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamProjectCollectionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProjectCollection\\GetTeamProjectCollection.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewTeamProjectCollectionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewTeamProjectCollectionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProjectCollection\\NewTeamProjectCollection.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamProjectCollectionCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamProjectCollectionCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProjectCollection\\RemoveTeamProjectCollection.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TestManagement/TestManagementCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TestManagement/TestManagementCmdletTests.cs
new file mode 100644
index 000000000..e66c0d7ad
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/TestManagement/TestManagementCmdletTests.cs
@@ -0,0 +1,59 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.TestManagement;
+
+public partial class TestManagementCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetTestPlanCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTestPlanCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TestManagement\\GetTestPlan.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewTestPlanCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewTestPlanCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TestManagement\\NewTestPlan.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTestPlanCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTestPlanCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TestManagement\\RemoveTestPlan.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameTestPlanCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameTestPlanCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TestManagement\\RenameTestPlan.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_CopyTestPlanCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_CopyTestPlanCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TestManagement\\CopyTestPlan.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Wiki/WikiCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Wiki/WikiCmdletTests.cs
new file mode 100644
index 000000000..b49d6b411
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/Wiki/WikiCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.Wiki;
+
+public partial class WikiCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetWikiCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetWikiCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Wiki\\GetWiki.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewWikiCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewWikiCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Wiki\\NewWiki.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveWikiCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveWikiCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Wiki\\RemoveWiki.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/AreasIterations/AreasIterationsCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/AreasIterations/AreasIterationsCmdletTests.cs
new file mode 100644
index 000000000..e8070e84a
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/AreasIterations/AreasIterationsCmdletTests.cs
@@ -0,0 +1,169 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.WorkItem.AreasIterations;
+
+public partial class AreasIterationsCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetAreaCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetAreaCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\GetArea.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewAreaCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewAreaCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\NewArea.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveAreaCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveAreaCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\RemoveArea.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameAreaCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameAreaCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\RenameArea.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_MoveAreaCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_MoveAreaCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\MoveArea.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_CopyAreaCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_CopyAreaCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\CopyArea.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_TestAreaCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_TestAreaCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\TestArea.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetIterationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetIterationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\GetIteration.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewIterationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewIterationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\NewIteration.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveIterationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveIterationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\RemoveIteration.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameIterationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameIterationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\RenameIteration.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_MoveIterationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_MoveIterationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\MoveIteration.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_CopyIterationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_CopyIterationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\CopyIteration.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_TestIterationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_TestIterationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\TestIteration.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SetIterationCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SetIterationCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\AreasIterations\\SetIteration.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/History/WorkItemHistoryCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/History/WorkItemHistoryCmdletTests.cs
new file mode 100644
index 000000000..39e880f3d
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/History/WorkItemHistoryCmdletTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.WorkItem.History;
+
+public partial class WorkItemHistoryCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetWorkItemHistoryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetWorkItemHistoryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\History\\GetWorkItemHistory.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/Linking/WorkItemLinkingCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/Linking/WorkItemLinkingCmdletTests.cs
new file mode 100644
index 000000000..0508d8907
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/Linking/WorkItemLinkingCmdletTests.cs
@@ -0,0 +1,48 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.WorkItem.Linking;
+
+public partial class WorkItemLinkingCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetWorkItemLinkCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetWorkItemLinkCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Linking\\GetWorkItemLink.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_AddWorkItemLinkCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_AddWorkItemLinkCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Linking\\AddWorkItemLink.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetWorkItemLinkEndTypeCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetWorkItemLinkEndTypeCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Linking\\GetWorkItemLinkEndType.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ExportWorkItemAttachmentCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ExportWorkItemAttachmentCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Linking\\ExportWorkItemAttachment.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/Query/WorkItemQueryCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/Query/WorkItemQueryCmdletTests.cs
new file mode 100644
index 000000000..0a16ff247
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/Query/WorkItemQueryCmdletTests.cs
@@ -0,0 +1,103 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.WorkItem.Query;
+
+public partial class WorkItemQueryCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetWorkItemQueryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetWorkItemQueryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Query\\GetWorkItemQuery.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetWorkItemQueryItemControllerCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetWorkItemQueryItemControllerCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Query\\GetWorkItemQueryItemController.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewWorkItemQueryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewWorkItemQueryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Query\\NewWorkItemQuery.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewWorkItemQueryItemControllerCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewWorkItemQueryItemControllerCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Query\\NewWorkItemQueryItemController.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ExportWorkItemQueryCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ExportWorkItemQueryCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Query\\ExportWorkItemQuery.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_UndoWorkItemQueryRemovalCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_UndoWorkItemQueryRemovalCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Query\\UndoWorkItemQueryRemoval.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetWorkItemQueryFolderCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetWorkItemQueryFolderCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Query\\GetWorkItemQueryFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewWorkItemQueryFolderCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewWorkItemQueryFolderCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Query\\NewWorkItemQueryFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_UndoWorkItemQueryFolderRemovalCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_UndoWorkItemQueryFolderRemovalCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Query\\UndoWorkItemQueryFolderRemoval.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/Tagging/WorkItemTaggingCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/Tagging/WorkItemTaggingCmdletTests.cs
new file mode 100644
index 000000000..86cf2db78
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/Tagging/WorkItemTaggingCmdletTests.cs
@@ -0,0 +1,70 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.WorkItem.Tagging;
+
+public partial class WorkItemTaggingCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetWorkItemTagCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetWorkItemTagCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Tagging\\GetWorkItemTag.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewWorkItemTagCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewWorkItemTagCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Tagging\\NewWorkItemTag.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveWorkItemTagCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveWorkItemTagCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Tagging\\RemoveWorkItemTag.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameWorkItemTagCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameWorkItemTagCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Tagging\\RenameWorkItemTag.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_EnableWorkItemTagCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_EnableWorkItemTagCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Tagging\\EnableWorkItemTag.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisableWorkItemTagCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisableWorkItemTagCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\Tagging\\DisableWorkItemTag.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/WorkItemType/WorkItemTypeCmdletTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/WorkItemType/WorkItemTypeCmdletTests.cs
new file mode 100644
index 000000000..662d0d2cc
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Cmdlets/WorkItem/WorkItemType/WorkItemTypeCmdletTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Cmdlets.WorkItem.WorkItemType;
+
+public partial class WorkItemTypeCmdletTests
+{
+ [Fact]
+ public async Task CanGenerate_GetWorkItemTypeCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetWorkItemTypeCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\WorkItemType\\GetWorkItemType.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ExportWorkItemTypeCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ExportWorkItemTypeCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\WorkItemType\\ExportWorkItemType.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ImportWorkItemTypeCmdlet()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ImportWorkItemTypeCmdlet),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\WorkItem\\WorkItemType\\ImportWorkItemType.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Admin/AdminControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Admin/AdminControllerTests.cs
new file mode 100644
index 000000000..eea2327b8
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Admin/AdminControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Admin;
+
+public partial class AdminControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetVersionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetVersionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\GetVersion.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetConfigurationServerConnectionStringController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetConfigurationServerConnectionStringController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\GetConfigurationServerConnectionString.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetInstallationPathController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetInstallationPathController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\GetInstallationPath.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Admin/Registry/RegistryControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Admin/Registry/RegistryControllerTests.cs
new file mode 100644
index 000000000..c47a80025
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Admin/Registry/RegistryControllerTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Admin.Registry;
+
+public partial class RegistryControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetRegistryValueController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetRegistryValueController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\Registry\\GetRegistryValue.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SetRegistryValueController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SetRegistryValueController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Admin\\Registry\\SetRegistryValue.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Artifact/ArtifactControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Artifact/ArtifactControllerTests.cs
new file mode 100644
index 000000000..30ddba51f
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Artifact/ArtifactControllerTests.cs
@@ -0,0 +1,48 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Artifact;
+
+public partial class ArtifactControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetArtifactController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetArtifactController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Artifact\\GetArtifact.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetArtifactFeedController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetArtifactFeedController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Artifact\\GetArtifactFeed.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetArtifactFeedViewController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetArtifactFeedViewController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Artifact\\GetArtifactFeedView.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetArtifactVersionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetArtifactVersionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Artifact\\GetArtifactVersion.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Credential/CredentialControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Credential/CredentialControllerTests.cs
new file mode 100644
index 000000000..17668646e
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Credential/CredentialControllerTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Credential;
+
+public partial class CredentialControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_NewCredentialController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewCredentialController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Credential\\NewCredential.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ExtensionManagement/ExtensionManagementControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ExtensionManagement/ExtensionManagementControllerTests.cs
new file mode 100644
index 000000000..24b7b78b9
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ExtensionManagement/ExtensionManagementControllerTests.cs
@@ -0,0 +1,59 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.ExtensionManagement;
+
+public partial class ExtensionManagementControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetExtensionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetExtensionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\GetExtension.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_InstallExtensionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_InstallExtensionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\InstallExtension.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_UninstallExtensionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_UninstallExtensionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\UninstallExtension.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_EnableExtensionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_EnableExtensionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\EnableExtension.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisableExtensionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisableExtensionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ExtensionManagement\\DisableExtension.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Branch/BranchControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Branch/BranchControllerTests.cs
new file mode 100644
index 000000000..68d87fa7a
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Branch/BranchControllerTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Git.Branch;
+
+public partial class BranchControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitBranchController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitBranchController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Branch\\GetGitBranch.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveGitBranchController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveGitBranchController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Branch\\RemoveGitBranch.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Commit/CommitControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Commit/CommitControllerTests.cs
new file mode 100644
index 000000000..06bfe63b2
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Commit/CommitControllerTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Git.Commit;
+
+public partial class CommitControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitCommitController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitCommitController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Commit\\GetGitCommit.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/GitControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/GitControllerTests.cs
new file mode 100644
index 000000000..514ff2740
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/GitControllerTests.cs
@@ -0,0 +1,70 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Git;
+
+public partial class GitControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitRepositoryController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitRepositoryController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\GetGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewGitRepositoryController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewGitRepositoryController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\NewGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveGitRepositoryController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveGitRepositoryController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\RemoveGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameGitRepositoryController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameGitRepositoryController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\RenameGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_EnableGitRepositoryController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_EnableGitRepositoryController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\EnableGitRepository.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisableGitRepositoryController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisableGitRepositoryController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\DisableGitRepository.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Item/ItemControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Item/ItemControllerTests.cs
new file mode 100644
index 000000000..2bc31c344
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Item/ItemControllerTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Git.Item;
+
+public partial class ItemControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitItemController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitItemController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Item\\GetGitItem.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Policy/PolicyControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Policy/PolicyControllerTests.cs
new file mode 100644
index 000000000..c49a32552
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Git/Policy/PolicyControllerTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Git.Policy;
+
+public partial class PolicyControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGitBranchPolicyController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitBranchPolicyController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Policy\\GetGitBranchPolicy.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetGitPolicyTypeController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGitPolicyTypeController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Git\\Policy\\GetGitPolicyType.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Identity/Group/GroupControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Identity/Group/GroupControllerTests.cs
new file mode 100644
index 000000000..e017ac32d
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Identity/Group/GroupControllerTests.cs
@@ -0,0 +1,70 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Identity.Group;
+
+public partial class GroupControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetGroupController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGroupController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\GetGroup.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewGroupController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewGroupController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\NewGroup.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveGroupController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveGroupController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\RemoveGroup.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetGroupMemberController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetGroupMemberController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\GetGroupMember.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_AddGroupMemberController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_AddGroupMemberController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\AddGroupMember.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveGroupMemberController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveGroupMemberController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\Group\\RemoveGroupMember.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Identity/IdentityControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Identity/IdentityControllerTests.cs
new file mode 100644
index 000000000..dbfe01081
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Identity/IdentityControllerTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Identity;
+
+public partial class IdentityControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetIdentityController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetIdentityController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\GetIdentity.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Identity/User/UserControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Identity/User/UserControllerTests.cs
new file mode 100644
index 000000000..bb1056be7
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Identity/User/UserControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Identity.User;
+
+public partial class UserControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetUserController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetUserController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\User\\GetUser.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewUserController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewUserController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\User\\NewUser.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveUserController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveUserController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Identity\\User\\RemoveUser.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Organization/OrganizationControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Organization/OrganizationControllerTests.cs
new file mode 100644
index 000000000..e6f487da4
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Organization/OrganizationControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Organization;
+
+public partial class OrganizationControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_ConnectOrganizationController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ConnectOrganizationController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Organization\\ConnectOrganization.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisconnectOrganizationController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisconnectOrganizationController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Organization\\DisconnectOrganization.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetOrganizationController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetOrganizationController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Organization\\GetOrganization.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/Build/Definition/DefinitionControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/Build/Definition/DefinitionControllerTests.cs
new file mode 100644
index 000000000..896e56c50
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/Build/Definition/DefinitionControllerTests.cs
@@ -0,0 +1,59 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Pipeline.Build.Definition;
+
+public partial class DefinitionControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetBuildDefinitionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetBuildDefinitionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\GetBuildDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisableBuildDefinitionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisableBuildDefinitionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\DisableBuildDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_EnableBuildDefinitionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_EnableBuildDefinitionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\EnableBuildDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ResumeBuildDefinitionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ResumeBuildDefinitionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\ResumeBuildDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SuspendBuildDefinitionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SuspendBuildDefinitionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Definition\\SuspendBuildDefinition.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/Build/Folder/FolderControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/Build/Folder/FolderControllerTests.cs
new file mode 100644
index 000000000..fbfa33d27
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/Build/Folder/FolderControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Pipeline.Build.Folder;
+
+public partial class FolderControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetBuildDefinitionFolderController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetBuildDefinitionFolderController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Folder\\GetBuildDefinitionFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewBuildDefinitionFolderController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewBuildDefinitionFolderController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Folder\\NewBuildDefinitionFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveBuildDefinitionFolderController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveBuildDefinitionFolderController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\Folder\\RemoveBuildDefinitionFolder.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/PipelineControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/PipelineControllerTests.cs
new file mode 100644
index 000000000..d851fb953
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/PipelineControllerTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Pipeline;
+
+public partial class PipelineControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_StartBuildController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_StartBuildController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\Build\\StartBuild.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/ReleaseManagement/ReleaseManagementControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/ReleaseManagement/ReleaseManagementControllerTests.cs
new file mode 100644
index 000000000..66e4b3767
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Pipeline/ReleaseManagement/ReleaseManagementControllerTests.cs
@@ -0,0 +1,48 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Pipeline.ReleaseManagement;
+
+public partial class ReleaseManagementControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetReleaseDefinitionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetReleaseDefinitionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\ReleaseManagement\\GetReleaseDefinition.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetReleaseDefinitionFolderController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetReleaseDefinitionFolderController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\ReleaseManagement\\GetReleaseDefinitionFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewReleaseDefinitionFolderController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewReleaseDefinitionFolderController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\ReleaseManagement\\NewReleaseDefinitionFolder.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveReleaseDefinitionFolderController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveReleaseDefinitionFolderController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Pipeline\\ReleaseManagement\\RemoveReleaseDefinitionFolder.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ProcessTemplate/Field/FieldControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ProcessTemplate/Field/FieldControllerTests.cs
new file mode 100644
index 000000000..6582828ac
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ProcessTemplate/Field/FieldControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.ProcessTemplate.Field;
+
+public partial class FieldControllerTests
+{
+ //[Fact]
+ //public async Task CanGenerate_GetProcessFieldDefinitionController()
+ //{
+ // await TestHelper.VerifyFiles(
+ // nameof(CanGenerate_GetProcessFieldDefinitionController),
+ // new[]
+ // {
+ // "TfsCmdlets\\Cmdlets\\ProcessTemplate\\Field\\GetProcessFieldDefinition.cs"
+ // });
+ //}
+
+ //[Fact]
+ //public async Task CanGenerate_NewProcessFieldDefinitionController()
+ //{
+ // await TestHelper.VerifyFiles(
+ // nameof(CanGenerate_NewProcessFieldDefinitionController),
+ // new[]
+ // {
+ // "TfsCmdlets\\Cmdlets\\ProcessTemplate\\Field\\NewProcessFieldDefinition.cs"
+ // });
+ //}
+
+ [Fact]
+ public async Task CanGenerate_RemoveProcessFieldDefinitionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveProcessFieldDefinitionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\Field\\RemoveProcessFieldDefinition.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ProcessTemplate/ProcessTemplateControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ProcessTemplate/ProcessTemplateControllerTests.cs
new file mode 100644
index 000000000..0f29b78d5
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ProcessTemplate/ProcessTemplateControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.ProcessTemplate;
+
+public partial class ProcessTemplateControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_ExportProcessTemplateController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ExportProcessTemplateController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\ExportProcessTemplate.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetProcessTemplateController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetProcessTemplateController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\GetProcessTemplate.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ImportProcessTemplateController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ImportProcessTemplateController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ProcessTemplate\\ImportProcessTemplate.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/RestApi/RestApiControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/RestApi/RestApiControllerTests.cs
new file mode 100644
index 000000000..ff4f1cc48
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/RestApi/RestApiControllerTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.RestApi;
+
+public partial class RestApiControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetRestClientController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetRestClientController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\RestApi\\GetRestClient.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_InvokeRestApiController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_InvokeRestApiController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\RestApi\\InvokeRestApi.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ServiceHook/ServiceHookControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ServiceHook/ServiceHookControllerTests.cs
new file mode 100644
index 000000000..8bdfab834
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/ServiceHook/ServiceHookControllerTests.cs
@@ -0,0 +1,48 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.ServiceHook;
+
+public partial class ServiceHookControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetServiceHookConsumerController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetServiceHookConsumerController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ServiceHook\\GetServiceHookConsumer.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetServiceHookNotificationHistoryController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetServiceHookNotificationHistoryController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ServiceHook\\GetServiceHookNotificationHistory.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetServiceHookPublisherController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetServiceHookPublisherController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ServiceHook\\GetServiceHookPublisher.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetServiceHookSubscriptionController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetServiceHookSubscriptionController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\ServiceHook\\GetServiceHookSubscription.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Shell/ShellControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Shell/ShellControllerTests.cs
new file mode 100644
index 000000000..52a39a57d
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Shell/ShellControllerTests.cs
@@ -0,0 +1,26 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Shell;
+
+public partial class ShellControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_EnterShellController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_EnterShellController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Shell\\EnterShell.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ExitShellController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ExitShellController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Shell\\ExitShell.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/Backlog/BacklogControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/Backlog/BacklogControllerTests.cs
new file mode 100644
index 000000000..cef0ff90e
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/Backlog/BacklogControllerTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Team.Backlog;
+
+public partial class BacklogControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetTeamBacklogLevelController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamBacklogLevelController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\Backlog\\GetTeamBacklogLevel.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/Board/BoardControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/Board/BoardControllerTests.cs
new file mode 100644
index 000000000..31614ce55
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/Board/BoardControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Team.Board;
+
+public partial class BoardControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetTeamBoardController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamBoardController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\Board\\GetTeamBoard.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamBoardCardRuleController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamBoardCardRuleController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\Board\\GetTeamBoardCardRule.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SetTeamBoardCardRuleController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SetTeamBoardCardRuleController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\Board\\SetTeamBoardCardRule.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/TeamAdmin/TeamAdminControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/TeamAdmin/TeamAdminControllerTests.cs
new file mode 100644
index 000000000..570d7d67f
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/TeamAdmin/TeamAdminControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Team.TeamAdmin;
+
+public partial class TeamAdminControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_AddTeamAdminController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_AddTeamAdminController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamAdmin\\AddTeamAdmin.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamAdminController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamAdminController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamAdmin\\GetTeamAdmin.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamAdminController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamAdminController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamAdmin\\RemoveTeamAdmin.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/TeamControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/TeamControllerTests.cs
new file mode 100644
index 000000000..68b2531a8
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/TeamControllerTests.cs
@@ -0,0 +1,81 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Team;
+
+public partial class TeamControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_ConnectTeamController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ConnectTeamController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\ConnectTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisconnectTeamController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisconnectTeamController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\DisconnectTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\GetTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewTeamController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewTeamController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\NewTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\RemoveTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameTeamController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameTeamController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\RenameTeam.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SetTeamController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_SetTeamController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\SetTeam.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/TeamMember/TeamMemberControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/TeamMember/TeamMemberControllerTests.cs
new file mode 100644
index 000000000..64df2bab2
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/Team/TeamMember/TeamMemberControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.Team.TeamMember;
+
+public partial class TeamMemberControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_AddTeamMemberController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_AddTeamMemberController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamMember\\AddTeamMember.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamMemberController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamMemberController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamMember\\GetTeamMember.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamMemberController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamMemberController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\Team\\TeamMember\\RemoveTeamMember.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/TeamProject/Avatar/AvatarControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/TeamProject/Avatar/AvatarControllerTests.cs
new file mode 100644
index 000000000..50c95c033
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/TeamProject/Avatar/AvatarControllerTests.cs
@@ -0,0 +1,37 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.TeamProject.Avatar;
+
+public partial class AvatarControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_ExportTeamProjectAvatarController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ExportTeamProjectAvatarController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\Avatar\\ExportTeamProjectAvatar.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_ImportTeamProjectAvatarController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ImportTeamProjectAvatarController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\Avatar\\ImportTeamProjectAvatar.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamProjectAvatarController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamProjectAvatarController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\Avatar\\RemoveTeamProjectAvatar.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/TeamProject/Member/MemberControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/TeamProject/Member/MemberControllerTests.cs
new file mode 100644
index 000000000..a7681a2f2
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/TeamProject/Member/MemberControllerTests.cs
@@ -0,0 +1,15 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.TeamProject.Member;
+
+public partial class MemberControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_GetTeamProjectMemberController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamProjectMemberController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\Member\\GetTeamProjectMember.cs"
+ });
+ }
+}
\ No newline at end of file
diff --git a/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/TeamProject/TeamProjectControllerTests.cs b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/TeamProject/TeamProjectControllerTests.cs
new file mode 100644
index 000000000..c41845fc4
--- /dev/null
+++ b/CSharp/TfsCmdlets.SourceGenerators.UnitTests/Controllers/TeamProject/TeamProjectControllerTests.cs
@@ -0,0 +1,92 @@
+namespace TfsCmdlets.SourceGenerators.UnitTests.Controllers.TeamProject;
+
+public partial class TeamProjectControllerTests
+{
+ [Fact]
+ public async Task CanGenerate_ConnectTeamProjectController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_ConnectTeamProjectController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\ConnectTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_DisconnectTeamProjectController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_DisconnectTeamProjectController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\DisconnectTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_GetTeamProjectController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_GetTeamProjectController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\GetTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_NewTeamProjectController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_NewTeamProjectController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\NewTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RemoveTeamProjectController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RemoveTeamProjectController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\RemoveTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_RenameTeamProjectController()
+ {
+ await TestHelper.VerifyFiles(
+ nameof(CanGenerate_RenameTeamProjectController),
+ new[]
+ {
+ "TfsCmdlets\\Cmdlets\\TeamProject\\RenameTeamProject.cs"
+ });
+ }
+
+ [Fact]
+ public async Task CanGenerate_SetTeamProjectController()
+ {
+ await TestHelper.VerifyFiles