Kotlin class instance assert not correct -


i'm converting java project kotlin. i've converted user object kotlin , when run existing junit tests in java i'm getting error between 2 instances of kotlin user object.

user.kt:

data class user ( @id @generatedvalue(strategy = generationtype.sequence, generator = "sequencegenerator") @sequencegenerator(name = "sequencegenerator") var id: long? = null, ... ) 

testutil.java

import static org.assertj.core.api.assertions.assertthat;  public class testutil {     public static void equalsverifier(class clazz) throws exception {         object domainobject1 = clazz.getconstructor().newinstance();         // test instance of same class         object domainobject2 = clazz.getconstructor().newinstance();         assertthat(domainobject1).isnotequalto(domainobject2);     } } 

the assertthat(domainobject1).isnotequalto(domainobject2) test fails, believe in java comparison not done correctly on kotlin class. if run through debugger, can see domainobject1 , domainobject2 different instances.

is possible test case pass? same test case used other java classes, has work both java , kotlin classes.

the isnotequalto calls equals. kotlin class implements correct equals method data class. domainobject1.equals(domainobject2) true. behavior correct.

just @ assertj document:

isnotsameas(object other):     verifies actual value not same given one,     ie using == comparison. 

i think should try:

    assertthat(domainobject1).isnotsameas(domainobject2); 

Comments

Popular posts from this blog

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

python Tkinter Capturing keyboard events save as one single string -

sql server - Why does Linq-to-SQL add unnecessary COUNT()? -