diff options
| author | bnewbold <bnewbold@archive.org> | 2018-06-04 22:05:54 +0000 | 
|---|---|---|
| committer | bnewbold <bnewbold@archive.org> | 2018-06-04 22:05:54 +0000 | 
| commit | b21cc924224202aba412370acafaaa4846bb4a8d (patch) | |
| tree | 3d0fcc2f2bee55eb038686c566bdab1763e65c74 /scalding/src/test | |
| parent | 70069a78c8798352b5bef815a3fd4aa9e9b52394 (diff) | |
| parent | 9a18da82738c16d3066e02e886ee84e04156889f (diff) | |
| download | sandcrawler-b21cc924224202aba412370acafaaa4846bb4a8d.tar.gz sandcrawler-b21cc924224202aba412370acafaaa4846bb4a8d.zip | |
Merge branch 'refactoring' into 'master'
Refactoring to add, use, and test class HBaseBuilder to eliminate duplicated code and facilitate HBaseSource creation
See merge request webgroup/sandcrawler!1
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.") { | 
