Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package crawler.dao
- import org.scalatest._
- import utils.Log
- class HashMapDAOSpec extends FlatSpec
- with Matchers with Log
- {
- class TestDataEntry(var i: Int) extends AnyRef with HasId[Int] {
- override def getId: Int = i
- var name = s"Value:%i"
- }
- val testDataEntries = List(
- new TestDataEntry(0),
- new TestDataEntry(1),
- new TestDataEntry(2)
- )
- def generateBatch(batchSize: Int): List[TestDataEntry] = {
- for (idx <- List.range(0, batchSize)) yield new TestDataEntry(idx)
- }
- "Dao " should " be able to put/get/remove" in {
- val dao = new HashMapDAO[Int, TestDataEntry](null)
- val singleTestIdx = 0
- val singleEntry = testDataEntries(singleTestIdx)
- val singleEntryId = singleEntry.getId
- dao.put(singleEntry)
- dao.contains(singleEntryId) should be (true)
- val entry = dao.get(singleTestIdx)
- entry should not be null
- entry.getId should be (singleEntryId)
- dao.delete(singleTestIdx)
- dao.contains(singleEntryId) should be (false)
- dao.get(singleTestIdx) should be (null)
- }
- "Dao " should " be able to do batch put/get/remove" in {
- val BATCH_SIZE = 10;
- var entries : List[TestDataEntry] = generateBatch(BATCH_SIZE)
- val dao = new HashMapDAO[Int, TestDataEntry](null)
- dao.put(entries)
- for(expected <- entries) {
- dao.contains(expected.getId) should be (true)
- val result = dao.get(expected.getId)
- result shouldNot be (null)
- result.getId should be (expected.getId)
- result.name should be (expected.name)
- }
- def checkForRemoval() = {
- for (expected <- entries) {
- dao.contains(expected.getId) should be(false)
- dao.get(expected.getId) should be(null)
- }
- }
- //delete by values
- dao.delete(entries)
- checkForRemoval
- //delete by keys
- dao.put(entries)
- val keys = entries.map(e => e.getId)
- dao.deleteByKeys(keys)
- checkForRemoval
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement