diff options
Diffstat (limited to 'scalding/src/test')
-rw-r--r-- | scalding/src/test/scala/sandcrawler/HBaseBuilderTest.scala | 43 | ||||
-rw-r--r-- | scalding/src/test/scala/sandcrawler/HBaseRowCountTest.scala | 14 |
2 files changed, 46 insertions, 11 deletions
diff --git a/scalding/src/test/scala/sandcrawler/HBaseBuilderTest.scala b/scalding/src/test/scala/sandcrawler/HBaseBuilderTest.scala new file mode 100644 index 0000000..b45751d --- /dev/null +++ b/scalding/src/test/scala/sandcrawler/HBaseBuilderTest.scala @@ -0,0 +1,43 @@ +package example + +import cascading.tuple.Fields +import org.scalatest._ +import sandcrawler.HBaseBuilder + +class HBaseBuilderTest extends FlatSpec with Matchers { + "parseColSpec()" should "work on legal nontrivial input" in { + val (fams, fields) = HBaseBuilder.parseColSpec(List("file:size", "file:cdx", "match0:status")) + fams should have length 2 + fields should have length 2 + val fileIndex = fams.indexOf("file") + fileIndex should not be -1 + fields(fileIndex) should be (new Fields("size", "cdx")) + val match0Index = fams.indexOf("match0") + match0Index should not be -1 + fields(match0Index) should be (new Fields("status")) + } + + it should "work on empty input" in { + val (fams, fields) = HBaseBuilder.parseColSpec(List()) + fams should have length 0 + fields should have length 0 + } + + it should "throw IllegalArgumentException on malformed input" in { + a [IllegalArgumentException] should be thrownBy { + HBaseBuilder.parseColSpec(List("file_size")) + } + } + + it should "throw IllegalArgumentException on nonexistent family" in { + a [IllegalArgumentException] should be thrownBy { + HBaseBuilder.parseColSpec(List("foo:bar")) + } + } + + it should "throw IllegalArgumentException on nonexistent column" in { + a [IllegalArgumentException] should be thrownBy { + HBaseBuilder.parseColSpec(List("file:bar")) + } + } +} diff --git a/scalding/src/test/scala/sandcrawler/HBaseRowCountTest.scala b/scalding/src/test/scala/sandcrawler/HBaseRowCountTest.scala index 94b3740..abb017c 100644 --- a/scalding/src/test/scala/sandcrawler/HBaseRowCountTest.scala +++ b/scalding/src/test/scala/sandcrawler/HBaseRowCountTest.scala @@ -12,6 +12,7 @@ import scala._ import com.twitter.scalding.Tsv import parallelai.spyglass.hbase.HBaseSource import parallelai.spyglass.hbase.HBaseConstants.SourceMode +import sandcrawler.HBaseRowCountJob /** * Example of how to define tests for HBaseSource @@ -39,18 +40,9 @@ class HBaseRowCountTest extends FunSpec with TupleConversions { .arg("app.conf.path", "app.conf") .arg("output", output) .arg("debug", "true") - .source[Tuple]( - new HBaseSource( - //"table_name", - //"quorum_name:2181", - "wbgrp-journal-extract-0-qa", - "mtrcs-zk1.us.archive.org:2181", - new Fields("key"), - List("file"), - List(new Fields("size", "mimetype")), - sourceMode = SourceMode.SCAN_ALL), + .source[Tuple](HBaseRowCountJob.getHBaseSource, sampleData.map(l => new Tuple(l.map(s => {new ImmutableBytesWritable(Bytes.toBytes(s))}):_*))) - .sink[Tuple](Tsv(output)) { + .sink[Tuple](Tsv(output)) { outputBuffer => it("should return the test data provided.") { |