Skip to content

Commit 114268d

Browse files
committed
Simplify JSON tests.
1 parent c5e6cca commit 114268d

File tree

4 files changed

+36
-81
lines changed

4 files changed

+36
-81
lines changed

xpath-to-json-gson/src/test/java/com/github/simy4/xpath/gson/XmlBuilderTest.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ void shouldBuildJsonFromSetOfXPaths(FixtureAccessor fixtureAccessor)
5050
var xmlProperties = fixtureAccessor.getXmlProperties();
5151
var builtDocument = new XmlBuilder().putAll(xmlProperties.keySet()).build(new JsonObject());
5252

53-
assertThat(jsonToString(builtDocument)).isEqualTo(fixtureAccessor.getPutXml());
53+
assertThat(builtDocument).isEqualTo(stringToJson(fixtureAccessor.getPutXml()));
5454
}
5555

5656
@ParameterizedTest
@@ -60,7 +60,7 @@ void shouldBuildJsonFromSetOfXPathsAndSetValues(FixtureAccessor fixtureAccessor)
6060
var xmlProperties = fixtureAccessor.getXmlProperties();
6161
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(new JsonObject());
6262

63-
assertThat(jsonToString(builtDocument)).isEqualTo(fixtureAccessor.getPutValueXml());
63+
assertThat(builtDocument).isEqualTo(stringToJson(fixtureAccessor.getPutValueXml()));
6464
}
6565

6666
@ParameterizedTest
@@ -72,7 +72,7 @@ void shouldModifyJsonWhenXPathsAreNotTraversable(FixtureAccessor fixtureAccessor
7272
var oldDocument = stringToJson(json);
7373
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(oldDocument);
7474

75-
assertThat(jsonToString(builtDocument)).isEqualTo(fixtureAccessor.getPutValueXml());
75+
assertThat(builtDocument).isEqualTo(stringToJson(fixtureAccessor.getPutValueXml()));
7676
}
7777

7878
@ParameterizedTest
@@ -84,11 +84,11 @@ void shouldNotModifyJsonWhenAllXPathsTraversable(FixtureAccessor fixtureAccessor
8484
var oldDocument = stringToJson(json);
8585
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(oldDocument);
8686

87-
assertThat(jsonToString(builtDocument)).isEqualTo(json);
87+
assertThat(builtDocument).isEqualTo(stringToJson(json));
8888

8989
builtDocument = new XmlBuilder().putAll(xmlProperties.keySet()).build(oldDocument);
9090

91-
assertThat(jsonToString(builtDocument)).isEqualTo(json);
91+
assertThat(builtDocument).isEqualTo(stringToJson(json));
9292
}
9393

9494
@ParameterizedTest
@@ -100,14 +100,10 @@ void shouldRemovePathsFromExistingXml(FixtureAccessor fixtureAccessor)
100100
var oldDocument = stringToJson(json);
101101
var builtDocument = new XmlBuilder().removeAll(xmlProperties.keySet()).build(oldDocument);
102102

103-
assertThat(jsonToString(builtDocument)).isNotEqualTo(fixtureAccessor.getPutValueXml());
103+
assertThat(builtDocument).isNotEqualTo(stringToJson(fixtureAccessor.getPutValueXml()));
104104
}
105105

106106
private JsonElement stringToJson(String xml) {
107107
return gson.fromJson(xml, JsonElement.class);
108108
}
109-
110-
private String jsonToString(JsonElement json) {
111-
return gson.toJson(json).replaceAll("\n", System.lineSeparator());
112-
}
113109
}

xpath-to-json-jackson/src/test/java/com/github/simy4/xpath/jackson/JsonBuilderTest.java

Lines changed: 12 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
package com.github.simy4.xpath.jackson;
1717

1818
import com.fasterxml.jackson.core.JsonProcessingException;
19-
import com.fasterxml.jackson.core.util.DefaultIndenter;
20-
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
2119
import com.fasterxml.jackson.databind.JsonNode;
2220
import com.fasterxml.jackson.databind.ObjectMapper;
2321
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
@@ -30,7 +28,6 @@
3028

3129
import javax.xml.xpath.XPathExpressionException;
3230

33-
import java.io.IOException;
3431
import java.util.stream.Stream;
3532

3633
import static org.assertj.core.api.Assertions.assertThat;
@@ -50,86 +47,68 @@ static Stream<Arguments> data() {
5047
@ParameterizedTest
5148
@MethodSource("data")
5249
void shouldBuildJsonFromSetOfXPaths(FixtureAccessor fixtureAccessor)
53-
throws XPathExpressionException, IOException {
50+
throws XPathExpressionException, JsonProcessingException {
5451
var xmlProperties = fixtureAccessor.getXmlProperties();
5552
var builtDocument =
5653
new XmlBuilder()
5754
.putAll(xmlProperties.keySet())
5855
.build(new ObjectNode(JsonNodeFactory.instance));
5956

60-
assertThat(jsonToString(builtDocument)).isEqualTo(fixtureAccessor.getPutXml());
57+
assertThat(builtDocument).isEqualTo(stringToJson(fixtureAccessor.getPutXml()));
6158
}
6259

6360
@ParameterizedTest
6461
@MethodSource("data")
6562
void shouldBuildJsonFromSetOfXPathsAndSetValues(FixtureAccessor fixtureAccessor)
66-
throws XPathExpressionException, IOException {
63+
throws XPathExpressionException, JsonProcessingException {
6764
var xmlProperties = fixtureAccessor.getXmlProperties();
6865
var builtDocument =
6966
new XmlBuilder().putAll(xmlProperties).build(new ObjectNode(JsonNodeFactory.instance));
7067

71-
assertThat(jsonToString(builtDocument)).isEqualTo(fixtureAccessor.getPutValueXml());
68+
assertThat(builtDocument).isEqualTo(stringToJson(fixtureAccessor.getPutValueXml()));
7269
}
7370

7471
@ParameterizedTest
7572
@MethodSource("data")
7673
void shouldModifyJsonWhenXPathsAreNotTraversable(FixtureAccessor fixtureAccessor)
77-
throws XPathExpressionException, IOException {
74+
throws XPathExpressionException, JsonProcessingException {
7875
var xmlProperties = fixtureAccessor.getXmlProperties();
7976
var json = fixtureAccessor.getPutXml();
8077
var oldDocument = stringToJson(json);
8178
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(oldDocument);
8279

83-
assertThat(jsonToString(builtDocument)).isEqualTo(fixtureAccessor.getPutValueXml());
80+
assertThat(builtDocument).isEqualTo(stringToJson(fixtureAccessor.getPutValueXml()));
8481
}
8582

8683
@ParameterizedTest
8784
@MethodSource("data")
8885
void shouldNotModifyJsonWhenAllXPathsTraversable(FixtureAccessor fixtureAccessor)
89-
throws XPathExpressionException, IOException {
86+
throws XPathExpressionException, JsonProcessingException {
9087
var xmlProperties = fixtureAccessor.getXmlProperties();
9188
var json = fixtureAccessor.getPutValueXml();
9289
var oldDocument = stringToJson(json);
9390
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(oldDocument);
9491

95-
assertThat(jsonToString(builtDocument)).isEqualTo(json);
92+
assertThat(builtDocument).isEqualTo(stringToJson(json));
9693

9794
builtDocument = new XmlBuilder().putAll(xmlProperties.keySet()).build(oldDocument);
9895

99-
assertThat(jsonToString(builtDocument)).isEqualTo(json);
96+
assertThat(builtDocument).isEqualTo(stringToJson(json));
10097
}
10198

10299
@ParameterizedTest
103100
@MethodSource("data")
104101
void shouldRemovePathsFromExistingJson(FixtureAccessor fixtureAccessor)
105-
throws XPathExpressionException, IOException {
102+
throws XPathExpressionException, JsonProcessingException {
106103
var xmlProperties = fixtureAccessor.getXmlProperties();
107104
var json = fixtureAccessor.getPutValueXml();
108105
var oldDocument = stringToJson(json);
109106
var builtDocument = new XmlBuilder().removeAll(xmlProperties.keySet()).build(oldDocument);
110107

111-
assertThat(jsonToString(builtDocument)).isNotEqualTo(fixtureAccessor.getPutValueXml());
108+
assertThat(builtDocument).isNotEqualTo(stringToJson(fixtureAccessor.getPutValueXml()));
112109
}
113110

114-
private JsonNode stringToJson(String xml) throws IOException {
111+
private JsonNode stringToJson(String xml) throws JsonProcessingException {
115112
return objectMapper.readTree(xml);
116113
}
117-
118-
private String jsonToString(JsonNode json) throws JsonProcessingException {
119-
return objectMapper
120-
.writer(
121-
new DefaultPrettyPrinter(
122-
new DefaultPrettyPrinter() {
123-
private static final long serialVersionUID = 1;
124-
125-
{
126-
_objectFieldValueSeparatorWithSpaces =
127-
_separators.getObjectFieldValueSeparator() + " ";
128-
_arrayIndenter = new DefaultIndenter();
129-
_objectIndenter = new DefaultIndenter();
130-
}
131-
}))
132-
.writeValueAsString(json)
133-
.replaceAll("\\{ }", "{}");
134-
}
135114
}

xpath-to-json-jackson/src/test/java/com/github/simy4/xpath/jackson/YamlBuilderTest.java

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030

3131
import javax.xml.xpath.XPathExpressionException;
3232

33-
import java.io.IOException;
3433
import java.util.stream.Stream;
3534

3635
import static org.assertj.core.api.Assertions.assertThat;
@@ -55,72 +54,68 @@ static Stream<Arguments> data() {
5554
@ParameterizedTest
5655
@MethodSource("data")
5756
void shouldBuildYamlFromSetOfXPaths(FixtureAccessor fixtureAccessor)
58-
throws XPathExpressionException, IOException {
57+
throws XPathExpressionException, JsonProcessingException {
5958
var xmlProperties = fixtureAccessor.getXmlProperties();
6059
var builtDocument =
6160
new XmlBuilder()
6261
.putAll(xmlProperties.keySet())
6362
.build(new ObjectNode(JsonNodeFactory.instance));
6463

65-
assertThat(yamlToString(builtDocument)).isEqualTo(fixtureAccessor.getPutXml());
64+
assertThat(builtDocument).isEqualTo(stringToYaml(fixtureAccessor.getPutXml()));
6665
}
6766

6867
@ParameterizedTest
6968
@MethodSource("data")
7069
void shouldBuildYamlFromSetOfXPathsAndSetValues(FixtureAccessor fixtureAccessor)
71-
throws XPathExpressionException, IOException {
70+
throws XPathExpressionException, JsonProcessingException {
7271
var xmlProperties = fixtureAccessor.getXmlProperties();
7372
var builtDocument =
7473
new XmlBuilder().putAll(xmlProperties).build(new ObjectNode(JsonNodeFactory.instance));
7574

76-
assertThat(yamlToString(builtDocument)).isEqualTo(fixtureAccessor.getPutValueXml());
75+
assertThat(builtDocument).isEqualTo(stringToYaml(fixtureAccessor.getPutValueXml()));
7776
}
7877

7978
@ParameterizedTest
8079
@MethodSource("data")
8180
void shouldModifyYamlWhenXPathsAreNotTraversable(FixtureAccessor fixtureAccessor)
82-
throws XPathExpressionException, IOException {
81+
throws XPathExpressionException, JsonProcessingException {
8382
var xmlProperties = fixtureAccessor.getXmlProperties();
8483
var json = fixtureAccessor.getPutXml();
8584
var oldDocument = stringToYaml(json);
8685
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(oldDocument);
8786

88-
assertThat(yamlToString(builtDocument)).isEqualTo(fixtureAccessor.getPutValueXml());
87+
assertThat(builtDocument).isEqualTo(stringToYaml(fixtureAccessor.getPutValueXml()));
8988
}
9089

9190
@ParameterizedTest
9291
@MethodSource("data")
9392
void shouldNotModifyYamlWhenAllXPathsTraversable(FixtureAccessor fixtureAccessor)
94-
throws XPathExpressionException, IOException {
93+
throws XPathExpressionException, JsonProcessingException {
9594
var xmlProperties = fixtureAccessor.getXmlProperties();
9695
var yaml = fixtureAccessor.getPutValueXml();
9796
var oldDocument = stringToYaml(yaml);
9897
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(oldDocument);
9998

100-
assertThat(yamlToString(builtDocument)).isEqualTo(yaml);
99+
assertThat(builtDocument).isEqualTo(stringToYaml(yaml));
101100

102101
builtDocument = new XmlBuilder().putAll(xmlProperties.keySet()).build(oldDocument);
103102

104-
assertThat(yamlToString(builtDocument)).isEqualTo(yaml);
103+
assertThat(builtDocument).isEqualTo(stringToYaml(yaml));
105104
}
106105

107106
@ParameterizedTest
108107
@MethodSource("data")
109108
void shouldRemovePathsFromExistingYaml(FixtureAccessor fixtureAccessor)
110-
throws XPathExpressionException, IOException {
109+
throws XPathExpressionException, JsonProcessingException {
111110
var xmlProperties = fixtureAccessor.getXmlProperties();
112111
var yaml = fixtureAccessor.getPutValueXml();
113112
var oldDocument = stringToYaml(yaml);
114113
var builtDocument = new XmlBuilder().removeAll(xmlProperties.keySet()).build(oldDocument);
115114

116-
assertThat(yamlToString(builtDocument)).isNotEqualTo(fixtureAccessor.getPutValueXml());
115+
assertThat(builtDocument).isNotEqualTo(stringToYaml(fixtureAccessor.getPutValueXml()));
117116
}
118117

119-
private JsonNode stringToYaml(String xml) throws IOException {
118+
private JsonNode stringToYaml(String xml) throws JsonProcessingException {
120119
return objectMapper.readTree(xml);
121120
}
122-
123-
private String yamlToString(JsonNode json) throws JsonProcessingException {
124-
return objectMapper.writeValueAsString(json).replace("\n", System.lineSeparator());
125-
}
126121
}

xpath-to-json-jakarta/src/test/java/com/github/simy4/xpath/json/XmlBuilderTest.java

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,14 @@
1919
import com.github.simy4.xpath.fixtures.FixtureAccessor;
2020
import jakarta.json.Json;
2121
import jakarta.json.JsonValue;
22-
import jakarta.json.stream.JsonGenerator;
2322
import org.junit.jupiter.params.ParameterizedTest;
2423
import org.junit.jupiter.params.provider.Arguments;
2524
import org.junit.jupiter.params.provider.MethodSource;
2625

2726
import javax.xml.xpath.XPathExpressionException;
2827

2928
import java.io.ByteArrayInputStream;
30-
import java.io.StringWriter;
3129
import java.nio.charset.StandardCharsets;
32-
import java.util.Collections;
3330
import java.util.stream.Stream;
3431

3532
import static org.assertj.core.api.Assertions.assertThat;
@@ -52,7 +49,7 @@ void shouldBuildJsonFromSetOfXPaths(FixtureAccessor fixtureAccessor)
5249
var builtDocument =
5350
new XmlBuilder().putAll(xmlProperties.keySet()).build(JsonValue.EMPTY_JSON_OBJECT);
5451

55-
assertThat(jsonToString(builtDocument)).isEqualTo(fixtureAccessor.getPutXml());
52+
assertThat(builtDocument).isEqualTo(stringToJson(fixtureAccessor.getPutXml()));
5653
}
5754

5855
@ParameterizedTest
@@ -62,7 +59,7 @@ void shouldBuildJsonFromSetOfXPathsAndSetValues(FixtureAccessor fixtureAccessor)
6259
var xmlProperties = fixtureAccessor.getXmlProperties();
6360
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(JsonValue.EMPTY_JSON_OBJECT);
6461

65-
assertThat(jsonToString(builtDocument)).isEqualTo(fixtureAccessor.getPutValueXml());
62+
assertThat(builtDocument).isEqualTo(stringToJson(fixtureAccessor.getPutValueXml()));
6663
}
6764

6865
@ParameterizedTest
@@ -74,7 +71,7 @@ void shouldModifyJsonWhenXPathsAreNotTraversable(FixtureAccessor fixtureAccessor
7471
var oldDocument = stringToJson(json);
7572
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(oldDocument);
7673

77-
assertThat(jsonToString(builtDocument)).isEqualTo(fixtureAccessor.getPutValueXml());
74+
assertThat(builtDocument).isEqualTo(stringToJson(fixtureAccessor.getPutValueXml()));
7875
}
7976

8077
@ParameterizedTest
@@ -86,11 +83,11 @@ void shouldNotModifyJsonWhenAllXPathsTraversable(FixtureAccessor fixtureAccessor
8683
var oldDocument = stringToJson(json);
8784
var builtDocument = new XmlBuilder().putAll(xmlProperties).build(oldDocument);
8885

89-
assertThat(jsonToString(builtDocument)).isEqualTo(json);
86+
assertThat(builtDocument).isEqualTo(stringToJson(json));
9087

9188
builtDocument = new XmlBuilder().putAll(xmlProperties.keySet()).build(oldDocument);
9289

93-
assertThat(jsonToString(builtDocument)).isEqualTo(json);
90+
assertThat(builtDocument).isEqualTo(stringToJson(json));
9491
}
9592

9693
@ParameterizedTest
@@ -102,23 +99,11 @@ void shouldRemovePathsFromExistingXml(FixtureAccessor fixtureAccessor)
10299
var oldDocument = stringToJson(json);
103100
var builtDocument = new XmlBuilder().removeAll(xmlProperties.keySet()).build(oldDocument);
104101

105-
assertThat(jsonToString(builtDocument)).isNotEqualTo(fixtureAccessor.getPutValueXml());
102+
assertThat(builtDocument).isNotEqualTo(stringToJson(fixtureAccessor.getPutValueXml()));
106103
}
107104

108105
private JsonValue stringToJson(String xml) {
109106
return Json.createReader(new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)))
110107
.readValue();
111108
}
112-
113-
private String jsonToString(JsonValue json) {
114-
var lineSeparator = System.lineSeparator();
115-
var sw = new StringWriter();
116-
Json.createWriterFactory(Collections.singletonMap(JsonGenerator.PRETTY_PRINTING, true))
117-
.createWriter(sw)
118-
.write(json);
119-
return sw.toString()
120-
.replaceAll(" {4}", " ")
121-
.replaceAll("\\{\n\\p{Space}*}", "{}")
122-
.replaceAll("\n", lineSeparator);
123-
}
124109
}

0 commit comments

Comments
 (0)