Skip to content

Commit d409308

Browse files
author
programmerr47
committed
#5 added throwing runtime exception when methods in wrappable interface have more than 2 parameters
1 parent ac910a9 commit d409308

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

Diff for: ganalytics-core/src/main/java/com/github/programmerr47/ganalytics/core/AnalyticsSingleWrapper.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ class AnalyticsSingleWrapper(private val eventProvider: EventProvider) : Analyti
1818
applyPrefix(defaultAction, category, method, clazz)
1919
}
2020

21-
val label = (args.firstOrNull() ?: "").toString()
21+
if (method.parameterCount > 2) {
22+
throw IllegalArgumentException("Method ${method.name} have ${method.parameterCount} parameter(s). You can have up to 2 parameters in methods.")
23+
}
24+
25+
val label = (args?.firstOrNull() ?: "").toString()
2226

2327
val event = Event(category, action, label)
2428
eventProvider.provide(event)

Diff for: ganalytics-core/src/test/java/com/github/programmerr47/ganalytics/core/LabelDefaultsTest.kt

+8
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,12 @@ class LabelDefaultsTest : AnalyticsWrapperTest {
1717
assertEquals(Event("singleparametermethodinterface", "dummyEnumClassMethod", "TWO")) { dummyEnumClassMethod(DummyEnum.TWO) }
1818
}
1919
}
20+
21+
@Test(expected = IllegalArgumentException::class)
22+
fun throwErrorInMoreThanTwoParameterMethod() {
23+
run(MoreTwoParameterMethodInterface::class) {
24+
assertEquals(Event("moretwoparametermethodinterface", "method1")) { method1() }
25+
method2("1", 2, 3L)
26+
}
27+
}
2028
}

Diff for: ganalytics-core/src/test/java/com/github/programmerr47/ganalytics/core/test_interfaces.kt

+5
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,9 @@ interface SingleParameterMethodInterface {
7474
fun dummyClassMethod(param: DummyClass)
7575
fun dummyDataClassMethod(param: DummyDataClass)
7676
fun dummyEnumClassMethod(param: DummyEnum)
77+
}
78+
79+
interface MoreTwoParameterMethodInterface {
80+
fun method1()
81+
fun method2(param1: String, param2: Int, param3: Long)
7782
}

0 commit comments

Comments
 (0)