Skip to content

Commit

Permalink
Added unit tests Signed-off-by: Carolina Oliveira <61292734+CarolinaO…
Browse files Browse the repository at this point in the history
…liiveira@users.noreply.github.com>

added spdx json validator testsfor v2.2 and invalid package purpose; added converter tests from spdx v2.2 to cyclonedx

Signed-off-by: Carolina Oliveira <61292734+CarolinaOliiveira@users.noreply.github.com>
  • Loading branch information
CarolinaOliiveira committed Sep 20, 2024
1 parent 65c6445 commit 9ed77e2
Show file tree
Hide file tree
Showing 16 changed files with 3,051 additions and 24 deletions.
19 changes: 11 additions & 8 deletions tests/CycloneDX.Spdx.Interop.Tests/ConverterTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,38 +22,41 @@
using Snapshooter.Xunit;
using CycloneDX.Models;
using CycloneDX.Spdx.Serialization;
using System.Reflection.Metadata;

namespace CycloneDX.Spdx.Interop.Tests
{
public class ConverterTests
{
[Theory]
[InlineData("document")]
public void FromSpdxToCDXToSpdxRoundTripTest(string baseFilename)
[InlineData("v2.2")]
[InlineData("v2.3")]
public void FromSpdxToCDXToSpdxRoundTripTest(string version)
{
var resourceFilename = Path.Join("Resources", "Spdx", "v2.3", baseFilename + ".json");
var resourceFilename = Path.Join("Resources", "Spdx", version, "document" + ".json");
var fileContents = File.ReadAllText(resourceFilename);

var spdxDocument = JsonSerializer.Deserialize(fileContents);
var cdxBom = spdxDocument.ToCycloneDX();
var result = cdxBom.ToSpdx();
var resultString = JsonSerializer.Serialize(result);

Snapshot.Match(resultString, SnapshotNameExtension.Create(baseFilename));
Snapshot.Match(resultString, SnapshotNameExtension.Create($"{version}document"));
}

[Theory]
[InlineData("document")]
public void FromSpdxToCDXTest(string baseFilename)
[InlineData("v2.2")]
//[InlineData("v2.3")]
public void FromSpdxToCDXTest(string version)
{
var resourceFilename = Path.Join("Resources", "Spdx", "v2.3", baseFilename + ".json");
var resourceFilename = Path.Join("Resources", "Spdx",version, "document" + ".json");
var fileContents = File.ReadAllText(resourceFilename);

var spdxDocument = JsonSerializer.Deserialize(fileContents);
var cdxBom = spdxDocument.ToCycloneDX();
var resultString = CycloneDX.Json.Serializer.Serialize(cdxBom);

Snapshot.Match(resultString, SnapshotNameExtension.Create(baseFilename));
Snapshot.Match(resultString, SnapshotNameExtension.Create($"{version}document"));
}

[Theory]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
</ItemGroup>

<ItemGroup>
<None Remove="Resources\Spdx\v2.2\document.json" />
<None Remove="__snapshots__\ConverterTests.FromCDXToSpdxTest_assembly.snap" />
<None Remove="__snapshots__\ConverterTests.FromCDXToSpdxTest_bom.snap" />
<None Remove="__snapshots__\ConverterTests.FromCDXToSpdxTest_component-hashes.snap" />
Expand Down Expand Up @@ -63,20 +64,13 @@
<None Remove="__snapshots__\ConverterTests.FromCDXToSpdxToCDXRoundTripTest_properties.snap" />
<None Remove="__snapshots__\ConverterTests.FromCDXToSpdxToCDXRoundTripTest_service.snap" />
<None Remove="__snapshots__\ConverterTests.FromSpdxToCDXTest_document.snap" />
<None Remove="__snapshots__\ConverterTests.FromSpdxToCDXToSpdxRoundTripTest_document.snap" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\CycloneDX.Spdx\CycloneDX.Spdx.csproj" />
<ProjectReference Include="..\..\src\CycloneDX.Spdx.Interop\CycloneDX.Spdx.Interop.csproj" />
</ItemGroup>

<ItemGroup>
<Content Update="__snapshots__\ConverterTests.FromSpdxToCDXToSpdxRoundTripTest_document.snap">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>

<ItemGroup>
<Folder Include="__snapshots__\__mismatch__\" />
</ItemGroup>
Expand Down
403 changes: 403 additions & 0 deletions tests/CycloneDX.Spdx.Interop.Tests/Resources/Spdx/v2.2/document.json

Large diffs are not rendered by default.

Loading

0 comments on commit 9ed77e2

Please sign in to comment.