From 97fe22dc74ba49b8c302d0df329e403a903cd314 Mon Sep 17 00:00:00 2001
From: andreas-hilti <69210561+andreas-hilti@users.noreply.github.com>
Date: Sun, 15 Sep 2024 18:27:43 +0200
Subject: [PATCH] fix: AccessMode such that it is optional (#358)
Signed-off-by: andreas hilti <69210561+andreas-hilti@users.noreply.github.com>
---
src/CycloneDX.Core/Models/Workspace.cs | 21 ++++++++++++++++---
...pAsyncTest_valid-formulation-1.5.json.snap | 3 +--
...ndTripTest_valid-formulation-1.5.json.snap | 3 +--
...pAsyncTest_valid-formulation-1.6.json.snap | 3 +--
...ndTripTest_valid-formulation-1.6.json.snap | 3 +--
...pStreamTest_valid-formulation-1.5.xml.snap | 1 -
...undTripTest_valid-formulation-1.5.xml.snap | 1 -
...pStreamTest_valid-formulation-1.6.xml.snap | 1 -
...undTripTest_valid-formulation-1.6.xml.snap | 1 -
9 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/src/CycloneDX.Core/Models/Workspace.cs b/src/CycloneDX.Core/Models/Workspace.cs
index 6f017d42..c4ef88f6 100644
--- a/src/CycloneDX.Core/Models/Workspace.cs
+++ b/src/CycloneDX.Core/Models/Workspace.cs
@@ -77,10 +77,25 @@ public enum AccessModeType
public ResourceReferenceChoices ResourceReferences { get; set; }
public bool ShouldSerializeResourceReferences() { return ResourceReferences?.Count > 0; }
- [XmlElement("accessMode")]
+ [XmlIgnore]
[ProtoMember(8)]
- public AccessModeType AccessMode { get; set; }
-
+ public AccessModeType? AccessMode { get; set; }
+
+ [XmlElement("accessMode")]
+ [JsonIgnore]
+ public AccessModeType NonNullableAccessMode
+ {
+ get
+ {
+ return AccessMode.Value;
+ }
+ set
+ {
+ AccessMode = value;
+ }
+ }
+ public bool ShouldSerializeNonNullableAccessMode() { return AccessMode.HasValue; }
+
[XmlElement("mountPath")]
[ProtoMember(9)]
public string MountPath { get; set; }
diff --git a/tests/CycloneDX.Core.Tests/Json/v1.5/__snapshots__/SerializationTests.JsonRoundTripAsyncTest_valid-formulation-1.5.json.snap b/tests/CycloneDX.Core.Tests/Json/v1.5/__snapshots__/SerializationTests.JsonRoundTripAsyncTest_valid-formulation-1.5.json.snap
index 84f137d2..0c653095 100644
--- a/tests/CycloneDX.Core.Tests/Json/v1.5/__snapshots__/SerializationTests.JsonRoundTripAsyncTest_valid-formulation-1.5.json.snap
+++ b/tests/CycloneDX.Core.Tests/Json/v1.5/__snapshots__/SerializationTests.JsonRoundTripAsyncTest_valid-formulation-1.5.json.snap
@@ -79,8 +79,7 @@
{
"bom-ref": "workspace-1",
"uid": "workspace-uid-1",
- "name": "workspace",
- "accessMode": "read-only"
+ "name": "workspace"
}
],
"runtimeTopology": [
diff --git a/tests/CycloneDX.Core.Tests/Json/v1.5/__snapshots__/SerializationTests.JsonRoundTripTest_valid-formulation-1.5.json.snap b/tests/CycloneDX.Core.Tests/Json/v1.5/__snapshots__/SerializationTests.JsonRoundTripTest_valid-formulation-1.5.json.snap
index 84f137d2..0c653095 100644
--- a/tests/CycloneDX.Core.Tests/Json/v1.5/__snapshots__/SerializationTests.JsonRoundTripTest_valid-formulation-1.5.json.snap
+++ b/tests/CycloneDX.Core.Tests/Json/v1.5/__snapshots__/SerializationTests.JsonRoundTripTest_valid-formulation-1.5.json.snap
@@ -79,8 +79,7 @@
{
"bom-ref": "workspace-1",
"uid": "workspace-uid-1",
- "name": "workspace",
- "accessMode": "read-only"
+ "name": "workspace"
}
],
"runtimeTopology": [
diff --git a/tests/CycloneDX.Core.Tests/Json/v1.6/__snapshots__/SerializationTests.JsonRoundTripAsyncTest_valid-formulation-1.6.json.snap b/tests/CycloneDX.Core.Tests/Json/v1.6/__snapshots__/SerializationTests.JsonRoundTripAsyncTest_valid-formulation-1.6.json.snap
index 136d39ad..f86e194f 100644
--- a/tests/CycloneDX.Core.Tests/Json/v1.6/__snapshots__/SerializationTests.JsonRoundTripAsyncTest_valid-formulation-1.6.json.snap
+++ b/tests/CycloneDX.Core.Tests/Json/v1.6/__snapshots__/SerializationTests.JsonRoundTripAsyncTest_valid-formulation-1.6.json.snap
@@ -79,8 +79,7 @@
{
"bom-ref": "workspace-1",
"uid": "workspace-uid-1",
- "name": "workspace",
- "accessMode": "read-only"
+ "name": "workspace"
}
],
"runtimeTopology": [
diff --git a/tests/CycloneDX.Core.Tests/Json/v1.6/__snapshots__/SerializationTests.JsonRoundTripTest_valid-formulation-1.6.json.snap b/tests/CycloneDX.Core.Tests/Json/v1.6/__snapshots__/SerializationTests.JsonRoundTripTest_valid-formulation-1.6.json.snap
index 136d39ad..f86e194f 100644
--- a/tests/CycloneDX.Core.Tests/Json/v1.6/__snapshots__/SerializationTests.JsonRoundTripTest_valid-formulation-1.6.json.snap
+++ b/tests/CycloneDX.Core.Tests/Json/v1.6/__snapshots__/SerializationTests.JsonRoundTripTest_valid-formulation-1.6.json.snap
@@ -79,8 +79,7 @@
{
"bom-ref": "workspace-1",
"uid": "workspace-uid-1",
- "name": "workspace",
- "accessMode": "read-only"
+ "name": "workspace"
}
],
"runtimeTopology": [
diff --git a/tests/CycloneDX.Core.Tests/Xml/v1.5/__snapshots__/SerializationTests.XmlRoundTripStreamTest_valid-formulation-1.5.xml.snap b/tests/CycloneDX.Core.Tests/Xml/v1.5/__snapshots__/SerializationTests.XmlRoundTripStreamTest_valid-formulation-1.5.xml.snap
index 8a5aeb03..0c2e0223 100644
--- a/tests/CycloneDX.Core.Tests/Xml/v1.5/__snapshots__/SerializationTests.XmlRoundTripStreamTest_valid-formulation-1.5.xml.snap
+++ b/tests/CycloneDX.Core.Tests/Xml/v1.5/__snapshots__/SerializationTests.XmlRoundTripStreamTest_valid-formulation-1.5.xml.snap
@@ -69,7 +69,6 @@
workspace-uid-1
workspace
- read-only
diff --git a/tests/CycloneDX.Core.Tests/Xml/v1.5/__snapshots__/SerializationTests.XmlRoundTripTest_valid-formulation-1.5.xml.snap b/tests/CycloneDX.Core.Tests/Xml/v1.5/__snapshots__/SerializationTests.XmlRoundTripTest_valid-formulation-1.5.xml.snap
index 8a5aeb03..0c2e0223 100644
--- a/tests/CycloneDX.Core.Tests/Xml/v1.5/__snapshots__/SerializationTests.XmlRoundTripTest_valid-formulation-1.5.xml.snap
+++ b/tests/CycloneDX.Core.Tests/Xml/v1.5/__snapshots__/SerializationTests.XmlRoundTripTest_valid-formulation-1.5.xml.snap
@@ -69,7 +69,6 @@
workspace-uid-1
workspace
- read-only
diff --git a/tests/CycloneDX.Core.Tests/Xml/v1.6/__snapshots__/SerializationTests.XmlRoundTripStreamTest_valid-formulation-1.6.xml.snap b/tests/CycloneDX.Core.Tests/Xml/v1.6/__snapshots__/SerializationTests.XmlRoundTripStreamTest_valid-formulation-1.6.xml.snap
index 6f7b04c5..1af555a3 100644
--- a/tests/CycloneDX.Core.Tests/Xml/v1.6/__snapshots__/SerializationTests.XmlRoundTripStreamTest_valid-formulation-1.6.xml.snap
+++ b/tests/CycloneDX.Core.Tests/Xml/v1.6/__snapshots__/SerializationTests.XmlRoundTripStreamTest_valid-formulation-1.6.xml.snap
@@ -69,7 +69,6 @@
workspace-uid-1
workspace
- read-only
diff --git a/tests/CycloneDX.Core.Tests/Xml/v1.6/__snapshots__/SerializationTests.XmlRoundTripTest_valid-formulation-1.6.xml.snap b/tests/CycloneDX.Core.Tests/Xml/v1.6/__snapshots__/SerializationTests.XmlRoundTripTest_valid-formulation-1.6.xml.snap
index 6f7b04c5..1af555a3 100644
--- a/tests/CycloneDX.Core.Tests/Xml/v1.6/__snapshots__/SerializationTests.XmlRoundTripTest_valid-formulation-1.6.xml.snap
+++ b/tests/CycloneDX.Core.Tests/Xml/v1.6/__snapshots__/SerializationTests.XmlRoundTripTest_valid-formulation-1.6.xml.snap
@@ -69,7 +69,6 @@
workspace-uid-1
workspace
- read-only