From 096265b73ba023e1831b7f79f48867772b916e06 Mon Sep 17 00:00:00 2001 From: Patrick Doyle Date: Mon, 12 Dec 2022 18:23:35 -0500 Subject: [PATCH] Rename forEachValue and add unit test --- .../src/main/java/io/vena/bosk/SideTable.java | 2 +- .../test/java/io/vena/bosk/SideTableTest.java | 29 ++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/bosk-core/src/main/java/io/vena/bosk/SideTable.java b/bosk-core/src/main/java/io/vena/bosk/SideTable.java index 66b3ca57..abdf11b5 100644 --- a/bosk-core/src/main/java/io/vena/bosk/SideTable.java +++ b/bosk-core/src/main/java/io/vena/bosk/SideTable.java @@ -59,7 +59,7 @@ public Stream> valueEntryStream() { * * @see #forEachID */ - public void forEach(BiConsumer action) { + public void forEachValue(BiConsumer action) { AddressableByIdentifier domainValue = domain.value(); valuesById.forEach((id, value) -> action.accept(domainValue.get(id), value)); } diff --git a/bosk-core/src/test/java/io/vena/bosk/SideTableTest.java b/bosk-core/src/test/java/io/vena/bosk/SideTableTest.java index 4544414c..02225220 100644 --- a/bosk-core/src/test/java/io/vena/bosk/SideTableTest.java +++ b/bosk-core/src/test/java/io/vena/bosk/SideTableTest.java @@ -6,6 +6,7 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.stream.Stream; +import lombok.var; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -22,13 +23,21 @@ class SideTableTest extends AbstractBoskTest { Bosk bosk; CatalogReference entitiesRef; + CatalogReference childrenRef; + SideTableReference sideTableRef; Bosk.ReadContext readContext; TestEntity firstEntity; @BeforeEach void setup() throws InvalidTypeException { bosk = setUpBosk(Bosk::simpleDriver); - entitiesRef = bosk.catalogReference(TestEntity.class, Path.just(TestRoot.Fields.entities)); + entitiesRef = bosk.catalogReference(TestEntity.class, Path.just( + TestRoot.Fields.entities)); + childrenRef = bosk.catalogReference(TestChild.class, Path.of( + TestRoot.Fields.entities, "parent", TestEntity.Fields.children)); + sideTableRef = bosk.sideTableReference(TestChild.class, String.class, Path.of( + TestRoot.Fields.entities, "parent", TestEntity.Fields.stringSideTable)); + readContext = bosk.readContext(); firstEntity = entitiesRef.value().iterator().next(); } @@ -89,6 +98,24 @@ void duplicateEntries_throws() { }); } + @Test + void forEachValue_expectedResults() { + Map expected = new LinkedHashMap<>(); + Map actual = new LinkedHashMap<>(); + try (var __ = bosk.readContext()) { + SideTable sideTable = sideTableRef.value(); + + // Record everything that forEachValue produces + sideTable.forEachValue(actual::put); + + // Compute what it ought to have produced + Catalog entities = childrenRef.value(); + expected.put(entities.get(Identifier.from("child2")), "I'm child 2"); + } + + assertEquals(expected, actual); + } + private void assertEqualsOrderedMap(Map expected, SideTable actual) { assertEquals(expected, actual.asMap());