Merge pull request #2666 from ebean-orm/feature/discriminatorString-compareTo

Fix: CompareTo when discriminatorString is null
This commit is contained in:
Rob Bygrave
2022-04-21 09:56:22 +12:00
committed by GitHub
2 changed files with 24 additions and 7 deletions
@@ -259,15 +259,11 @@ public final class DeployInheritInfo implements Comparable<DeployInheritInfo> {
}
@Override
public int compareTo(DeployInheritInfo o) {
if (o == this || o.discriminatorStringValue == null && discriminatorStringValue == null) {
public int compareTo(DeployInheritInfo other) {
if (other == this) {
return 0;
} else if (o.discriminatorStringValue == null) {
return 1;
} else if (discriminatorStringValue == null) {
return -1;
} else {
return discriminatorStringValue.compareTo(o.discriminatorStringValue);
return type.getName().compareTo(other.type.getName());
}
}
@@ -0,0 +1,21 @@
package io.ebeaninternal.server.deploy.parse;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
class DeployInheritInfoTest {
@Test
void addChild_when_DiscriminatorValueIsNull() {
DeployInheritInfo root = new DeployInheritInfo(Object.class);
root.addChild(new DeployInheritInfo(Integer.class)); // DiscriminatorValue is null
root.addChild(new DeployInheritInfo(Short.class)); // DiscriminatorValue is null
DeployInheritInfo c2 = new DeployInheritInfo(Long.class);
c2.setDiscriminatorValue("c2");
root.addChild(c2);
assertThat(root.children()).hasSize(3);
}
}