Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions exercises/practice/dot-dsl/.meta/tests.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# This is an auto-generated file.
#
# Regenerating this file via `configlet sync` will:
# - Recreate every `description` key/value pair
# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
# - Preserve any other key/value pair
#
# As user-added comments (using the # character) will be removed when this file
# is regenerated, comments can be added via a `comment` key.

[3a50c618-2571-466b-9ee9-346d9943912e]
description = "empty graph"

[5067feea-e49b-4a9d-865e-4502d6b0540c]
description = "graph with one node"

[b66cf871-88c6-489a-b0b9-7c79b6819c45]
description = "graph with one node with attribute"

[f7841da3-c0f8-4541-b594-21b626a764d2]
description = "graph with one edge"

[bbee70e1-6b0d-4f3a-bd4e-41cd2cfc0e39]
description = "graph with one attribute"

[ac736158-6684-418d-93d5-7b284e43294e]
description = "graph with comments"
comment = "Not possible to create scenario in test"
include = false

[69068da9-7690-4d4d-a728-f5c2bf132a33]
description = "graph with nodes, edges, and attributes"

[f6c53993-3937-4959-bcde-dc16411113ae]
description = "multiple edges on one line"

[b853dfc1-1f05-45aa-bc98-b0fc6b57529b]
description = "only 1 edge between nodes"
include = false

[bdc0fdac-aa46-457f-8385-65736ccdc1c7]
description = "malformed input"
comment = "Not possible to create the scenario in test"
include = false

[f5c4f77d-359c-434a-9c33-b9eb795bafdd]
description = "malformed edge"
comment = "Not possible to create the scenario in test"
include = false

[2238f6b8-20bb-489f-8ca0-084d1771d758]
description = "malformed edge 2"
comment = "Not possible to create the scenario in test"
include = false

[4e3a4386-9e80-4315-b70f-253a06a2234e]
description = "invalid edge type"
comment = "Not possible to create the scenario in test"
include = false

[793adce3-bd19-4458-ac41-c989f7f8d9db]
description = "multiple edges missing a node"
comment = "Not possible to create the scenario in test"
include = false

[e2930b2c-3a03-4d8f-abe9-78a125a915a7]
description = "multiple edges missing a connector"
comment = "Not possible to create the scenario in test"
include = false

[55d3f722-f9f1-46e1-b308-da61607952ab]
description = "empty attribute"
comment = "Not possible to create the scenario in test"
include = false

[4ee2a9c3-54b1-4825-bd58-2b78c2c53953]
description = "malformed attribute"
comment = "Not possible to create the scenario in test"
include = false

[382a13c8-6419-4286-8dd2-eac708f3e2a8]
description = "empty attribute name"
comment = "Not possible to create the scenario in test"
include = false

[a6f9e6ab-8c3e-4475-a9fe-5dd061cadec6]
description = "non-alphanumeric node name"
comment = "Not possible to create the scenario in test"
include = false
44 changes: 37 additions & 7 deletions exercises/practice/dot-dsl/src/test/java/GraphTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import static org.assertj.core.api.Assertions.assertThat;

import java.util.Map;

import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -31,8 +32,8 @@ public void testGraphWithOneNode() {

@Test
@Disabled
@DisplayName("graph with one node with keywords")
public void testGraphWithOneNodeWithKeywords() {
@DisplayName("graph with one node with attribute")
public void testGraphWithOneNodeWithAttribute() {
Graph graph = new Graph().node("a", Map.of("color", "green"));

assertThat(graph.getNodes())
Expand All @@ -55,8 +56,8 @@ public void testGraphWithOneEdge() {

@Test
@Disabled
@DisplayName("graph with one edge with keywords")
public void testGraphWithOneEdgeWithKeywords() {
@DisplayName("graph with one edge with attribute")
public void testGraphWithOneEdgeWithAttribute() {
Graph graph = new Graph().edge("a", "b", Map.of("color", "blue"));

assertThat(graph.getNodes()).isEmpty();
Expand All @@ -78,8 +79,8 @@ public void testGraphWithOneAttribute() {

@Test
@Disabled
@DisplayName("graph with attributes")
public void testGraphWithAttributes() {
@DisplayName("graph with nodes, edges, and attributes")
public void testGraphWithNodesEdgesAndAttributes() {
Graph graph = new Graph(Map.of("foo", "1", "title", "Testing Attrs", "bar", "true"))
.node("a", Map.of("color", "green"))
.node("c")
Expand All @@ -95,11 +96,40 @@ public void testGraphWithAttributes() {

assertThat(graph.getEdges())
.containsExactlyInAnyOrder(
new Edge("a", "b", Map.of("color", "blue")),
new Edge("a", "b", Map.of("color", "blue")),
new Edge("b", "c"));

assertThat(graph.getAttributes())
.containsExactlyInAnyOrderEntriesOf(
Map.of("foo", "1", "title", "Testing Attrs", "bar", "true"));
}

@Test
@Disabled
@DisplayName("multiple edges on one line")
public void testMultipleEdgesOnOneLine() {
Graph graph = new Graph()
.node("a")
.node("b")
.node("c")
.node("d")
.edge("a", "b", Map.of("style", "dotted"))
.edge("b", "c", Map.of("style", "dotted"))
.edge("c", "d", Map.of("style", "dotted"));

assertThat(graph.getNodes()).containsExactlyInAnyOrder(
new Node("a"),
new Node("b"),
new Node("c"),
new Node("d")
);

assertThat(graph.getEdges())
.containsExactlyInAnyOrder(
new Edge("a", "b", Map.of("style", "dotted")),
new Edge("b", "c", Map.of("style", "dotted")),
new Edge("c", "d", Map.of("style", "dotted"))
);
assertThat(graph.getAttributes()).isEmpty();
}
}