Skip to content

Commit 1ec5a87

Browse files
committed
Fix ResponseTest: disable default constructor & toString checks for Kotlin Data Classes
1 parent d1d11eb commit 1ec5a87

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

library/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ dependencies {
1616
testImplementation 'junit:junit:4.13.1'
1717
testImplementation 'nl.jqno.equalsverifier:equalsverifier:3.1.13'
1818
testImplementation 'org.reflections:reflections:0.9.12'
19+
testImplementation 'org.jetbrains.kotlin:kotlin-reflect'
1920
}
2021

2122
jar {

library/src/test/java/com/pengrad/telegrambot/ResponseTest.java

+8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.pengrad.telegrambot;
22

33
import com.pengrad.telegrambot.response.BaseResponse;
4+
import kotlin.jvm.JvmClassMappingKt;
5+
import kotlin.reflect.KClass;
46
import org.junit.Before;
57
import org.junit.Test;
68
import org.reflections.Reflections;
@@ -33,6 +35,12 @@ public void setClasses() {
3335
@Test
3436
public void testToString() throws IllegalAccessException, InstantiationException, InvocationTargetException {
3537
for (Class<? extends BaseResponse> c : classes) {
38+
KClass<? extends BaseResponse> kclass = JvmClassMappingKt.getKotlinClass(c);
39+
40+
if (kclass.isData()) {
41+
continue;
42+
}
43+
3644
Optional<Constructor<?>> constructor = Arrays.stream(c.getDeclaredConstructors()).filter(dc -> dc.getParameterCount() == 0).findFirst();
3745
assertTrue("No default constructor in " + c.getSimpleName(), constructor.isPresent());
3846
constructor.get().setAccessible(true);

0 commit comments

Comments
 (0)