Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class PackageInfoContractTests
[TearDown]
public void TearDown() => _tempRoot.Dispose();

private (string packagePath, GitHelper gitHelper, IOutputHelper, IProcessHelper, IPowershellHelper, IMicroagentHostService, INpxHelper, ICommonValidationHelpers) CreateSdkPackage(string service, string package)
private (string packagePath, GitHelper gitHelper, IOutputHelper, IProcessHelper, IPowershellHelper, IMicroagentHostService, INpxHelper, IPythonHelper, ICommonValidationHelpers) CreateSdkPackage(string service, string package)
{
var repoRoot = Path.Combine(_tempRoot.DirectoryPath, "azure-sdk-repo-root");
Directory.CreateDirectory(repoRoot);
Expand All @@ -41,9 +41,10 @@ public class PackageInfoContractTests
var gitHelper = new GitHelper(ghMock.Object, new TestLogger<GitHelper>());
var microAgentMock = new Mock<IMicroagentHostService>();
var npxHelperMock = new Mock<INpxHelper>();
var pythonHelperMock = new Mock<IPythonHelper>();
var commonValidationHelper = new Mock<ICommonValidationHelpers>();

return (sdkPath, gitHelper, outputMock.Object, processHelperMock.Object, powershellMock.Object, microAgentMock.Object, npxHelperMock.Object, commonValidationHelper.Object);
return (sdkPath, gitHelper, outputMock.Object, processHelperMock.Object, powershellMock.Object, microAgentMock.Object, npxHelperMock.Object, pythonHelperMock.Object, commonValidationHelper.Object);
}

private void CreateTestFile(string packagePath, string relativePath, string content)
Expand Down Expand Up @@ -119,8 +120,8 @@ public async Task CommonProperties_AreDerivedCorrectly(SdkLanguage language)
var service = language == SdkLanguage.Go ? "keyvault" : "storage";
var package = language switch { SdkLanguage.DotNet => "Azure.Storage.Blobs", SdkLanguage.Java => "azure-storage-blob", SdkLanguage.Go => "azkeys", _ => "storage-blob" };
var servicePath = language == SdkLanguage.Go ? Path.Combine(group, service) : service;
var (pkgPath, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, commonValidationHelper) = CreateSdkPackage(servicePath, package);
var helper = CreateHelperForLanguage(language, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, commonValidationHelper);
var (pkgPath, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, pythonHelper, commonValidationHelper) = CreateSdkPackage(servicePath, package);
var helper = CreateHelperForLanguage(language, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, pythonHelper, commonValidationHelper);
var info = await helper.GetPackageInfo(pkgPath);

Assert.Multiple(() =>
Expand All @@ -144,11 +145,11 @@ public async Task CommonProperties_AreDerivedCorrectly(SdkLanguage language)
public async Task VersionParsing_Works(SdkLanguage language, string package, string expectedVersion)
{
var servicePath = language == SdkLanguage.Go ? "security/keyvault" : "ai";
var (pkgPath, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, commonValidationHelper) = CreateSdkPackage(servicePath, package);
var (pkgPath, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, pythonHelper, commonValidationHelper) = CreateSdkPackage(servicePath, package);

SetupPackageForLanguage(language, pkgPath, package, expectedVersion);

var helper = CreateHelperForLanguage(language, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, commonValidationHelper);
var helper = CreateHelperForLanguage(language, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, pythonHelper, commonValidationHelper);
var info = await helper.GetPackageInfo(pkgPath);
Assert.That(info.PackageVersion, Is.EqualTo(expectedVersion));
}
Expand All @@ -162,19 +163,19 @@ public async Task VersionParsing_Works(SdkLanguage language, string package, str
public async Task VersionParsing_MissingFile_ReturnsNull(SdkLanguage language, string package)
{
var servicePath = language == SdkLanguage.Go ? "security/keyvault" : "missing";
var (pkgPath, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, commonValidationHelper) = CreateSdkPackage(servicePath, package);
var helper = CreateHelperForLanguage(language, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, commonValidationHelper);
var (pkgPath, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, pythonHelper, commonValidationHelper) = CreateSdkPackage(servicePath, package);
var helper = CreateHelperForLanguage(language, gitHelper, outputHelper, processHelper, powershellHelper, microAgentMock, npxHelper, pythonHelper, commonValidationHelper);
var info = await helper.GetPackageInfo(pkgPath);
Assert.That(info.PackageVersion, Is.Null);
}

private static LanguageService CreateHelperForLanguage(SdkLanguage language, IGitHelper gitHelper, IOutputHelper outputHelper, IProcessHelper processHelper, IPowershellHelper powershellHelper, IMicroagentHostService microAgentMock, INpxHelper npxHelper, ICommonValidationHelpers commonValidationHelper) => language switch
private static LanguageService CreateHelperForLanguage(SdkLanguage language, IGitHelper gitHelper, IOutputHelper outputHelper, IProcessHelper processHelper, IPowershellHelper powershellHelper, IMicroagentHostService microAgentMock, INpxHelper npxHelper, IPythonHelper pythonHelper, ICommonValidationHelpers commonValidationHelper) => language switch
{
///var powershellHelper = new Mock<IPowershellHelper>();

SdkLanguage.DotNet => new DotnetLanguageService(processHelper, powershellHelper, gitHelper, new TestLogger<DotnetLanguageService>(), commonValidationHelper),
SdkLanguage.Java => new JavaLanguageService(processHelper, gitHelper, new Mock<IMavenHelper>().Object, microAgentMock, new TestLogger<JavaLanguageService>(), commonValidationHelper),
SdkLanguage.Python => new PythonLanguageService(processHelper, npxHelper, gitHelper, new TestLogger<PythonLanguageService>(), commonValidationHelper),
SdkLanguage.Python => new PythonLanguageService(processHelper, pythonHelper, npxHelper, gitHelper, new TestLogger<PythonLanguageService>(), commonValidationHelper),
SdkLanguage.JavaScript => new JavaScriptLanguageService(processHelper, npxHelper, gitHelper, new TestLogger<JavaScriptLanguageService>(), commonValidationHelper),
SdkLanguage.Go => new GoLanguageService(processHelper, npxHelper, gitHelper, new TestLogger<GoLanguageService>(), commonValidationHelper),
_ => throw new ArgumentException($"Unsupported language '{language}'", nameof(language))
Expand Down
Loading