Skip to content

Commit

Permalink
updated requested changes
Browse files Browse the repository at this point in the history
  • Loading branch information
ragavareddychalapala committed Feb 5, 2025
1 parent bc3eeee commit 4aad973
Show file tree
Hide file tree
Showing 9 changed files with 216 additions and 155 deletions.
94 changes: 2 additions & 92 deletions src/AritfactoryUploader.UTest/JfrogRepoUpdaterTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,97 +41,7 @@ public async Task GetJfrogRepoInfoForAllTypePackages_GivenDestRepoNames_ReturnsA
// Assert
Assert.That(actualAqlResultList.Count, Is.GreaterThan(2));
}

[Test]
[TestCase("NPM", ".tgz")]
[TestCase("NUGET", ".nupkg")]
[TestCase("MAVEN", ".jar")]
[TestCase("DEBIAN", ".deb")]
[TestCase("POETRY", ".whl")]
[TestCase("CONAN", "package.tgz")]
public void GetPkgeNameExtensionBasedOnComponentType_GivenType_ReturnsPkgNameExtension(string type, string extension)
{
// Arrange
var package = new ComponentsToArtifactory();
package.ComponentType = type;
// Act
var actualExtension = JfrogRepoUpdater.GetPackageNameExtensionBasedOnComponentType(package);
// Assert
Assert.AreEqual(extension, actualExtension);
}
[Test]
public void GetUploadPackageDetails_CoversAllScenarios()
{
// Arrange
DisplayPackagesInfo displayPackagesInfo = new DisplayPackagesInfo()
{
JfrogFoundPackagesConan = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesMaven = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesNpm = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesNuget = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesPython = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesDebian = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
}
};

// Act
List<ComponentsToArtifactory> uploadedPackages = JfrogRepoUpdater.GetUploadePackageDetails(displayPackagesInfo);

// Assert
Assert.AreEqual(6, uploadedPackages.Count);
}


}
}
18 changes: 17 additions & 1 deletion src/AritfactoryUploader.UTest/PackageUploadHelperTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,23 @@ public void GetComponentListFromComparisonBOM_GivenComparisonBOM_ReturnsComponen
// Assert
Assert.That(6, Is.EqualTo(componentList.Components.Count), "Checks for no of components");
}

[Test]
[TestCase("NPM", ".tgz")]
[TestCase("NUGET", ".nupkg")]
[TestCase("MAVEN", ".jar")]
[TestCase("DEBIAN", ".deb")]
[TestCase("POETRY", ".whl")]
[TestCase("CONAN", "package.tgz")]
public void GetPkgeNameExtensionBasedOnComponentType_GivenType_ReturnsPkgNameExtension(string type, string extension)
{
// Arrange
var package = new ComponentsToArtifactory();
package.ComponentType = type;
// Act
var actualExtension = PackageUploadHelper.GetPackageNameExtensionBasedOnComponentType(package);
// Assert
Assert.AreEqual(extension, actualExtension);
}
[Test]
public void GetComponentListFromComparisonBOM_GivenInvalidComparisonBOM_ReturnsException()
{
Expand Down
76 changes: 76 additions & 0 deletions src/AritfactoryUploader.UTest/PackageUploadInformationTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,89 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace AritfactoryUploader.UTest
{
public class PackageUploadInformationTest
{
[Test]
public void GetUploadPackageDetails_CoversAllScenarios()
{
// Arrange
DisplayPackagesInfo displayPackagesInfo = new DisplayPackagesInfo()
{
JfrogFoundPackagesConan = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesMaven = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesNpm = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesNuget = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesPython = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
},
JfrogFoundPackagesDebian = new List<ComponentsToArtifactory>()
{
new ComponentsToArtifactory()
{
ResponseMessage = new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK
}
}
}
};

// Act
List<ComponentsToArtifactory> uploadedPackages = PackageUploadInformation.GetUploadePackageDetails(displayPackagesInfo);

// Assert
Assert.AreEqual(6, uploadedPackages.Count);
}
[Test]
public void GetNotApprovedDebianPackages_CoversAllScenarios()
{
Expand Down
24 changes: 24 additions & 0 deletions src/ArtifactoryUploader/ArtifactoryUploader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
using log4net;
using System;
using System.Configuration;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Reflection;
Expand Down Expand Up @@ -117,6 +118,29 @@ async Task<AqlResult> TryGetPackageInfo(ComponentsToArtifactory component)

return packageInfo;
}
public static string GettPathForArtifactoryUpload()
{
string localPathforartifactory = string.Empty;
try
{
String Todaysdate = DateTime.Now.ToString("dd-MM-yyyy_ss");
localPathforartifactory = $"{Directory.GetParent(Directory.GetCurrentDirectory())}\\ClearingTool\\ArtifactoryFiles\\{Todaysdate}\\";
if (!Directory.Exists(localPathforartifactory))
{
localPathforartifactory = Directory.CreateDirectory(localPathforartifactory).ToString();
}
}
catch (IOException ex)
{
Logger.Error($"GettPathForArtifactoryUpload() ", ex);
}
catch (UnauthorizedAccessException ex)
{
Logger.Error($"GettPathForArtifactoryUpload() ", ex);
}

return localPathforartifactory;
}

}
}
36 changes: 3 additions & 33 deletions src/ArtifactoryUploader/JfrogRepoUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static async Task<Bom> UpdateJfrogRepoPathForSucessfullyUploadedItems(Bom
DisplayPackagesInfo displayPackagesInfo)
{
// Get details of sucessfully uploaded packages
List<ComponentsToArtifactory> uploadedPackages = GetUploadePackageDetails(displayPackagesInfo);
List<ComponentsToArtifactory> uploadedPackages = PackageUploadInformation.GetUploadePackageDetails(displayPackagesInfo);

// Get the details of all the dest repo names from jfrog at once
List<string> destRepoNames = uploadedPackages.Select(x => x.DestRepoName)?.Distinct()?.ToList() ?? new List<string>();
Expand All @@ -52,7 +52,7 @@ private static List<Component> UpdateJfroRepoPathProperty(Bom m_ComponentsInBOM,
if (package == null) { continue; }

// get jfrog details of a component from the aqlresult set
string packageNameEXtension = GetPackageNameExtensionBasedOnComponentType(package);
string packageNameEXtension = PackageUploadHelper.GetPackageNameExtensionBasedOnComponentType(package);
AqlResult jfrogData = GetJfrogInfoOfThePackageUploaded(jfrogPackagesListAql, package, packageNameEXtension);

// if package not exists in jfrog list move to nect item in the loop
Expand Down Expand Up @@ -103,37 +103,7 @@ private static AqlResult GetJfrogInfoOfThePackageUploaded(List<AqlResult> jfrogP
return jfrogPackagesListAql.FirstOrDefault(x => x.Path.Contains(package.Name)
&& x.Name.Contains(package.Version)
&& x.Name.Contains(packageNameEXtension));
}
public static string GetPackageNameExtensionBasedOnComponentType(ComponentsToArtifactory package)
{
string packageNameEXtension = string.Empty;
if (package.ComponentType.Equals("NPM", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".tgz";
}
if (package.ComponentType.Equals("NUGET", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".nupkg";
}
if (package.ComponentType.Equals("MAVEN", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".jar";
}
if (package.ComponentType.Equals("DEBIAN", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".deb";
}
if (package.ComponentType.Equals("POETRY", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".whl";
}
if (package.ComponentType.Equals("CONAN", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = "package.tgz";
}

return packageNameEXtension;
}
}

public static async Task<List<AqlResult>> GetJfrogRepoInfoForAllTypePackages(List<string> destRepoNames)
{
Expand Down
35 changes: 32 additions & 3 deletions src/ArtifactoryUploader/PackageUploadHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public static Bom GetComponentListFromComparisonBOM(string comparisionBomFilePat
catch (JsonReaderException ex)
{

Logger.Error($"Exception occured in reading the comparison BOM: {ex}");
Logger.Error($"Exception occurred in reading the comparison BOM: {ex}");
throw new JsonReaderException();

}
Expand Down Expand Up @@ -226,8 +226,8 @@ public static async Task UploadingThePackages(List<ComponentsToArtifactory> comp

if (SetWarningCode)
{
PipelineArtifactUploader.UploadArtifacts();
Environment.ExitCode = 2;
EnvironmentHelper environmentHelper = new EnvironmentHelper();
environmentHelper.CallEnvironmentExit(2);
Logger.Debug("Setting ExitCode to 2");
}

Expand Down Expand Up @@ -296,7 +296,36 @@ private static async Task SourceRepoFoundToUploadArtifactory(PackageType package
// do nothing
}
}
public static string GetPackageNameExtensionBasedOnComponentType(ComponentsToArtifactory package)
{
string packageNameEXtension = string.Empty;
if (package.ComponentType.Equals("NPM", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".tgz";
}
if (package.ComponentType.Equals("NUGET", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".nupkg";
}
if (package.ComponentType.Equals("MAVEN", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".jar";
}
if (package.ComponentType.Equals("DEBIAN", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".deb";
}
if (package.ComponentType.Equals("POETRY", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = ".whl";
}
if (package.ComponentType.Equals("CONAN", StringComparison.OrdinalIgnoreCase))
{
packageNameEXtension = "package.tgz";
}

return packageNameEXtension;
}
public static IJFrogApiCommunication GetJfrogApiCommInstance(ComponentsToArtifactory component, int timeout)
{

Expand Down
Loading

0 comments on commit 4aad973

Please sign in to comment.