From e7cbb6af5cdbe9719752a18b10a43037c359f304 Mon Sep 17 00:00:00 2001 From: surajdm123 Date: Thu, 3 Jul 2025 01:48:47 -0700 Subject: [PATCH 1/2] Added JUnit Test Cases for Replacement --- .../java/ReplacementTest.java | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 core/src/test/java/com/google/googlejavaformat/java/ReplacementTest.java diff --git a/core/src/test/java/com/google/googlejavaformat/java/ReplacementTest.java b/core/src/test/java/com/google/googlejavaformat/java/ReplacementTest.java new file mode 100644 index 000000000..274731e7c --- /dev/null +++ b/core/src/test/java/com/google/googlejavaformat/java/ReplacementTest.java @@ -0,0 +1,97 @@ +/* + * Copyright 2019 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package com.google.googlejavaformat.java; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.*; + +import com.google.common.collect.Range; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** {@link Replacement}Test */ +@RunWith(JUnit4.class) +public class ReplacementTest { + + @Test + public void testCreateWithValidInput() { + Replacement replacement = Replacement.create(3, 7, "replacementText"); + assertThat(replacement.getReplaceRange()).isEqualTo(Range.closedOpen(3, 7)); + assertThat(replacement.getReplacementString()).isEqualTo("replacementText"); + } + + @Test + public void testCreateWithNegativeStartPositionThrows() { + try { + Replacement.create(-1, 5, "text"); + fail("Expected IllegalArgumentException for negative startPosition"); + } catch (IllegalArgumentException e) { + assertThat(e).hasMessageThat().contains("startPosition must be non-negative"); + } + } + + @Test + public void testCreateWithStartPositionAfterEndPositionThrows() { + try { + Replacement.create(10, 5, "text"); + fail("Expected IllegalArgumentException for startPosition after endPosition"); + } catch (IllegalArgumentException e) { + assertThat(e).hasMessageThat().contains("startPosition cannot be after endPosition"); + } + } + + @Test + public void testEqualsAndHashCodeWithEqualReplacements() { + Replacement a = Replacement.create(0, 4, "abc"); + Replacement b = Replacement.create(0, 4, "abc"); + assertThat(a).isEqualTo(b); + assertThat(a.hashCode()).isEqualTo(b.hashCode()); + } + + @Test + public void testEqualsWithDifferentReplaceRange() { + Replacement a = Replacement.create(0, 4, "abc"); + Replacement b = Replacement.create(1, 4, "abc"); + assertThat(a).isNotEqualTo(b); + } + + @Test + public void testEqualsWithDifferentReplacementString() { + Replacement a = Replacement.create(0, 4, "abc"); + Replacement b = Replacement.create(0, 4, "def"); + assertThat(a).isNotEqualTo(b); + } + + @Test + public void testEqualsWithNullAndDifferentType() { + Replacement a = Replacement.create(0, 4, "abc"); + assertThat(a).isNotEqualTo(null); + assertThat(a).isNotEqualTo("NotAReplacement"); + } + + @Test + public void testGetReplaceRangeReturnsCorrectRange() { + Replacement replacement = Replacement.create(5, 10, "text"); + assertThat(replacement.getReplaceRange()).isEqualTo(Range.closedOpen(5, 10)); + } + + @Test + public void testGetReplacementStringReturnsCorrectString() { + Replacement replacement = Replacement.create(5, 10, "text"); + assertThat(replacement.getReplacementString()).isEqualTo("text"); + } + +} \ No newline at end of file From 1bad87cbc8f513a475d9917ec0d7615c550c6ddb Mon Sep 17 00:00:00 2001 From: surajdm123 Date: Wed, 16 Jul 2025 22:23:09 -0700 Subject: [PATCH 2/2] Addressed comments for ReplacementTest --- .../java/ReplacementTest.java | 64 ++++--------------- 1 file changed, 14 insertions(+), 50 deletions(-) diff --git a/core/src/test/java/com/google/googlejavaformat/java/ReplacementTest.java b/core/src/test/java/com/google/googlejavaformat/java/ReplacementTest.java index 274731e7c..b2d504732 100644 --- a/core/src/test/java/com/google/googlejavaformat/java/ReplacementTest.java +++ b/core/src/test/java/com/google/googlejavaformat/java/ReplacementTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google Inc. + * Copyright 2025 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -18,6 +18,7 @@ import static org.junit.Assert.*; import com.google.common.collect.Range; +import com.google.common.testing.EqualsTester; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -35,63 +36,26 @@ public void testCreateWithValidInput() { @Test public void testCreateWithNegativeStartPositionThrows() { - try { - Replacement.create(-1, 5, "text"); - fail("Expected IllegalArgumentException for negative startPosition"); - } catch (IllegalArgumentException e) { - assertThat(e).hasMessageThat().contains("startPosition must be non-negative"); - } + assertThrows(IllegalArgumentException.class, () -> Replacement.create(-1, 5, "text")); } @Test public void testCreateWithStartPositionAfterEndPositionThrows() { - try { - Replacement.create(10, 5, "text"); - fail("Expected IllegalArgumentException for startPosition after endPosition"); - } catch (IllegalArgumentException e) { - assertThat(e).hasMessageThat().contains("startPosition cannot be after endPosition"); - } + assertThrows(IllegalArgumentException.class, () -> Replacement.create(10, 5, "text")); } @Test - public void testEqualsAndHashCodeWithEqualReplacements() { - Replacement a = Replacement.create(0, 4, "abc"); - Replacement b = Replacement.create(0, 4, "abc"); - assertThat(a).isEqualTo(b); - assertThat(a.hashCode()).isEqualTo(b.hashCode()); - } - - @Test - public void testEqualsWithDifferentReplaceRange() { - Replacement a = Replacement.create(0, 4, "abc"); - Replacement b = Replacement.create(1, 4, "abc"); - assertThat(a).isNotEqualTo(b); - } - - @Test - public void testEqualsWithDifferentReplacementString() { - Replacement a = Replacement.create(0, 4, "abc"); - Replacement b = Replacement.create(0, 4, "def"); - assertThat(a).isNotEqualTo(b); - } + public void testEqualsAndHashCode() { + Replacement replacement = Replacement.create(0, 4, "abc"); + Replacement replacementCopy = Replacement.create(0, 4, "abc"); + Replacement differentStart = Replacement.create(1, 4, "abc"); + Replacement differentText = Replacement.create(0, 4, "def"); - @Test - public void testEqualsWithNullAndDifferentType() { - Replacement a = Replacement.create(0, 4, "abc"); - assertThat(a).isNotEqualTo(null); - assertThat(a).isNotEqualTo("NotAReplacement"); - } - - @Test - public void testGetReplaceRangeReturnsCorrectRange() { - Replacement replacement = Replacement.create(5, 10, "text"); - assertThat(replacement.getReplaceRange()).isEqualTo(Range.closedOpen(5, 10)); - } - - @Test - public void testGetReplacementStringReturnsCorrectString() { - Replacement replacement = Replacement.create(5, 10, "text"); - assertThat(replacement.getReplacementString()).isEqualTo("text"); + new EqualsTester() + .addEqualityGroup(replacement, replacementCopy) + .addEqualityGroup(differentStart) + .addEqualityGroup(differentText) + .testEquals(); } } \ No newline at end of file