diff --git a/testing-modules/junit-5-basics-2/src/test/java/com/baeldung/junit/equalsvssame/EqualsVsSameUnitTest.java b/testing-modules/junit-5-basics-2/src/test/java/com/baeldung/junit/equalsvssame/EqualsVsSameUnitTest.java new file mode 100644 index 0000000000..2019f44185 --- /dev/null +++ b/testing-modules/junit-5-basics-2/src/test/java/com/baeldung/junit/equalsvssame/EqualsVsSameUnitTest.java @@ -0,0 +1,57 @@ +package com.baeldung.junit.equalsvssame; + + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertSame; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; + +class EqualsVsSameUnitTest { + + @ParameterizedTest + @ValueSource(strings = {"Hello", "World"}) + void givenAString_WhenCompare_ThenItEqualsAndSame(String string) { + assertEquals(string, string); + assertSame(string, string); + } + + public boolean equals(Object obj) { + return (this == obj); + } + + @ParameterizedTest + @ValueSource(strings = {"Hello", "World"}) + void givenAStrings_WhenCompareNewStrings_ThenItEqualsButNotSame(String string) { + assertEquals(new String(string), new String(string)); + assertNotSame(new String(string), new String(string)); + } + + @ParameterizedTest + @ValueSource(strings = {"Hello", "World"}) + void givenAString_WhenCompareInJava_ThenItEqualsAndSame(String string) { + assertTrue(string.equals(string)); + assertTrue(string == string); + } + + @ParameterizedTest + @ValueSource(strings = {"Hello", "World"}) + void givenAStrings_WhenCompareNewStringsInJava_ThenItEqualsButNotSame(String string) { + assertTrue(new String(string).equals(new String(string))); + assertFalse(new String(string) == new String(string)); + } + + @Test + void givePeople_WhenCompareWithoutOverridingEquals_TheyNotEqual() { + Person firstPerson = new Person("John", "Doe"); + Person secondPerson = new Person("John", "Doe"); + assertNotEquals(firstPerson, secondPerson); + } + + +} diff --git a/testing-modules/junit-5-basics-2/src/test/java/com/baeldung/junit/equalsvssame/Person.java b/testing-modules/junit-5-basics-2/src/test/java/com/baeldung/junit/equalsvssame/Person.java new file mode 100644 index 0000000000..2c0e0a34d8 --- /dev/null +++ b/testing-modules/junit-5-basics-2/src/test/java/com/baeldung/junit/equalsvssame/Person.java @@ -0,0 +1,21 @@ +package com.baeldung.junit.equalsvssame; + +public class Person { + + private final String firstName; + private final String lastName; + + public Person(String firstName, String lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } +} +