Skip to content

Commit

Permalink
Cleaned up unit tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
janstaelensskyline committed Dec 8, 2023
1 parent 09d1628 commit 229a3c8
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,16 @@
</ItemGroup>

<ItemGroup>
<None Update="TestData\Demo InterAppCalls 1.0.0-CU1.dmapp">
<None Update="TestData\withAutomation.dmapp">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="TestData\Microsoft Platform 1.0.0-CU4.dmapp">
<None Update="TestData\withVisio.dmapp">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="TestData\SLNetSubscriptionsBenchmarking 1.0.1_B15.dmapp">
<None Update="TestData\withProtocols.dmapp">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="TestData\Tandberg RX1290 1.0.0-CU1.dmapp">
<None Update="TestData\withDashboard.dmapp">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
Expand Down
35 changes: 30 additions & 5 deletions CICD.Tools.CatalogUpload.LibTests/CatalogArtifactTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,23 @@ public async Task UploadAsyncTest_NoToken()
Version = "1.0.0.1-alpha"
};

CatalogArtifact artifactModel = new CatalogArtifact(pathToArtifact, fakeService.Object, fakeFileSystem.Object, logger, metaData);
Func<Task> uploadAction = async () => { await artifactModel.UploadAsync(); };
await uploadAction.Should().ThrowAsync<InvalidOperationException>().WithMessage("*missing token*");
var originalKey_encrypt = Environment.GetEnvironmentVariable("dmcatalogtoken_encrypted", EnvironmentVariableTarget.Machine) ?? "";
var originalKey = Environment.GetEnvironmentVariable("dmcatalogtoken") ?? "";

try
{
Environment.SetEnvironmentVariable("dmcatalogtoken_encrypted", "", EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("dmcatalogtoken", "");

CatalogArtifact artifactModel = new CatalogArtifact(pathToArtifact, fakeService.Object, fakeFileSystem.Object, logger, metaData);
Func<Task> uploadAction = async () => { await artifactModel.UploadAsync(); };
await uploadAction.Should().ThrowAsync<InvalidOperationException>().WithMessage("*missing token*");
}
finally
{
Environment.SetEnvironmentVariable("dmcatalogtoken_encrypted", originalKey_encrypt, EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("dmcatalogtoken", originalKey);
}
}

[TestMethod()]
Expand Down Expand Up @@ -93,8 +107,13 @@ public async Task UploadAsyncTest_ProvidedEncryptedTokenEnvironment()

fakeService.Setup(p => p.ArtifactUploadAsync(It.IsAny<byte[]>(), "encryptedFake", metaData, It.IsAny<CancellationToken>())).ReturnsAsync(model);

var originalKey_encrypt = Environment.GetEnvironmentVariable("dmcatalogtoken_encrypted", EnvironmentVariableTarget.Machine) ?? "";
var originalKey = Environment.GetEnvironmentVariable("dmcatalogtoken") ?? "";

try
{
Environment.SetEnvironmentVariable("dmcatalogtoken", "");

WinEncryptedKeys.Lib.Keys.SetKey("dmcatalogtoken_encrypted", "encryptedFake");

// Act
Expand All @@ -111,7 +130,8 @@ public async Task UploadAsyncTest_ProvidedEncryptedTokenEnvironment()
}
finally
{
Environment.SetEnvironmentVariable("dmcatalogtoken_encrypted", "", EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("dmcatalogtoken_encrypted", originalKey_encrypt, EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("dmcatalogtoken", originalKey);
}
}

Expand Down Expand Up @@ -184,8 +204,12 @@ public async Task UploadAsyncTest_ProvidedTokenEnvironment()

fakeService.Setup(p => p.ArtifactUploadAsync(It.IsAny<byte[]>(), "fake", metaData, It.IsAny<CancellationToken>())).ReturnsAsync(model);

var originalKey_encrypt = Environment.GetEnvironmentVariable("dmcatalogtoken_encrypted", EnvironmentVariableTarget.Machine) ?? "";
var originalKey = Environment.GetEnvironmentVariable("dmcatalogtoken") ?? "";

try
{
Environment.SetEnvironmentVariable("dmcatalogtoken_encrypted", "", EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("dmcatalogtoken", "fake");

// Act
Expand All @@ -202,7 +226,8 @@ public async Task UploadAsyncTest_ProvidedTokenEnvironment()
}
finally
{
Environment.SetEnvironmentVariable("dmcatalogtoken", String.Empty);
Environment.SetEnvironmentVariable("dmcatalogtoken_encrypted", originalKey_encrypt, EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("dmcatalogtoken", originalKey);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class CatalogMetaDataTests
public void FromArtifactTest_BuildPreReleaseDmappWithProtocols()
{
// Arrange
string pathToArtifact = "TestData/SLNetSubscriptionsBenchmarking 1.0.1_B15.dmapp";
string pathToArtifact = "TestData/withProtocols.dmapp";

// Act
CatalogMetaData result = CatalogMetaData.FromArtifact(pathToArtifact);
Expand All @@ -33,7 +33,7 @@ public void FromArtifactTest_BuildPreReleaseDmappWithProtocols()
public void FromArtifactTest_ReleaseAutomation()
{
// Arrange
string pathToArtifact = "TestData/Demo InterAppCalls 1.0.0-CU1.dmapp";
string pathToArtifact = "TestData/withAutomation.dmapp";

// Act
CatalogMetaData result = CatalogMetaData.FromArtifact(pathToArtifact);
Expand All @@ -55,7 +55,7 @@ public void FromArtifactTest_ReleaseAutomation()
public void FromArtifactTest_ReleaseDashboard()
{
// Arrange
string pathToArtifact = "TestData/Tandberg RX1290 1.0.0-CU1.dmapp";
string pathToArtifact = "TestData/withDashboard.dmapp";

// Act
CatalogMetaData result = CatalogMetaData.FromArtifact(pathToArtifact);
Expand All @@ -77,7 +77,7 @@ public void FromArtifactTest_ReleaseDashboard()
public void FromArtifactTest_ReleaseProtocolVisio()
{
// Arrange
string pathToArtifact = "TestData/Microsoft Platform 1.0.0-CU4.dmapp";
string pathToArtifact = "TestData/withVisio.dmapp";

// Act
CatalogMetaData result = CatalogMetaData.FromArtifact(pathToArtifact);
Expand Down
4 changes: 2 additions & 2 deletions CICD.Tools.CatalogUpload/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## About

Uploads artifacts to the Skyline DataMiner catalog (https://catalog.dataminer.services) visible or invisible.
Uploads and/or makes visible, artifacts to the Skyline DataMiner catalog (https://catalog.dataminer.services).

### About DataMiner

Expand Down Expand Up @@ -55,8 +55,8 @@ You can choose to add the dmcatalogtoken to an environment variable instead and

The first option is commonplace for environment setups in cloud-based CI/CD Pipelines (github, gitlab, azure, ...)
The second option can be beneficial on a static server such as Jenkins or your local machine (windows only). It adds additional encryption to the environment variable only allowing decryption on the same machine.
for example:

Running as Administrator:
```console
dotnet tool install -g Skyline.DataMiner.CICD.Tools.WinEncryptedKeys
WinEncryptedKeys --name "dmcatalogtoken_encrypted" --value "MyTokenHere"
Expand Down

0 comments on commit 229a3c8

Please sign in to comment.