Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate unit tests to Kotlin #1060

Merged
merged 35 commits into from
Nov 30, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
ec282f3
Intro assertk and lints
Goooler Nov 30, 2024
8897494
integrationTestImplementation main sourceSet
Goooler Nov 30, 2024
a8bd26c
Migrate SimpleRelocatorParameterTest
Goooler Nov 30, 2024
f68b945
Migrate SimpleRelocatorTest
Goooler Nov 30, 2024
7c78960
Migrate ApacheLicenseResourceTransformerTest
Goooler Nov 30, 2024
4223c7a
Merge remote-tracking branch 'origin/main' into g/migrate-unit-tests
Goooler Nov 30, 2024
81d4cba
Fix merge
Goooler Nov 30, 2024
fdcfde2
Merge remote-tracking branch 'origin/main' into g/migrate-unit-tests
Goooler Nov 30, 2024
fb9c674
Migrate AppendingTransformerTest
Goooler Nov 30, 2024
fb31caf
Migrate XmlAppendingTransformerTest
Goooler Nov 30, 2024
a0a216f
Migrate ApacheNoticeResourceTransformerTest
Goooler Nov 30, 2024
1eb69b6
Merge remote-tracking branch 'origin/main' into g/migrate-unit-tests
Goooler Nov 30, 2024
912ac6c
Fix merge
Goooler Nov 30, 2024
c9279dd
Merge remote-tracking branch 'origin/main' into g/migrate-unit-tests
Goooler Nov 30, 2024
3d6e23d
Fix merge
Goooler Nov 30, 2024
35cb0b2
Move packages
Goooler Nov 30, 2024
04cb7ea
Migrate ManifestAppenderTransformerTest
Goooler Nov 30, 2024
7d3c0f6
Migrate PropertiesFileTransformerTest
Goooler Nov 30, 2024
1965c0a
Migrate ComponentsXmlResourceTransformerTest
Goooler Nov 30, 2024
8e55c4f
Move sources into test source set
Goooler Nov 30, 2024
e3544de
Rename groovy folder to kotlin
Goooler Nov 30, 2024
dd2c603
Merge branch 'g/move-sources-for-temp' into g/migrate-unit-tests
Goooler Nov 30, 2024
217f2ce
Mark internal
Goooler Nov 30, 2024
a25f017
Change suffixes to .kt
Goooler Nov 30, 2024
3fd2a19
Merge branch 'g/move-sources-for-temp' into g/migrate-unit-tests
Goooler Nov 30, 2024
979dc95
Replace IOUtil
Goooler Nov 30, 2024
a7c7567
Remove redundant throwing
Goooler Nov 30, 2024
3653a4e
Remove SimpleRelocatorParameterTest as it's outdated
Goooler Nov 30, 2024
7b730f2
Cleanups
Goooler Nov 30, 2024
13da152
Rename setUp to setup
Goooler Nov 30, 2024
381136c
Cleanups
Goooler Nov 30, 2024
85d8129
Migrate java.io.File usages
Goooler Nov 30, 2024
3f094a0
Reuse doTransformAndGetTransformedPath
Goooler Nov 30, 2024
7ce919b
Cleanups
Goooler Nov 30, 2024
89bd766
Disable lintAnalyzeJvmTest for some devices
Goooler Nov 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Migrate ManifestAppenderTransformerTest
  • Loading branch information
Goooler committed Nov 30, 2024
commit 04cb7eaf01a11d83b0773c970a1cf2c4e56d4e70
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
package com.github.jengelman.gradle.plugins.shadow.transformers

import assertk.assertThat
import assertk.assertions.isEqualTo
import assertk.assertions.isFalse
import assertk.assertions.isGreaterThan
import assertk.assertions.isNotEmpty
import assertk.assertions.isTrue
import java.io.BufferedOutputStream
import java.io.File
import java.io.FileOutputStream
import java.util.zip.ZipFile
import org.apache.tools.zip.ZipOutputStream
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test

class ManifestAppenderTransformerTest : TransformerTestSupport<ManifestAppenderTransformer>() {
@BeforeEach
fun setUp() {
transformer = ManifestAppenderTransformer(objectFactory)
}

@Test
fun testCanTransformResource() {
with(transformer) {
append("Name", "org/foo/bar/")
append("Sealed", true)
}

assertThat(transformer.canTransformResource(getFileElement(MANIFEST_NAME))).isTrue()
assertThat(transformer.canTransformResource(getFileElement(MANIFEST_NAME.toLowerCase()))).isTrue()
}

@Test
fun testHasTransformedResource() {
transformer.append("Tag", "Something")

assertThat(transformer.hasTransformedResource()).isTrue()
}

@Test
fun testHasNotTransformedResource() {
assertThat(transformer.hasTransformedResource()).isFalse()
}

@Test
fun testTransformation() {
with(transformer) {
append("Name", "org/foo/bar/")
append("Sealed", true)
append("Name", "com/example/")
append("Sealed", false)

transform(TransformerContext(MANIFEST_NAME, requireResourceAsStream(MANIFEST_NAME)))
}

val testableZipFile = File.createTempFile("testable-zip-file-", ".jar")
val fileOutputStream = FileOutputStream(testableZipFile)
val bufferedOutputStream = BufferedOutputStream(fileOutputStream)

ZipOutputStream(bufferedOutputStream).use { zipOutputStream ->
transformer.modifyOutputStream(zipOutputStream, true)
}

val targetLines = readFrom(testableZipFile)
assertThat(targetLines).isNotEmpty()
assertThat(targetLines.size).isGreaterThan(4)

val trailer = targetLines.subList(targetLines.size - 5, targetLines.size)
assertThat(trailer).isEqualTo(
listOf(
"Name: org/foo/bar/",
"Sealed: true",
"Name: com/example/",
"Sealed: false",
"",
),
)
}

@Test
fun testNoTransformation() {
val sourceLines = requireResourceAsStream(MANIFEST_NAME).bufferedReader().readLines()
transformer.transform(TransformerContext(MANIFEST_NAME, requireResourceAsStream(MANIFEST_NAME)))
val testableZipFile = File.createTempFile("testable-zip-file-", ".jar")
ZipOutputStream(testableZipFile.outputStream().buffered()).use { zipOutputStream ->
transformer.modifyOutputStream(zipOutputStream, true)
}
val targetLines = readFrom(testableZipFile)

assertThat(targetLines).isEqualTo(sourceLines)
}

private fun readFrom(jarFile: File, resourceName: String = MANIFEST_NAME): List<String> {
return ZipFile(jarFile).use { zip ->
val entry = zip.getEntry(resourceName) ?: return emptyList()
zip.getInputStream(entry).bufferedReader().readLines()
}
}
}

This file was deleted.