From 085b68b173beacf911d188a261d4c241c500bc18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Vi=C3=B1as?= Date: Fri, 29 Nov 2024 10:32:52 +0100 Subject: [PATCH 1/5] Add SnapshotTest --- .../au/com/origin/snapshots/SnapshotTest.java | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java diff --git a/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java b/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java new file mode 100644 index 0000000..36ff7da --- /dev/null +++ b/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java @@ -0,0 +1,100 @@ +package au.com.origin.snapshots; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.entry; + +class SnapshotTest { + + /* + name[scenario]={ + "header-key": "header-value" + }body + */ + + @Test + public void shouldParseSnapshot() { + Snapshot snapshot = Snapshot.parse(Snapshot.builder() + .name("au.com.origin.snapshots.Test") + .body("body") + .build() + .raw() + ); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).isEmpty(); + assertThat(snapshot.getScenario()).isBlank(); + assertThat(snapshot.getBody()).isEqualTo("body"); + } + + @Test + public void shouldParseSnapshotWithHeaders() { + SnapshotHeader header = new SnapshotHeader(); + header.put("header1", "value1"); + Snapshot snapshot = Snapshot.parse(Snapshot.builder() + .name("au.com.origin.snapshots.Test") + .header(header) + .body("body") + .build() + .raw() + ); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).containsExactly(entry("header1", "value1")); + assertThat(snapshot.getScenario()).isBlank(); + assertThat(snapshot.getBody()).isEqualTo("body"); + } + + @Test + public void shouldParseSnapshotWithScenario() { + Snapshot snapshot = Snapshot.parse(Snapshot.builder() + .name("au.com.origin.snapshots.Test") + .scenario("scenario") + .body("body") + .build() + .raw() + ); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).isEmpty(); + assertThat(snapshot.getScenario()).isEqualTo("scenario"); + assertThat(snapshot.getBody()).isEqualTo("body"); + } + + @Test + public void shouldParseSnapshotWithScenarioAndHeaders() { + SnapshotHeader header = new SnapshotHeader(); + header.put("header1", "value1"); + Snapshot snapshot = Snapshot.parse(Snapshot.builder() + .name("au.com.origin.snapshots.Test") + .scenario("scenario") + .header(header) + .body("body") + .build() + .raw() + ); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).containsExactly(entry("header1", "value1")); + assertThat(snapshot.getScenario()).isEqualTo("scenario"); + assertThat(snapshot.getBody()).isEqualTo("body"); + } + + @Test + public void shouldParseSnapshotWithScenarioAndBodyWithSomethingSimilarToAnScenarioToConfuseRegex() { + Snapshot snapshot = Snapshot.parse(Snapshot.builder() + .name("au.com.origin.snapshots.Test") + .scenario("scenario") + .body("[xxx]=yyy") + .build() + .raw() + ); + System.out.println(snapshot.raw()); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).isEmpty(); + assertThat(snapshot.getScenario()).isEqualTo("scenario"); + assertThat(snapshot.getBody()).isEqualTo("[xxx]=yyy"); + } +} From d1f0d8527dd23e8c9617d9582687d1712863ad99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Vi=C3=B1as?= Date: Fri, 29 Nov 2024 10:35:32 +0100 Subject: [PATCH 2/5] Remove comment --- .../src/test/java/au/com/origin/snapshots/SnapshotTest.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java b/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java index 36ff7da..e6ffa13 100644 --- a/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java +++ b/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java @@ -7,12 +7,6 @@ class SnapshotTest { - /* - name[scenario]={ - "header-key": "header-value" - }body - */ - @Test public void shouldParseSnapshot() { Snapshot snapshot = Snapshot.parse(Snapshot.builder() From f234cc83a33850c284f068dc09b4ce7eeab72346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Vi=C3=B1as?= Date: Fri, 29 Nov 2024 10:42:12 +0100 Subject: [PATCH 3/5] Improve regex --- .../src/main/java/au/com/origin/snapshots/Snapshot.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java-snapshot-testing-core/src/main/java/au/com/origin/snapshots/Snapshot.java b/java-snapshot-testing-core/src/main/java/au/com/origin/snapshots/Snapshot.java index 3857b1a..17242ee 100644 --- a/java-snapshot-testing-core/src/main/java/au/com/origin/snapshots/Snapshot.java +++ b/java-snapshot-testing-core/src/main/java/au/com/origin/snapshots/Snapshot.java @@ -29,7 +29,7 @@ public String getIdentifier() { } public static Snapshot parse(String rawText) { - String regex = "^(?.*?)(\\[(?.*)\\])?=(?
\\{.*?\\})?(?(.*)$)"; + String regex = "^(?.*?)(\\[(?[^]]*)])?=(?
\\{[^}]*?})?(?(.*)$)"; Pattern p = Pattern.compile(regex, Pattern.DOTALL); Matcher m = p.matcher(rawText); boolean found = m.find(); From 66c87d0fd2377527d0a4fc5bd8095b591a629b30 Mon Sep 17 00:00:00 2001 From: Roger Vinas Date: Sun, 8 Dec 2024 21:45:32 +0100 Subject: [PATCH 4/5] Apply formatting --- .../au/com/origin/snapshots/Snapshot.java | 3 +- .../au/com/origin/snapshots/SnapshotTest.java | 132 +++++++++--------- 2 files changed, 69 insertions(+), 66 deletions(-) diff --git a/java-snapshot-testing-core/src/main/java/au/com/origin/snapshots/Snapshot.java b/java-snapshot-testing-core/src/main/java/au/com/origin/snapshots/Snapshot.java index 17242ee..bc57d4d 100644 --- a/java-snapshot-testing-core/src/main/java/au/com/origin/snapshots/Snapshot.java +++ b/java-snapshot-testing-core/src/main/java/au/com/origin/snapshots/Snapshot.java @@ -29,7 +29,8 @@ public String getIdentifier() { } public static Snapshot parse(String rawText) { - String regex = "^(?.*?)(\\[(?[^]]*)])?=(?
\\{[^}]*?})?(?(.*)$)"; + String regex = + "^(?.*?)(\\[(?[^]]*)])?=(?
\\{[^}]*?})?(?(.*)$)"; Pattern p = Pattern.compile(regex, Pattern.DOTALL); Matcher m = p.matcher(rawText); boolean found = m.find(); diff --git a/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java b/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java index e6ffa13..1a87bda 100644 --- a/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java +++ b/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java @@ -1,94 +1,96 @@ package au.com.origin.snapshots; -import org.junit.jupiter.api.Test; - import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.entry; +import org.junit.jupiter.api.Test; + class SnapshotTest { - @Test - public void shouldParseSnapshot() { - Snapshot snapshot = Snapshot.parse(Snapshot.builder() - .name("au.com.origin.snapshots.Test") - .body("body") - .build() - .raw() - ); - assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test"); - assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); - assertThat(snapshot.getHeader()).isEmpty(); - assertThat(snapshot.getScenario()).isBlank(); - assertThat(snapshot.getBody()).isEqualTo("body"); - } + @Test + public void shouldParseSnapshot() { + Snapshot snapshot = + Snapshot.parse( + Snapshot.builder().name("au.com.origin.snapshots.Test").body("body").build().raw()); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).isEmpty(); + assertThat(snapshot.getScenario()).isBlank(); + assertThat(snapshot.getBody()).isEqualTo("body"); + } - @Test - public void shouldParseSnapshotWithHeaders() { - SnapshotHeader header = new SnapshotHeader(); - header.put("header1", "value1"); - Snapshot snapshot = Snapshot.parse(Snapshot.builder() + @Test + public void shouldParseSnapshotWithHeaders() { + SnapshotHeader header = new SnapshotHeader(); + header.put("header1", "value1"); + Snapshot snapshot = + Snapshot.parse( + Snapshot.builder() .name("au.com.origin.snapshots.Test") .header(header) .body("body") .build() - .raw() - ); - assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test"); - assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); - assertThat(snapshot.getHeader()).containsExactly(entry("header1", "value1")); - assertThat(snapshot.getScenario()).isBlank(); - assertThat(snapshot.getBody()).isEqualTo("body"); - } + .raw()); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).containsExactly(entry("header1", "value1")); + assertThat(snapshot.getScenario()).isBlank(); + assertThat(snapshot.getBody()).isEqualTo("body"); + } - @Test - public void shouldParseSnapshotWithScenario() { - Snapshot snapshot = Snapshot.parse(Snapshot.builder() + @Test + public void shouldParseSnapshotWithScenario() { + Snapshot snapshot = + Snapshot.parse( + Snapshot.builder() .name("au.com.origin.snapshots.Test") .scenario("scenario") .body("body") .build() - .raw() - ); - assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); - assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); - assertThat(snapshot.getHeader()).isEmpty(); - assertThat(snapshot.getScenario()).isEqualTo("scenario"); - assertThat(snapshot.getBody()).isEqualTo("body"); - } + .raw()); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).isEmpty(); + assertThat(snapshot.getScenario()).isEqualTo("scenario"); + assertThat(snapshot.getBody()).isEqualTo("body"); + } - @Test - public void shouldParseSnapshotWithScenarioAndHeaders() { - SnapshotHeader header = new SnapshotHeader(); - header.put("header1", "value1"); - Snapshot snapshot = Snapshot.parse(Snapshot.builder() + @Test + public void shouldParseSnapshotWithScenarioAndHeaders() { + SnapshotHeader header = new SnapshotHeader(); + header.put("header1", "value1"); + Snapshot snapshot = + Snapshot.parse( + Snapshot.builder() .name("au.com.origin.snapshots.Test") .scenario("scenario") .header(header) .body("body") .build() - .raw() - ); - assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); - assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); - assertThat(snapshot.getHeader()).containsExactly(entry("header1", "value1")); - assertThat(snapshot.getScenario()).isEqualTo("scenario"); - assertThat(snapshot.getBody()).isEqualTo("body"); - } + .raw()); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).containsExactly(entry("header1", "value1")); + assertThat(snapshot.getScenario()).isEqualTo("scenario"); + assertThat(snapshot.getBody()).isEqualTo("body"); + } - @Test - public void shouldParseSnapshotWithScenarioAndBodyWithSomethingSimilarToAnScenarioToConfuseRegex() { - Snapshot snapshot = Snapshot.parse(Snapshot.builder() + @Test + public void + shouldParseSnapshotWithScenarioAndBodyWithSomethingSimilarToAnScenarioToConfuseRegex() { + Snapshot snapshot = + Snapshot.parse( + Snapshot.builder() .name("au.com.origin.snapshots.Test") .scenario("scenario") .body("[xxx]=yyy") .build() - .raw() - ); - System.out.println(snapshot.raw()); - assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); - assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); - assertThat(snapshot.getHeader()).isEmpty(); - assertThat(snapshot.getScenario()).isEqualTo("scenario"); - assertThat(snapshot.getBody()).isEqualTo("[xxx]=yyy"); - } + .raw()); + System.out.println(snapshot.raw()); + assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); + assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); + assertThat(snapshot.getHeader()).isEmpty(); + assertThat(snapshot.getScenario()).isEqualTo("scenario"); + assertThat(snapshot.getBody()).isEqualTo("[xxx]=yyy"); + } } From ec3d073fa5004e1119f3bce914121e6e8042010a Mon Sep 17 00:00:00 2001 From: Roger Vinas Date: Sun, 8 Dec 2024 21:47:04 +0100 Subject: [PATCH 5/5] Remove System.out --- .../src/test/java/au/com/origin/snapshots/SnapshotTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java b/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java index 1a87bda..ba1113d 100644 --- a/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java +++ b/java-snapshot-testing-core/src/test/java/au/com/origin/snapshots/SnapshotTest.java @@ -86,7 +86,6 @@ public void shouldParseSnapshotWithScenarioAndHeaders() { .body("[xxx]=yyy") .build() .raw()); - System.out.println(snapshot.raw()); assertThat(snapshot.getIdentifier()).isEqualTo("au.com.origin.snapshots.Test[scenario]"); assertThat(snapshot.getName()).isEqualTo("au.com.origin.snapshots.Test"); assertThat(snapshot.getHeader()).isEmpty();