Skip to content

Commit

Permalink
Artifact Upload and registration did not return catalog ID
Browse files Browse the repository at this point in the history
  • Loading branch information
janstaelensskyline committed Oct 31, 2024
1 parent 66c6b6a commit b7a9478
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 1 deletion.
2 changes: 1 addition & 1 deletion CICD.Tools.CatalogUpload.Lib/CatalogArtifact.cs
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ public async Task<ArtifactUploadResult> UploadAndRegisterAsync(string dmCatalogT
await RegisterAsync(dmCatalogToken).ConfigureAwait(false);

var uploadResult = await catalogService.UploadVersionAsync(packageData, fs.Path.GetFileName(PathToArtifact), dmCatalogToken, metaData.CatalogIdentifier, metaData.Version.Value, metaData.Version.VersionDescription, cts.Token).ConfigureAwait(false);

_logger.LogInformation(JsonConvert.SerializeObject(uploadResult));
return uploadResult;
}

Expand Down
87 changes: 87 additions & 0 deletions CICD.Tools.CatalogUpload.LibTests/CatalogArtifactTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@

using Moq;

using Newtonsoft.Json;

using Skyline.DataMiner.CICD.FileSystem;
using Skyline.DataMiner.CICD.Tools.CatalogUpload.Lib;

Expand Down Expand Up @@ -257,5 +259,90 @@ public async Task UploadAsyncTest_ProvidedTokenEnvironment()
Environment.SetEnvironmentVariable("DATAMINER_CATALOG_TOKEN", originalKey);
}
}

[TestMethod]
public async Task VolatileUploadAsync_ShouldLogInformation_WhenCalled()
{
// Arrange
string pathToArtifact = "testPath";
var fakeService = new Mock<ICatalogService>();
var fakeFileSystem = new Mock<IFileSystem>();
var uploadResult = new ArtifactUploadResult { ArtifactId = "10" };
fakeFileSystem.Setup(fs => fs.File.ReadAllBytes(It.IsAny<string>())).Returns(Array.Empty<byte>());
fakeService
.Setup(service => service.VolatileArtifactUploadAsync(It.IsAny<byte[]>(), It.IsAny<string>(), It.IsAny<CatalogMetaData>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(uploadResult);

fakeFileSystem.Setup(fs => fs.Path.GetFileName(pathToArtifact)).Returns(pathToArtifact);

CatalogMetaData metaData = new CatalogMetaData
{
CatalogIdentifier = "123",
ContentType = "DMScript",
SourceCodeUri = "uniqueIdentifier",
Name = "Name",
Version = new CatalogVersionMetaData { Value = "1.0.0.1-alpha" }
};
CatalogArtifact artifactModel = new CatalogArtifact(pathToArtifact, fakeService.Object, fakeFileSystem.Object, logger, metaData);

// Act
var result = await artifactModel.VolatileUploadAsync("dummyToken");

// Assert
result.Should().Be(uploadResult);
fakeLogger.Verify(
logger => logger.Log(
LogLevel.Information,
It.IsAny<EventId>(),
It.Is<It.IsAnyType>((v, t) => v.ToString().Contains(JsonConvert.SerializeObject(uploadResult))),
It.IsAny<Exception>(),
(Func<It.IsAnyType, Exception, string>)It.IsAny<object>()),
Times.Once);
}

[TestMethod]
public async Task UploadAndRegisterAsync_ShouldLogInformation_WhenCalled()
{
// Arrange
string pathToArtifact = "testPath";
var fakeService = new Mock<ICatalogService>();
var fakeFileSystem = new Mock<IFileSystem>();
var uploadResult = new ArtifactUploadResult { ArtifactId = "10" };
fakeFileSystem.Setup(fs => fs.File.ReadAllBytes(It.IsAny<string>())).Returns(Array.Empty<byte>());
fakeService
.Setup(service => service.RegisterCatalogAsync(It.IsAny<byte[]>(), It.IsAny<string>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(uploadResult);
fakeService
.Setup(service => service.UploadVersionAsync(It.IsAny<byte[]>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(uploadResult);

fakeFileSystem.Setup(fs => fs.Path.GetFileName(pathToArtifact)).Returns(pathToArtifact);

CatalogMetaData metaData = new CatalogMetaData
{
CatalogIdentifier = "123",
ContentType = "DMScript",
SourceCodeUri = "uniqueIdentifier",
Name = "Name",
Version = new CatalogVersionMetaData { Value = "1.0.0.1-alpha" }
};
CatalogArtifact artifactModel = new CatalogArtifact(pathToArtifact, fakeService.Object, fakeFileSystem.Object, logger, metaData);

// Act
var result = await artifactModel.UploadAndRegisterAsync("dummyToken");

// Assert
result.Should().Be(uploadResult);
fakeLogger.Verify(
logger => logger.Log(
LogLevel.Information,
It.IsAny<EventId>(),
It.Is<It.IsAnyType>((v, t) => v.ToString().Contains(JsonConvert.SerializeObject(uploadResult))),
It.IsAny<Exception>(),
(Func<It.IsAnyType, Exception, string>)It.IsAny<object>()),
Times.Once);

}

}
}

0 comments on commit b7a9478

Please sign in to comment.