PageRenderTime 58ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/core/src/test/scala/org/sansoft/tt/repository/ProjectRepositorySpecs.scala

https://github.com/sandarenu/task_tracker
Scala | 67 lines | 51 code | 16 blank | 0 comment | 0 complexity | dccc1bef46f2fb7fe9f154adf5932502 MD5 | raw file
  1. package org.sansoft.tt.repository
  2. import org.specs.Specification
  3. import org.specs.matcher.PatternMatchers._
  4. import com.mongodb.casbah.Imports._
  5. import org.sansoft.tt.util.KeyBox._
  6. class ProjectRepositorySpecs extends Specification {
  7. "ProjectRepository" should {
  8. val projectsCollection = MongoConnector.mongoConnection()("projects")
  9. projectsCollection.dropCollection()
  10. val projectRepo = new ProjectRepository
  11. "check availablity of project id when project id not yet taken" in {
  12. projectRepo.isProjectCodeAvailable("PRJ-1") must beTrue
  13. }
  14. "check availablity of project id when project id created" in {
  15. val project = MongoDBObject(idK -> "1",
  16. projectCodeK -> "PRJ-1",
  17. nameK -> "ABC-Project")
  18. projectRepo.createNewProject(project)
  19. projectRepo.isProjectCodeAvailable("PRJ-1") must beFalse
  20. }
  21. "save project" in {
  22. val project = MongoDBObject(idK -> "1",
  23. projectCodeK -> "PRJ-2",
  24. nameK -> "ABC-Project2")
  25. projectRepo.createNewProject(project) must not throwA
  26. }
  27. "not save project when project-id already taken" in {
  28. val project = MongoDBObject(idK -> "1",
  29. projectCodeK -> "PRJ-2",
  30. nameK -> "ABC-Project2")
  31. projectRepo.createNewProject(project)
  32. val project1 = MongoDBObject(idK -> "2",
  33. projectCodeK -> "PRJ-2",
  34. nameK -> "ABC-Project2")
  35. projectRepo.createNewProject(project1) must throwA(new IllegalArgumentException("ProjectId[PRJ-2] already taken."))
  36. }
  37. "select all the projects in the db" in {
  38. projectRepo.createNewProject(MongoDBObject(idK -> "1",
  39. projectCodeK -> "PRJ-1",
  40. nameK -> "ABC-Project"))
  41. val results = projectRepo.findAllProjects
  42. results.size must be(1)
  43. results foreach (prj => prj.as[String](idK) must beMatching("1"))
  44. projectRepo.createNewProject(MongoDBObject(idK -> "2",
  45. projectCodeK -> "PRJ-2",
  46. nameK -> "PQR-Project"))
  47. val newResults = projectRepo.findAllProjects
  48. newResults.size must be(2)
  49. }
  50. }
  51. }