52 lines
1.3 KiB
Java
52 lines
1.3 KiB
Java
package de.nclazz.commons.util;
|
|
|
|
import lombok.EqualsAndHashCode;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
class CanonTest {
|
|
|
|
@EqualsAndHashCode
|
|
public static class ImmutableClass {
|
|
final String str;
|
|
final int integer;
|
|
|
|
public ImmutableClass(String str, int integer) {
|
|
this.str = str;
|
|
this.integer = integer;
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void equalityTest() {
|
|
Canon<ImmutableClass> canon = new Canon<>();
|
|
|
|
ImmutableClass objectA = canon.getCanonical(new ImmutableClass("myString", 12));
|
|
|
|
for(int i = 0; i < 24; i++) {
|
|
|
|
ImmutableClass objectCanon = canon.getCanonical(new ImmutableClass("myString", 12));
|
|
|
|
assertEquals(objectA, objectCanon);
|
|
assertSame(objectA, objectCanon, () -> String.format("a: %s == %s", objectA, objectCanon));
|
|
}
|
|
|
|
}
|
|
|
|
@Test
|
|
void equalityTestGlobal() {
|
|
|
|
ImmutableClass objectA = Canon.canonical(new ImmutableClass("myString", 12));
|
|
|
|
for(int i = 0; i < 24; i++) {
|
|
|
|
ImmutableClass objectCanon = Canon.canonical(new ImmutableClass("myString", 12));
|
|
|
|
assertEquals(objectA, objectCanon);
|
|
assertSame(objectA, objectCanon, () -> String.format("a: %s == %s", objectA, objectCanon));
|
|
}
|
|
|
|
}
|
|
|
|
} |