blob: 264400e85006872763040e9e65a073c58203920c [file] [log] [blame]
package com.googlesource.gerrit.plugins.analytics.wizard.utils
import java.net.{MalformedURLException, URL}
import com.googlesource.gerrit.plugins.analytics.wizard.fixtures.TestFixtures
import org.eclipse.jgit.lib.Config
import org.scalatest.TryValues._
import org.scalatest.{FlatSpec, Matchers}
class GerritConfigHelperSpec extends FlatSpec with Matchers with TestFixtures {
behavior of "getGerritLocalAddress"
it should "retrieve a URL successfully when the right configuration is set" in {
val httpProtocol = "http"
val httpPort = 8080
val helper = new GerritConfigHelper(gerritConfig(httpProtocol, httpPort)) with TestLocalAddressGetter
helper.getGerritLocalAddress.success.value shouldBe new URL(s"$httpProtocol://${helper.getLocalAddress}:$httpPort")
}
it should "fail in retrieving a URL when configuration is missing" in {
val helper = new GerritConfigHelper(new Config()) with TestLocalAddressGetter
helper.getGerritLocalAddress.failure.exception shouldBe a[MalformedURLException]
}
it should "fail in retrieving a URL when local address cannot be retrieved" in {
val helper = new GerritConfigHelper(new Config()) with FailingLocalAddressGetter
helper.getGerritLocalAddress.failure.exception shouldBe a[MalformedURLException]
}
}
trait TestLocalAddressGetter extends LocalAddressGetter {
override def getLocalAddress: String = "127.0.0.1"
}
trait FailingLocalAddressGetter extends LocalAddressGetter {
override def getLocalAddress: String = throw new Exception("Cannot get local address")
}