Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.95 KB | None | 0 0
  1. package crawler.dao
  2.  
  3. import org.scalatest._
  4. import utils.Log
  5.  
  6. class HashMapDAOSpec extends FlatSpec
  7.   with Matchers with Log
  8. {
  9.  
  10.   class TestDataEntry(var i: Int) extends AnyRef with HasId[Int] {
  11.     override def getId: Int = i
  12.     var name = s"Value:%i"
  13.   }
  14.  
  15.   val testDataEntries = List(
  16.     new TestDataEntry(0),
  17.     new TestDataEntry(1),
  18.     new TestDataEntry(2)
  19.   )
  20.  
  21.   def generateBatch(batchSize: Int): List[TestDataEntry] = {
  22.     for (idx <- List.range(0, batchSize)) yield new TestDataEntry(idx)
  23.   }
  24.  
  25.   "Dao " should "  be able to put/get/remove" in {
  26.  
  27.     val dao = new HashMapDAO[Int, TestDataEntry](null)
  28.     val singleTestIdx = 0
  29.     val singleEntry = testDataEntries(singleTestIdx)
  30.     val singleEntryId = singleEntry.getId
  31.  
  32.     dao.put(singleEntry)
  33.  
  34.     dao.contains(singleEntryId) should be (true)
  35.     val entry = dao.get(singleTestIdx)
  36.     entry should not be null
  37.     entry.getId should be (singleEntryId)
  38.  
  39.     dao.delete(singleTestIdx)
  40.     dao.contains(singleEntryId) should be (false)
  41.     dao.get(singleTestIdx) should be (null)
  42.   }
  43.  
  44.   "Dao " should "  be able to do batch put/get/remove" in {
  45.     val BATCH_SIZE = 10;
  46.  
  47.     var entries : List[TestDataEntry] = generateBatch(BATCH_SIZE)
  48.     val dao = new HashMapDAO[Int, TestDataEntry](null)
  49.  
  50.     dao.put(entries)
  51.  
  52.     for(expected <- entries) {
  53.       dao.contains(expected.getId) should be (true)
  54.       val result = dao.get(expected.getId)
  55.       result shouldNot be (null)
  56.       result.getId should be (expected.getId)
  57.       result.name should be (expected.name)
  58.     }
  59.  
  60.     def checkForRemoval() = {
  61.       for (expected <- entries) {
  62.         dao.contains(expected.getId) should be(false)
  63.         dao.get(expected.getId) should be(null)
  64.       }
  65.     }
  66.  
  67.     //delete by values
  68.     dao.delete(entries)
  69.     checkForRemoval
  70.  
  71.     //delete by keys
  72.     dao.put(entries)
  73.     val keys = entries.map(e => e.getId)
  74.     dao.deleteByKeys(keys)
  75.     checkForRemoval
  76.   }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement