Skip to content

Commit

Permalink
Add a test
Browse files Browse the repository at this point in the history
  • Loading branch information
jzbrooks committed Oct 12, 2024
1 parent 1af4910 commit 9a1d781
Showing 1 changed file with 31 additions and 23 deletions.
54 changes: 31 additions & 23 deletions vgo/src/test/kotlin/com/jzbrooks/vgo/InPlaceModificationTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@ package com.jzbrooks.vgo
import assertk.assertThat
import assertk.assertions.contains
import assertk.assertions.doesNotContain
import assertk.assertions.exists
import assertk.assertions.isEqualTo
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInfo
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.PrintStream
Expand All @@ -16,17 +18,10 @@ class InPlaceModificationTest {
private lateinit var systemOutput: ByteArrayOutputStream

@BeforeEach
fun copyToSide() {
fun copyToSide(info: TestInfo) {
val originalFolder = File("src/test/resources/in-place-modify/")
val reservedFolder = File("build/test-results/inPlaceModification/reserved/")
originalFolder.copyRecursively(reservedFolder, true)
}

@AfterEach
fun resetFiles() {
val originalFolder = File("src/test/resources/in-place-modify/")
val reservedFolder = File("build/test-results/inPlaceModification/reserved/")
reservedFolder.copyRecursively(originalFolder, true)
val workingFolder = File("build/test-results/inPlaceModification/${info.displayName}/")
originalFolder.copyRecursively(workingFolder, true)
}

@BeforeEach
Expand All @@ -41,60 +36,60 @@ class InPlaceModificationTest {
}

@Test
fun `in-place optimization completes successfully`() {
fun `in-place optimization completes successfully`(info: TestInfo) {
val options =
Vgo.Options(
input = listOf("src/test/resources/in-place-modify"),
input = listOf("build/test-results/inPlaceModification/${info.displayName}/"),
)
val exitCode = Vgo(options).run()

assertThat(exitCode).isEqualTo(0)
}

@Test
fun `individual file statistics are reported with a directory input`() {
fun `individual file statistics are reported with a directory input`(info: TestInfo) {
val options =
Vgo.Options(
printStats = true,
input = listOf("src/test/resources/in-place-modify"),
input = listOf("build/test-results/inPlaceModification/${info.displayName}/"),
)
Vgo(options).run()

assertThat(systemOutput.toString())
.contains(Paths.get("src/test/resources/in-place-modify/avocado_example.xml").toString())
.contains(Paths.get("build/test-results/inPlaceModification/${info.displayName}/avocado_example.xml").toString())
}

@Test
fun `non-vector files are not mentioned in statistics reporting with a directory input`() {
fun `non-vector files are not mentioned in statistics reporting with a directory input`(info: TestInfo) {
val options =
Vgo.Options(
printStats = true,
input = listOf("src/test/resources/in-place-modify"),
input = listOf("build/test-results/inPlaceModification/${info.displayName}"),
)

Vgo(options).run()

assertThat(systemOutput.toString())
.doesNotContain("src/test/resources/in-place-modify/non_vector.xml")
.doesNotContain("build/test-results/inPlaceModification/${info.displayName}/non_vector.xml")
}

@Test
fun `only modified files appear in statistics reporting`() {
fun `only modified files appear in statistics reporting`(info: TestInfo) {
val options =
Vgo.Options(
printStats = true,
input = listOf("src/test/resources/in-place-modify"),
input = listOf("build/test-results/inPlaceModification/${info.displayName}"),
)

Vgo(options).run()

assertThat(systemOutput.toString())
.doesNotContain("src/test/resources/in-place-modify/avocado_example_optimized.xml")
.doesNotContain("build/test-results/inPlaceModification/${info.displayName}/avocado_example_optimized.xml")
}

@Test
fun `non-vector files are not modified`() {
val input = File("src/test/resources/in-place-modify/non_vector.xml")
fun `non-vector files are not modified`(info: TestInfo) {
val input = File("build/test-results/inPlaceModification/${info.displayName}/non_vector.xml")
val before = input.readText()

val options =
Expand All @@ -106,4 +101,17 @@ class InPlaceModificationTest {
val after = input.readText()
assertThat(after).isEqualTo(before)
}

@Test
fun `format option results in new file extension`(info: TestInfo) {
val options =
Vgo.Options(
format = "svg",
input = listOf("build/test-results/inPlaceModification/${info.displayName}"),
)

Vgo(options).run()

assertThat(File("build/test-results/inPlaceModification/${info.displayName}/avocado_example.svg")).exists()
}
}

0 comments on commit 9a1d781

Please sign in to comment.