Skip to content

Commit 0388244

Browse files
committed
Keep authors list in BomEntry mutable
1 parent 759338a commit 0388244

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

src/main/java/com/siemens/sbom/standardbom/model/BomEntry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public List<OrganizationalContact> getAuthors()
194194

195195
public void setAuthors(@Nullable final List<OrganizationalContact> pNewAuthors)
196196
{
197-
cycloneDxComponent.setAuthors(pNewAuthors);
197+
cycloneDxComponent.setAuthors(pNewAuthors != null ? new ArrayList<>(pNewAuthors) : null);
198198
}
199199

200200

src/test/java/com/siemens/sbom/standardbom/model/BomEntryTest.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
package com.siemens.sbom.standardbom.model;
55

66
import java.util.Collections;
7+
import java.util.List;
78
import java.util.Set;
89
import java.util.TreeSet;
910

1011
import org.cyclonedx.model.Component;
1112
import org.cyclonedx.model.ExternalReference;
1213
import org.cyclonedx.model.Hash;
1314
import org.cyclonedx.model.License;
15+
import org.cyclonedx.model.OrganizationalContact;
1416
import org.cyclonedx.model.Property;
1517
import org.junit.Assert;
1618
import org.junit.Test;
@@ -314,4 +316,32 @@ public void testHashSyntaxValidation()
314316
Assert.assertEquals("value is not a valid SHA-256 hash: INVALID HASH CODE", e.getMessage());
315317
}
316318
}
319+
320+
321+
322+
@Test
323+
public void testAuthors()
324+
{
325+
BomEntry underTest = new BomEntry();
326+
underTest.setAuthors(null);
327+
328+
OrganizationalContact authorX = new OrganizationalContact();
329+
authorX.setName("authorX");
330+
authorX.setEmail("authorX@example.com");
331+
underTest.setAuthors(Collections.singletonList(authorX));
332+
333+
OrganizationalContact author1 = new OrganizationalContact();
334+
author1.setName("author1");
335+
author1.setEmail("author1@example.com");
336+
underTest.setAuthors(Collections.singletonList(author1));
337+
338+
underTest.addAuthor("author2", null);
339+
underTest.addAuthor(null, "author3@example.com");
340+
underTest.addAuthor(null, null);
341+
342+
List<OrganizationalContact> actualAuthors = underTest.getAuthors();
343+
Assert.assertEquals(3, actualAuthors.size());
344+
Assert.assertEquals(author1,
345+
actualAuthors.stream().filter(a -> a.getName().equals("author1")).findFirst().orElse(null));
346+
}
317347
}

0 commit comments

Comments
 (0)