DATAJDBC-427 - IdOnlyAggregateReference no supports equality.

Original pull request: #172.
This commit is contained in:
mhyeon-lee
2019-10-04 14:36:54 +09:00
committed by Jens Schauder
parent 8d1578e42c
commit f40c9e13c9
2 changed files with 45 additions and 0 deletions

View File

@@ -15,7 +15,9 @@
*/
package org.springframework.data.jdbc.core.mapping;
import lombok.EqualsAndHashCode;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
import org.springframework.lang.Nullable;
@@ -25,6 +27,7 @@ import org.springframework.lang.Nullable;
* @param <T> the type of the referenced aggregate root.
* @param <ID> the type of the id of the referenced aggregate root.
* @author Jens Schauder
* @author Myeonghyeon Lee
* @since 1.0
*/
public interface AggregateReference<T, ID> {
@@ -47,6 +50,8 @@ public interface AggregateReference<T, ID> {
* @param <ID>
*/
@RequiredArgsConstructor
@EqualsAndHashCode
@ToString
class IdOnlyAggregateReference<T, ID> implements AggregateReference<T, ID> {
private final ID id;

View File

@@ -0,0 +1,40 @@
package org.springframework.data.jdbc.core.mapping;
import static org.assertj.core.api.Assertions.*;
import org.junit.Test;
import org.springframework.data.jdbc.core.mapping.AggregateReference.IdOnlyAggregateReference;
/**
* Unit tests for the {@link IdOnlyAggregateReference}.
*
* @author Myeonghyeon Lee
*/
public class IdOnlyAggregateReferenceTest {
@Test // DATAJDBC-427
public void equals() {
AggregateReference<DummyEntity, String> reference1 = AggregateReference.to("1");
AggregateReference<DummyEntity, String> reference2 = AggregateReference.to("1");
assertThat(reference1.equals(reference2)).isTrue();
assertThat(reference2.equals(reference1)).isTrue();
}
@Test // DATAJDBC-427
public void equalsFalse() {
AggregateReference<DummyEntity, String> reference1 = AggregateReference.to("1");
AggregateReference<DummyEntity, String> reference2 = AggregateReference.to("2");
assertThat(reference1.equals(reference2)).isFalse();
assertThat(reference2.equals(reference1)).isFalse();
}
@Test // DATAJDBC-427
public void hashCodeTest() {
AggregateReference<DummyEntity, String> reference1 = AggregateReference.to("1");
AggregateReference<DummyEntity, String> reference2 = AggregateReference.to("1");
assertThat(reference1.hashCode()).isEqualTo(reference2.hashCode());
}
private static class DummyEntity {
private String id;
}
}