patch bytes cache
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Fri, 16 Sep 2016 05:47:24 +0000 (08:47 +0300)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Fri, 23 Sep 2016 14:17:16 +0000 (17:17 +0300)
update-server-mock/src/main/java/org/jetbrains/updater/mock/Generator.kt
update-server-mock/src/main/java/org/jetbrains/updater/mock/Server.kt
update-server-mock/src/main/java/org/jetbrains/updater/mock/main.kt
update-server-mock/src/test/java/org/jetbrains/updater/mock/GeneratorTest.kt

index 7a5a90e99ba9af73fb412b4bf5a2310cf55bfb67..521732d2f0f1cdaf09a719b826da0e97d7061572 100644 (file)
@@ -15,7 +15,9 @@
  */
 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 """
@@ -34,6 +36,5 @@ object Generator {
       </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
index 91849743ca9dd51d3167018140b3ec6142cd8155..ae8746784999c48b97644ca76898f5f30538768e 100644 (file)
@@ -26,7 +26,7 @@ import java.net.InetSocketAddress
 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() {
@@ -68,7 +68,7 @@ class Server(private val port: Int) {
       return
     }
 
-    val xml = Generator.generateXml(productCode, buildId, eap)
+    val xml = generator.generateXml(productCode, buildId, eap)
     sendText(ex, xml, "text/xml")
   }
 
@@ -78,7 +78,7 @@ class Server(private val port: Int) {
       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)
index ee1e7c9b36f55f207a7124c2df93ddf8db50cbba..c5e684dc7a5c75f6fe2edcc9379c4488a3d78e09 100644 (file)
@@ -22,5 +22,6 @@ fun main(args: Array<String>) {
   }
 
   val port = args[0].toInt()
-  Server(port).start()
+  val generator = Generator()
+  Server(port, generator).start()
 }
\ No newline at end of file
index f44c2dcfd2dd5b1c9c4f64372840e5515fb73aee..131ab30044be02da115adac664379000737c7e90 100644 (file)
@@ -20,12 +20,12 @@ import org.junit.Test
 
 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