DominionEnterprises\Mongo\QueueTest::constructWithCollection PHP Method

constructWithCollection() public method

Verify Queue can be constructed with \MongoDB\Collection
public constructWithCollection ( ) : void
return void
    public function constructWithCollection()
    {
        $mongo = new \MongoDB\Client($this->mongoUrl, [], ['typeMap' => ['root' => 'array', 'document' => 'array', 'array' => 'array']]);
        $collection = $mongo->selectDatabase('testing')->selectCollection('custom_collection');
        $collection->drop();
        $queue = new Queue($collection);
        $payload = ['key1' => 0, 'key2' => true];
        $queue->send($payload, 34, 0.8);
        $expected = ['payload' => $payload, 'running' => false, 'resetTimestamp' => (new UTCDateTime(Queue::MONGO_INT32_MAX))->toDateTime()->getTimestamp(), 'earliestGet' => 34, 'priority' => 0.8];
        $this->assertSame(1, $collection->count());
        $message = $collection->findOne();
        $this->assertLessThanOrEqual(time(), $message['created']->toDateTime()->getTimestamp());
        $this->assertGreaterThan(time() - 10, $message['created']->toDateTime()->getTimestamp());
        unset($message['_id'], $message['created']);
        $message['resetTimestamp'] = $message['resetTimestamp']->toDateTime()->getTimestamp();
        $message['earliestGet'] = $message['earliestGet']->toDateTime()->getTimestamp();
        $this->assertSame($expected, $message);
    }