*/
package org.jetbrains.updater.mock
-object Generator {
+class Generator {
+ private val patch = this.javaClass.classLoader.getResourceAsStream("patch/patch.jar").use { it.readBytes() }
+
fun generateXml(productCode: String, buildId: String, eap: Boolean): String {
val status = if (eap) "eap" else "release"
return """
</products>""".trimIndent()
}
- fun generatePatch(): ByteArray =
- this.javaClass.classLoader.getResourceAsStream("patch/patch.jar").use { it.readBytes() }
+ fun generatePatch(): ByteArray = patch
}
\ No newline at end of file
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
-class Server(private val port: Int) {
+class Server(private val port: Int, private val generator: Generator) {
private val server = HttpServer.create()
fun start() {
return
}
- val xml = Generator.generateXml(productCode, buildId, eap)
+ val xml = generator.generateXml(productCode, buildId, eap)
sendText(ex, xml, "text/xml")
}
return
}
- val patch = Generator.generatePatch()
+ val patch = generator.generatePatch()
ex.responseHeaders.add("Content-Type", "binary/octet-stream")
ex.sendResponseHeaders(HTTP_OK, patch.size.toLong())
ex.responseBody.write(patch)
}
val port = args[0].toInt()
- Server(port).start()
+ val generator = Generator()
+ Server(port, generator).start()
}
\ No newline at end of file
class GeneratorTest {
@Test fun generateXml() {
- val xml = Generator.generateXml("IC", "163.11.22", false)
+ val xml = Generator().generateXml("IC", "163.11.22", false)
assertThat(xml).contains("patch from=\"163.11.22\"").contains("status=\"release\"")
}
@Test fun generatePatch() {
- val patch = Generator.generatePatch()
+ val patch = Generator().generatePatch()
assertThat(patch).isNotEmpty()
}
}
\ No newline at end of file