diff options
| author | Gracia Fernandez <Gracia.FernandezLopez@bskyb.com> | 2013-07-04 16:49:09 +0100 | 
|---|---|---|
| committer | Gracia Fernandez <Gracia.FernandezLopez@bskyb.com> | 2013-07-04 16:49:09 +0100 | 
| commit | 20a18b4388f0cd06bec0b43d083150f6e1bb2c5e (patch) | |
| tree | 97c532e6e07abf4c6d0312749662080b315163f6 /src/test/scala | |
| parent | e8ba249d5ce2ec293a4d19b54fc8298d4eac0271 (diff) | |
| download | SpyGlass-20a18b4388f0cd06bec0b43d083150f6e1bb2c5e.tar.gz SpyGlass-20a18b4388f0cd06bec0b43d083150f6e1bb2c5e.zip  | |
Changed HBaseSource and JDBCSource to allow testing with JobTest. Samples of tests included.
Diffstat (limited to 'src/test/scala')
| -rw-r--r-- | src/test/scala/parallelai/spyglass/hbase/example/SimpleHBaseSourceExampleTest.scala | 57 | ||||
| -rw-r--r-- | src/test/scala/parallelai/spyglass/jdbc/example/JdbcSourceExampleTest.scala | 54 | 
2 files changed, 111 insertions, 0 deletions
diff --git a/src/test/scala/parallelai/spyglass/hbase/example/SimpleHBaseSourceExampleTest.scala b/src/test/scala/parallelai/spyglass/hbase/example/SimpleHBaseSourceExampleTest.scala new file mode 100644 index 0000000..e5b2cca --- /dev/null +++ b/src/test/scala/parallelai/spyglass/hbase/example/SimpleHBaseSourceExampleTest.scala @@ -0,0 +1,57 @@ +package parallelai.spyglass.hbase.example + +import org.junit.runner.RunWith +import com.twitter.scalding.{JobTest, TupleConversions} +import org.scalatest.FunSpec +import org.scalatest.junit.JUnitRunner +import org.slf4j.LoggerFactory +import org.apache.hadoop.hbase.io.ImmutableBytesWritable +import cascading.tuple.{Tuple, Fields} +import parallelai.spyglass.hbase.HBaseConstants.SourceMode +import org.apache.hadoop.hbase.util.Bytes +import scala._ +import parallelai.spyglass.hbase.HBaseSource +import com.twitter.scalding.Tsv + +/** + * Example of how to define tests for HBaseSource + */ +@RunWith(classOf[JUnitRunner]) +class SimpleHBaseSourceExampleTest extends FunSpec with TupleConversions { + +  val output = "/tmp/testOutput" + +  val log = LoggerFactory.getLogger(this.getClass.getName) + +  val sampleData = List( +    List("1", "kk1", "pp1"), +    List("2", "kk2", "pp2"), +    List("3", "kk3", "pp3") +  ) + +  JobTest("parallelai.spyglass.hbase.example.SimpleHBaseSourceExample") +    .arg("local", "") +    .arg("app.conf.path", "app.conf") +    .arg("output", output) +    .arg("debug", "true") +    .source[Tuple]( +    new HBaseSource( +      "table_name", +      "quorum_name:2181", +      new Fields("key"), +      List("column_family"), +      List(new Fields("column_name1", "column_name2")), +      sourceMode = SourceMode.GET_LIST, keyList = List("1", "2", "3")), +    sampleData.map(l => new Tuple(l.map(s => {new ImmutableBytesWritable(Bytes.toBytes(s))}):_*))) +    .sink[Tuple](Tsv(output format "get_list")) { +      outputBuffer => +        log.debug("Output => " + outputBuffer) + +        it("should return the test data provided.") { +          assert(outputBuffer.size === 3) +        } +    } +    .run +    .finish + +} diff --git a/src/test/scala/parallelai/spyglass/jdbc/example/JdbcSourceExampleTest.scala b/src/test/scala/parallelai/spyglass/jdbc/example/JdbcSourceExampleTest.scala new file mode 100644 index 0000000..98f275d --- /dev/null +++ b/src/test/scala/parallelai/spyglass/jdbc/example/JdbcSourceExampleTest.scala @@ -0,0 +1,54 @@ +package parallelai.spyglass.jdbc.example + +import org.scalatest.junit.JUnitRunner +import org.junit.runner.RunWith +import org.scalatest.FunSpec +import com.twitter.scalding.{Tsv, JobTest, TupleConversions} +import org.slf4j.LoggerFactory +import cascading.tuple.{Tuple, Fields} +import parallelai.spyglass.jdbc.JDBCSource + +/** + * Simple example of JDBCSource testing + */ +@RunWith(classOf[JUnitRunner]) +class JdbcSourceExampleTest extends FunSpec with TupleConversions { + +  val output = "src/test/resources/outputs/testOutput" + +  val log = LoggerFactory.getLogger(this.getClass.getName) + +  val sampleData = List( +    (1, "c11", "c12", 11), +    (2, "c21", "c22", 22) +  ) + +  JobTest("parallelai.spyglass.jdbc.example.JdbcSourceExample") +    .arg("local", "") +    .arg("app.conf.path", "app.conf") +    .arg("output", output) +    .arg("debug", "true") +    .source( +    new JDBCSource( +      "db_name", +      "com.mysql.jdbc.Driver", +      "jdbc:mysql://<hostname>:<port>/<db_name>?zeroDateTimeBehavior=convertToNull", +      "user", +      "password", +      List("KEY_ID", "COL1", "COL2", "COL3"), +      List("bigint(20)", "varchar(45)", "varchar(45)", "bigint(20)"), +      List("key_id"), +      new Fields("key_id", "col1", "col2", "col3")), sampleData) +    .sink[Tuple](Tsv(output.format("get_list"))) { +      outputBuffer => +        log.debug("Output => " + outputBuffer) + +        it("should return the mock data provided.") { +          assert(outputBuffer.size === 2) +        } +    } +    .run +    .finish + + +}  | 
