/ */ namespace Comments\Controller; use Comments\Model\Comment; use ModuleTest\TestControllerCase; use Users\Model\Group; use Users\Model\User; use Zend\Stdlib\Parameters; class CommentsIndexControllerTest extends TestControllerCase { public function setUp() { parent::setUp(); // set up registered group // make registered group, if it does not exist, and clear cache if (!Group::exists('registered', $this->p4)) { Group::fromArray( array('Owners' => array($this->p4->getUser()), Group::ID_FIELD => 'registered'), $this->superP4 )->save(); $this->p4->getService('cache')->invalidateItem('groups'); } } /** * Test queue behavior. */ public function testAddQueuesComment() { // set active user $user = new User($this->superP4); $user->setId('foo') ->setEmail('foo@test.com') ->setFullName('Mr Foo') ->setPassword('abcd1234') ->addToGroup('registered') ->save(); $services = $this->getApplication()->getServiceManager(); $auth = $services->get('auth'); $adapter = new \Users\Authentication\Adapter('foo', 'abcd1234', $this->p4); $auth->authenticate($adapter); $post = new Parameters( array( 'user' => 'foo', 'topic' => 'a-b-c', 'body' => 'a b c', 'timestamp' => 123 ) ); $this->getRequest() ->setMethod(\Zend\Http\Request::METHOD_POST) ->setPost($post); // dispatch and check output $this->dispatch('/comments/add'); // ensure comment has been stored $this->assertSame(1, count(Comment::fetchAll(array(), $this->p4))); // ensure comment was queue $queue = $services->get('queue'); $this->assertSame(1, $queue->getTaskCount()); $task = $queue->grabTask(); $this->assertSame('comment', $task['type']); $this->assertSame('1', $task['id']); } }