Skip to content

Commit 91ba644

Browse files
authored
Support for more Joda time classes (#32)
Plus update Kotlin to 1.3.61 and detekt to 1.2.0
1 parent ea0ccbe commit 91ba644

File tree

6 files changed

+22
-7
lines changed

6 files changed

+22
-7
lines changed

build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
1919

2020
plugins {
2121
id("com.github.ben-manes.versions") version "0.27.0"
22-
id("io.gitlab.arturbosch.detekt") version "1.1.1"
22+
id("io.gitlab.arturbosch.detekt") version "1.2.0"
2323
id("com.appmattus.markdown") version "0.6.0"
2424
}
2525

@@ -29,7 +29,7 @@ buildscript {
2929
jcenter()
3030
}
3131
dependencies {
32-
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.60")
32+
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61")
3333
classpath("com.android.tools.build:gradle:3.5.2")
3434
}
3535
}
@@ -67,7 +67,7 @@ tasks.withType(DependencyUpdatesTask::class.java).all {
6767
}
6868

6969
dependencies {
70-
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.1.1")
70+
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.2.0")
7171
}
7272

7373
detekt {

fixture/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ apply(from = "$rootDir/gradle/scripts/jacoco.gradle.kts")
2626

2727
dependencies {
2828
implementation(kotlin("stdlib-jdk8"))
29-
implementation("io.github.classgraph:classgraph:4.8.54")
29+
implementation("io.github.classgraph:classgraph:4.8.56")
3030
implementation(kotlin("reflect"))
3131

3232
compileOnly("joda-time:joda-time:2.10.5")

fixture/src/main/kotlin/com/appmattus/kotlinfixture/resolver/JodaTimeResolver.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import org.joda.time.DateTime
2323
import org.joda.time.DateTimeZone
2424
import org.joda.time.Duration
2525
import org.joda.time.Instant
26+
import org.joda.time.Interval
2627
import org.joda.time.LocalDate
2728
import org.joda.time.LocalDateTime
2829
import org.joda.time.LocalTime
@@ -42,6 +43,8 @@ internal class JodaTimeResolver : Resolver {
4243
DateTime::class -> DateTime(context.generateInstant(), context.randomDateTimeZone())
4344
Period::class -> context.generatePeriod()
4445
Duration::class -> context.generateDuration()
46+
DateTimeZone::class -> context.randomDateTimeZone()
47+
Interval::class -> context.generateInterval()
4548
else -> Unresolved
4649
}
4750
} else {
@@ -80,6 +83,11 @@ internal class JodaTimeResolver : Resolver {
8083
}
8184
}
8285

86+
private fun Context.generateInterval(): Interval {
87+
val instants = listOf(resolve(typeOf<Instant>()) as Instant, resolve(typeOf<Instant>()) as Instant).sorted()
88+
return Interval(instants[0], instants[1])
89+
}
90+
8391
companion object {
8492
private val hasJodaTime: Boolean by lazy {
8593
try {

fixture/src/test/kotlin/com/appmattus/kotlinfixture/ComparisonTest.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,8 @@ class ComparisonTest {
404404
arrayOf(typeOf<org.joda.time.DateTime>(), VALID, VALID, VALID, VALID),
405405
arrayOf(typeOf<org.joda.time.Duration>(), VALID, VALID, IGNORE, VALID),
406406
arrayOf(typeOf<org.joda.time.Period>(), VALID, NOT_RANDOM, NOT_RANDOM, NOT_RANDOM),
407+
arrayOf(typeOf<org.joda.time.DateTimeZone>(), VALID, UNSUPPORTED, UNSUPPORTED, UNSUPPORTED),
408+
arrayOf(typeOf<org.joda.time.Interval>(), VALID, UNSUPPORTED, UNSUPPORTED, UNSUPPORTED),
407409

408410
// Tuples
409411
arrayOf(typeOf<Pair<String, String>>(), VALID, UNSUPPORTED, VALID, VALID),

fixture/src/test/kotlin/com/appmattus/kotlinfixture/resolver/AbstractClassResolverTest.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class AbstractClassResolverTest {
4646
assertEquals(Unresolved, result)
4747
}
4848

49+
@Suppress("UnnecessaryAbstractClass")
4950
abstract class SingleAbstractClass {
5051
object OnlySubclass : SingleAbstractClass()
5152
}
@@ -57,7 +58,7 @@ class AbstractClassResolverTest {
5758
assertEquals(SingleAbstractClass.OnlySubclass::class, result)
5859
}
5960

60-
@Suppress("unused")
61+
@Suppress("unused", "UnnecessaryAbstractClass")
6162
abstract class MultiAbstractClass {
6263
object SubclassA : MultiAbstractClass()
6364
object SubclassB : MultiAbstractClass()
@@ -99,7 +100,7 @@ class AbstractClassResolverTest {
99100
assertEquals(SingleInterfaceClass.OnlySubclass::class, result)
100101
}
101102

102-
@Suppress("unused")
103+
@Suppress("unused", "UnnecessaryAbstractClass")
103104
abstract class MultiInterfaceClass {
104105
object SubclassA : MultiInterfaceClass()
105106
object SubclassB : MultiInterfaceClass()

fixture/src/test/kotlin/com/appmattus/kotlinfixture/resolver/JodaTimeResolverTest.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@ import com.appmattus.kotlinfixture.config.Configuration
2323
import com.appmattus.kotlinfixture.config.ConfigurationBuilder
2424
import com.appmattus.kotlinfixture.config.before
2525
import org.joda.time.DateTime
26+
import org.joda.time.DateTimeZone
2627
import org.joda.time.Duration
2728
import org.joda.time.Instant
29+
import org.joda.time.Interval
2830
import org.joda.time.LocalDate
2931
import org.joda.time.LocalDateTime
3032
import org.joda.time.LocalTime
@@ -110,7 +112,9 @@ class JodaTimeResolverTest {
110112
arrayOf(LocalDateTime::class),
111113
arrayOf(DateTime::class),
112114
arrayOf(Period::class),
113-
arrayOf(Duration::class)
115+
arrayOf(Duration::class),
116+
arrayOf(DateTimeZone::class),
117+
arrayOf(Interval::class)
114118
)
115119
}
116120
}

0 commit comments

Comments
 (0)