blob: bdd4fbd2411f61b1c44243b0c9837e04f588ab2c [file] [log] [blame]
package io.pivotal.gemfire.spark.connector
import org.mockito.Mockito._
import org.scalatest.mock.MockitoSugar
import org.scalatest.{FunSuite, Matchers}
import org.apache.commons.httpclient.HttpClient
import java.io.File
class GemFireFunctionDeployerTest extends FunSuite with Matchers with MockitoSugar {
val mockHttpClient: HttpClient = mock[HttpClient]
test("jmx url creation") {
val jmxHostAndPort = "localhost:7070"
val expectedUrlString = "http://" + jmxHostAndPort + "/gemfire/v1/deployed"
val gfd = new GemFireFunctionDeployer(mockHttpClient);
val urlString = gfd.constructURLString(jmxHostAndPort)
assert(urlString === expectedUrlString)
}
test("missing jar file") {
val missingJarFileLocation = "file:///somemissingjarfilethatdoesnot.exist"
val gfd = new GemFireFunctionDeployer(mockHttpClient);
intercept[RuntimeException] { gfd.jarFileHandle(missingJarFileLocation)}
}
test("deploy with missing jar") {
val missingJarFileLocation = "file:///somemissingjarfilethatdoesnot.exist"
val gfd = new GemFireFunctionDeployer(mockHttpClient);
intercept[RuntimeException] {(gfd.deploy("localhost:7070", missingJarFileLocation).contains("Deployed"))}
intercept[RuntimeException] {(gfd.deploy("localhost", 7070, missingJarFileLocation).contains("Deployed"))}
}
test("successful mocked deploy") {
val gfd = new GemFireFunctionDeployer(mockHttpClient);
val jar = new File("README.md");
assert(gfd.deploy("localhost:7070", jar).contains("Deployed"))
}
}