Skip to content

Commit

Permalink
Rename forEachValue and add unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
prdoyle committed Dec 12, 2022
1 parent 8a6b6e6 commit 096265b
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 2 deletions.
2 changes: 1 addition & 1 deletion bosk-core/src/main/java/io/vena/bosk/SideTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public Stream<Entry<K, V>> valueEntryStream() {
*
* @see #forEachID
*/
public void forEach(BiConsumer<? super K, ? super V> action) {
public void forEachValue(BiConsumer<? super K, ? super V> action) {
AddressableByIdentifier<K> domainValue = domain.value();
valuesById.forEach((id, value) -> action.accept(domainValue.get(id), value));
}
Expand Down
29 changes: 28 additions & 1 deletion bosk-core/src/test/java/io/vena/bosk/SideTableTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -22,13 +23,21 @@
class SideTableTest extends AbstractBoskTest {
Bosk<TestRoot> bosk;
CatalogReference<TestEntity> entitiesRef;
CatalogReference<TestChild> childrenRef;
SideTableReference<TestChild, String> sideTableRef;
Bosk<TestRoot>.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();
}
Expand Down Expand Up @@ -89,6 +98,24 @@ void duplicateEntries_throws() {
});
}

@Test
void forEachValue_expectedResults() {
Map<TestChild, String> expected = new LinkedHashMap<>();
Map<TestChild, String> actual = new LinkedHashMap<>();
try (var __ = bosk.readContext()) {
SideTable<TestChild, String> sideTable = sideTableRef.value();

// Record everything that forEachValue produces
sideTable.forEachValue(actual::put);

// Compute what it ought to have produced
Catalog<TestChild> entities = childrenRef.value();
expected.put(entities.get(Identifier.from("child2")), "I'm child 2");
}

assertEquals(expected, actual);
}

private <V> void assertEqualsOrderedMap(Map<Identifier,V> expected, SideTable<TestEntity,V> actual) {
assertEquals(expected, actual.asMap());

Expand Down

0 comments on commit 096265b

Please sign in to comment.