Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class UserActivationRequestProcessorSpec
- extends ProcessorTestKit
- {
- val account = Account("test@example.com", Set(Roles.Administrator, Roles.RegularUser))
- val user = User(account.id)
- val session = Session(account.id, account.roles, TokenHelper.newToken)
- val mockUserDao = {
- val d = mock[UserDAO]
- d.find(user.id) returns Future.successful(Some(user))
- d.updateIsActive(user.id, false) returns Future.successful(())
- d
- }
- def mockApiRouterSuccess = actor { new Act with MockAPIRouter {
- become {
- case _: CheckSession ⇒ sender ! session
- case _: TouchSession ⇒
- case _: SetAccountActivationStatus ⇒ sender ! SuccessResponse.Ok
- }
- }}
- def mockApiRouterForbiden = actor { new Act with MockAPIRouter {
- become {
- case _: CheckSession ⇒ sender ! session.copy(roles = Set(Roles.RegularUser))
- case _: TouchSession ⇒
- }
- }}
- def createProcessor(dao: UserDAO, mockApiRouter: ActorRef): ActorRef = system.actorOf(Props(
- new UserActivationRequestProcessor(dao) with MockAPIRouting {
- override val mockAPIRouter: ActorRef = mockApiRouter
- }))
- "UserActivationRequestProcessor" should {
- "Activate user" in {
- val processor = createProcessor(mockUserDao, mockApiRouterSuccess)
- processor ! UserActivationRequest(user.id, false).withSession(session)
- expectMsg(SuccessResponse.Ok)
- }
- "Activate user should be forbidden for regular user" in {
- val processor = createProcessor(mockUserDao, mockApiRouterForbiden)
- processor ! UserActivationRequest(user.id, false).withSession(session)
- expectMsg(ErrorResponse.Forbidden)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement