diff --git a/CICD.Tools.CatalogUpload.Lib/CatalogArtifact.cs b/CICD.Tools.CatalogUpload.Lib/CatalogArtifact.cs index f0eb90b..ac02570 100644 --- a/CICD.Tools.CatalogUpload.Lib/CatalogArtifact.cs +++ b/CICD.Tools.CatalogUpload.Lib/CatalogArtifact.cs @@ -153,7 +153,7 @@ public async Task 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; } diff --git a/CICD.Tools.CatalogUpload.LibTests/CatalogArtifactTests.cs b/CICD.Tools.CatalogUpload.LibTests/CatalogArtifactTests.cs index 6d045df..e739c3f 100644 --- a/CICD.Tools.CatalogUpload.LibTests/CatalogArtifactTests.cs +++ b/CICD.Tools.CatalogUpload.LibTests/CatalogArtifactTests.cs @@ -12,6 +12,8 @@ using Moq; + using Newtonsoft.Json; + using Skyline.DataMiner.CICD.FileSystem; using Skyline.DataMiner.CICD.Tools.CatalogUpload.Lib; @@ -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(); + var fakeFileSystem = new Mock(); + var uploadResult = new ArtifactUploadResult { ArtifactId = "10" }; + fakeFileSystem.Setup(fs => fs.File.ReadAllBytes(It.IsAny())).Returns(Array.Empty()); + fakeService + .Setup(service => service.VolatileArtifactUploadAsync(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .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(), + It.Is((v, t) => v.ToString().Contains(JsonConvert.SerializeObject(uploadResult))), + It.IsAny(), + (Func)It.IsAny()), + Times.Once); + } + + [TestMethod] + public async Task UploadAndRegisterAsync_ShouldLogInformation_WhenCalled() + { + // Arrange + string pathToArtifact = "testPath"; + var fakeService = new Mock(); + var fakeFileSystem = new Mock(); + var uploadResult = new ArtifactUploadResult { ArtifactId = "10" }; + fakeFileSystem.Setup(fs => fs.File.ReadAllBytes(It.IsAny())).Returns(Array.Empty()); + fakeService + .Setup(service => service.RegisterCatalogAsync(It.IsAny(), It.IsAny(), It.IsAny())) + .ReturnsAsync(uploadResult); + fakeService + .Setup(service => service.UploadVersionAsync(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .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(), + It.Is((v, t) => v.ToString().Contains(JsonConvert.SerializeObject(uploadResult))), + It.IsAny(), + (Func)It.IsAny()), + Times.Once); + + } + } } \ No newline at end of file