File tree Expand file tree Collapse file tree 2 files changed +21
-1
lines changed
jvmMain/kotlin/assertk/assertions
jvmTest/kotlin/test/assertk/assertions Expand file tree Collapse file tree 2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -82,7 +82,7 @@ fun <T : Any> Assert<T>.isDataClassEqualTo(expected: T) = given { actual ->
8282
8383private fun <T > Assert<T>.isDataClassEqualToImpl (expected : T , kclass : KClass <* >? ): Unit = given { actual ->
8484 if (actual == expected) return
85- val compareProps = actual != null && expected != null
85+ val compareProps = actual != null && expected?. let { it:: class } == kclass
8686 if (compareProps && kclass != null && kclass.isData) {
8787 for (memberProp in kclass.memberProperties) {
8888 @Suppress(" UNCHECKED_CAST" )
Original file line number Diff line number Diff line change @@ -111,6 +111,11 @@ class JavaAnyTest {
111111 .isDataClassEqualTo(DataClass (InnerDataClass (" test" ), 1 , ' a' ))
112112 }
113113
114+ @Test
115+ fun isDataClassEqualTo_equal_data_objects_passes () {
116+ assertThat(DataObject ).isDataClassEqualTo(DataObject )
117+ }
118+
114119 @Test
115120 fun isDataClassEqualTo_reports_all_properties_that_differ_on_failure () {
116121 val error = assertFailsWith<AssertionError > {
@@ -152,6 +157,17 @@ class JavaAnyTest {
152157 """ .trimMargin().lines(), error.message!! .lines()
153158 )
154159 }
160+
161+ @Test
162+ fun isDataClassEqualTo_fails_different_data_objects () {
163+ val error = assertFailsWith<AssertionError > {
164+ assertThat(DataObject ).isDataClassEqualTo(OtherDataObject )
165+ }
166+ assertEquals(
167+ " expected:<[Other]DataObject> but was:<[]DataObject>"
168+ .lines(), error.message!! .lines()
169+ )
170+ }
155171 // endregion
156172
157173 // region isEqualToIgnoringGivenProperties
@@ -217,5 +233,9 @@ class JavaAnyTest {
217233 data class DataClass (val one : InnerDataClass ? , val two : Int , val three : Char )
218234
219235 data class InnerDataClass (val inner : String )
236+
237+ data object DataObject
238+
239+ data object OtherDataObject
220240}
221241
You can’t perform that action at this time.
0 commit comments