* BAEL-7891: Test for equality vs identity

* BAEL-7891: Fixed formatting

* BAEL-7891: Fixed a type and a bug
This commit is contained in:
Eugene Kovko 2024-04-26 18:41:27 +02:00 committed by GitHub
parent 0522022a08
commit 2d4598d82d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 78 additions and 0 deletions

View File

@ -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);
}
}

View File

@ -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;
}
}