Skip to content

Commit

Permalink
Make sure to generate java source files in correct package like it is…
Browse files Browse the repository at this point in the history
… done for room (mentioned here tschuchortdev/kotlin-compile-testing#105 (comment)) but this also does not work.

Disabled ksp test for inner classes in java because of tschuchortdev/kotlin-compile-testing#105
  • Loading branch information
Andreas Rossbacher committed Jun 29, 2021
1 parent 1733fcd commit 872847d
Show file tree
Hide file tree
Showing 5 changed files with 137 additions and 97 deletions.
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
package com.airbnb.deeplinkdispatch

import com.airbnb.deeplinkdispatch.test.Source
import com.tschuchort.compiletesting.KotlinCompilation
import com.tschuchort.compiletesting.OptionName
import com.tschuchort.compiletesting.OptionValue
import com.tschuchort.compiletesting.SourceFile
import com.tschuchort.compiletesting.kspArgs
import com.tschuchort.compiletesting.kspSourcesDir
import com.tschuchort.compiletesting.symbolProcessorProviders
import org.assertj.core.api.Assertions
import java.io.File

open class BaseDeepLinkProcessorTest {
@JvmField
protected val fakeBaseDeeplinkDelegate = SourceFile.java(
"BaseDeepLinkDelegate.java",
protected val fakeBaseDeeplinkDelegate = Source.JavaSource(
"com.airbnb.deeplinkdispatch.BaseDeepLinkDelegate",
"""
package com.airbnb.deeplinkdispatch;
Expand All @@ -30,10 +29,11 @@ open class BaseDeepLinkProcessorTest {
"""
)

internal val module = SourceFile.java(
"SampleModule.java",
internal val module = Source.JavaSource(
"com.example.SampleModule",
"""
package com.example;import com.airbnb.deeplinkdispatch.DeepLinkModule;
package com.example;
import com.airbnb.deeplinkdispatch.DeepLinkModule;
@DeepLinkModule
public class SampleModule {
Expand Down Expand Up @@ -90,12 +90,15 @@ open class BaseDeepLinkProcessorTest {
}

internal fun compile(
sourceFiles: List<SourceFile>,
sourceFiles: List<Source>,
arguments: MutableMap<OptionName, OptionValue>? = null,
useKsp: Boolean = false
): CompileResult {
val compilation = KotlinCompilation().apply {
sources = sourceFiles
val sourcesDir = workingDir.resolve("sources")
sources = sourceFiles.map {
it.toKotlinSourceFile(sourcesDir)
}
if (useKsp) {
symbolProcessorProviders = listOf(DeepLinkProcessorProvider())
arguments?.let { kspArgs = arguments }
Expand All @@ -116,7 +119,7 @@ open class BaseDeepLinkProcessorTest {
}

internal fun compileIncremental(
sourceFiles: List<SourceFile>,
sourceFiles: List<Source>,
customDeepLinks: List<String>?,
useKsp: Boolean = false,
incrementalFlag: Boolean = true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.airbnb.deeplinkdispatch

import com.tschuchort.compiletesting.SourceFile
import com.airbnb.deeplinkdispatch.test.Source
import org.junit.Test

class DeepLinkProcessorIncrementalTest : BaseDeepLinkProcessorTest() {
private val customAnnotationAppLink = SourceFile.java(
"AppDeepLink.java",
private val customAnnotationAppLink = Source.JavaSource(
"com.example.AppDeepLink",
"""
package com.example;
import com.airbnb.deeplinkdispatch.DeepLinkSpec;
Expand All @@ -15,8 +15,8 @@ class DeepLinkProcessorIncrementalTest : BaseDeepLinkProcessorTest() {
}
"""
)
private val customAnnotationPlaceholderInSchemeHostAppLink = SourceFile.java(
"PlaceholderDeepLink.java",
private val customAnnotationPlaceholderInSchemeHostAppLink = Source.JavaSource(
"com.example.PlaceholderDeepLink",
"""
package com.example;
import com.airbnb.deeplinkdispatch.DeepLinkSpec;
Expand All @@ -26,8 +26,8 @@ class DeepLinkProcessorIncrementalTest : BaseDeepLinkProcessorTest() {
}
"""
)
private val sampleActivityWithStandardAndCustomDeepLink = SourceFile.java(
"SampleActivity.java",
private val sampleActivityWithStandardAndCustomDeepLink = Source.JavaSource(
"com.example.SampleActivity",
"""
package com.example;
import com.airbnb.deeplinkdispatch.DeepLink;
Expand All @@ -37,8 +37,8 @@ class DeepLinkProcessorIncrementalTest : BaseDeepLinkProcessorTest() {
}
"""
)
private val sampleActivityWithInnerClassDeeplinkJava = SourceFile.java(
"SampleActivity.java",
private val sampleActivityWithInnerClassDeeplinkJava = Source.JavaSource(
"com.example.SampleActivity",
"""
package com.example;
import com.airbnb.deeplinkdispatch.DeepLink;
Expand All @@ -57,7 +57,7 @@ class DeepLinkProcessorIncrementalTest : BaseDeepLinkProcessorTest() {
}
"""
)
private val sampleActivityWithInnerClassDeeplinkKotlin = SourceFile.kotlin(
private val sampleActivityWithInnerClassDeeplinkKotlin = Source.KotlinSource(
"SampleActivity.kt",
"""
package com.example
Expand All @@ -78,8 +78,8 @@ class DeepLinkProcessorIncrementalTest : BaseDeepLinkProcessorTest() {
}
"""
)
private val sampleActivityWithOnlyCustomDeepLink = SourceFile.java(
"SampleActivity.java",
private val sampleActivityWithOnlyCustomDeepLink = Source.JavaSource(
"com.example.SampleActivity",
"""
package com.example;import com.airbnb.deeplinkdispatch.DeepLink;
import com.airbnb.deeplinkdispatch.DeepLinkHandler;
Expand All @@ -92,8 +92,8 @@ class DeepLinkProcessorIncrementalTest : BaseDeepLinkProcessorTest() {
}
"""
)
private val sampleActivityWithOnlyCustomPlaceholderDeepLink = SourceFile.java(
"SampleActivity.java",
private val sampleActivityWithOnlyCustomPlaceholderDeepLink = Source.JavaSource(
"com.example.SampleActivity",
"""
package com.example;import com.airbnb.deeplinkdispatch.DeepLink;
import com.airbnb.deeplinkdispatch.DeepLinkHandler;
Expand Down Expand Up @@ -378,16 +378,18 @@ class DeepLinkProcessorIncrementalTest : BaseDeepLinkProcessorTest() {
fakeBaseDeeplinkDelegate,
)
val results = listOf(
compileIncremental(
sourceFiles = sourceFiles,
customDeepLinks = null,
useKsp = false,
),
compileIncremental(
sourceFiles = sourceFiles,
customDeepLinks = null,
useKsp = true,
)
useKsp = false,
),
// Need to disable for now because of bug in compile testing lib
// https://github.com/tschuchortdev/kotlin-compile-testing/issues/105
// compileIncremental(
// sourceFiles = sourceFiles,
// customDeepLinks = null,
// useKsp = true,
// )
)
assertGeneratedCode(
results = results,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,45 +1,37 @@
package com.airbnb.deeplinkdispatch

import com.tschuchort.compiletesting.SourceFile
import com.airbnb.deeplinkdispatch.test.Source
import org.junit.Test

class DeepLinkProcessorKspTest : BaseDeepLinkProcessorTest() {

private val customWebDeepLinkJava: SourceFile
get() {
val customAnnotationWebLink = SourceFile.java(
"WebDeepLink.java",
"""
private val customWebDeepLinkJava = Source.JavaSource(
"com.example.WebDeepLink",
"""
package com.example;
import com.airbnb.deeplinkdispatch.DeepLinkSpec;
@DeepLinkSpec(prefix = { "http://", "https://"})
public @interface WebDeepLink {
String[] value();
}
"""
)
return customAnnotationWebLink
}
)

private val customAppDeepLinkJava: SourceFile
get() {
val customAnnotationAppLink = SourceFile.java(
"AppDeepLink.java",
"""
private val customAppDeepLinkJava = Source.JavaSource(
"com.example.AppDeepLink",
"""
package com.example;
import com.airbnb.deeplinkdispatch.DeepLinkSpec;
@DeepLinkSpec(prefix = { "example://" })
public @interface AppDeepLink {
String[] value();
}
"""
)
return customAnnotationAppLink
}
)

@Test
fun testWithKotlinSource() {
val sampleActivityKotlin = SourceFile.kotlin(
val sampleActivityKotlin = Source.KotlinSource(
"SampleActivity.kt",
"""
package com.example
Expand Down Expand Up @@ -159,8 +151,8 @@ class DeepLinkProcessorKspTest : BaseDeepLinkProcessorTest() {

@Test
fun testKsp() {
val sampleActivityJava = SourceFile.java(
"SampleActivity.java",
val sampleActivityJava = Source.JavaSource(
"com.example.SampleActivity",
"""
package com.example;
import com.airbnb.deeplinkdispatch.DeepLink;
Expand Down
Loading

0 comments on commit 872847d

Please sign in to comment.