/test/utils/OnlineUserCacheTest.scala

https://github.com/BeamStream/BeamstreamPlay · Scala · 62 lines · 53 code · 9 blank · 0 comment · 0 complexity · 43a3abed6f1e3e205a7569a9906d6afb MD5 · raw file

  1. package utils
  2. import org.scalatest.FunSuite
  3. import org.junit.runner.RunWith
  4. import org.scalatest.junit.JUnitRunner
  5. import com.sun.org.apache.xalan.internal.xsltc.compiler.ForEach
  6. import org.scalatest.BeforeAndAfter
  7. import com.mongodb.casbah.commons.MongoDBObject
  8. import org.bson.types.ObjectId
  9. import java.text.DateFormat
  10. import play.api.test.Helpers.running
  11. import play.api.test.FakeApplication
  12. import play.api.Play
  13. import java.util.Date
  14. import models.UserDAO
  15. import models.User
  16. import models.UserType
  17. import utils._
  18. @RunWith(classOf[JUnitRunner])
  19. class OnlineUserCacheTest extends FunSuite with BeforeAndAfter {
  20. val formatter: DateFormat = new java.text.SimpleDateFormat("dd-MM-yyyy")
  21. val user = User(new ObjectId, UserType.Professional, "neel@knoldus.com", "", "", "NeelS", Option("Neel"), "", "", "", "", new Date, Nil, Nil, Nil, None, None, None)
  22. before {
  23. running(FakeApplication()) {
  24. UserDAO.remove(MongoDBObject("firstName" -> ".*".r))
  25. OnlineUserDAO.remove(MongoDBObject("onlineUsers" -> ".*".r))
  26. }
  27. }
  28. test("Set User Offline") {
  29. running(FakeApplication()) {
  30. val userId = User.createUser(user)
  31. OnlineUserCache.setOnline(userId.get.toString(), 10000)
  32. OnlineUserCache.setOffline(userId.get.toString())
  33. assert(OnlineUserDAO.find(MongoDBObject()).toList(0).onlineUsers.size === 0)
  34. OnlineUserCache.setOffline(userId.get.toString())
  35. assert(OnlineUserDAO.find(MongoDBObject()).toList(0).onlineUsers.size === 0)
  36. }
  37. }
  38. test("Set User Online") {
  39. running(FakeApplication()) {
  40. val userId = User.createUser(user)
  41. OnlineUserCache.setOnline(userId.get.toString(), 10000)
  42. assert(OnlineUserDAO.find(MongoDBObject()).toList(0).onlineUsers.size === 1)
  43. OnlineUserCache.setOnline(userId.get.toString(), 10000)
  44. assert(OnlineUserDAO.find(MongoDBObject()).toList(0).onlineUsers.size === 1)
  45. }
  46. }
  47. after {
  48. running(FakeApplication()) {
  49. UserDAO.remove(MongoDBObject("firstName" -> ".*".r))
  50. OnlineUserDAO.remove(MongoDBObject("onlineUsers" -> ".*".r))
  51. }
  52. }
  53. }