예제 #1
0
 public function testGetEmptyCollection()
 {
     MockPersistent::collection($this->fixture)->truncate();
     $this->mockEnvironment(['PATH_INFO' => '/collection/', 'REQUEST_METHOD' => 'GET']);
     try {
         $response = $this->tacit->invoke();
         $result = json_decode($response->getBody(), true);
         $this->assertEquals(200, $response->getStatus());
         $this->assertArrayHasKey('_links', $result);
         $this->assertArrayHasKey('_embedded', $result);
         $this->assertArrayHasKey('total_items', $result);
         $this->assertArrayHasKey('returned_items', $result);
         $this->assertArrayHasKey('limit', $result);
         $this->assertArrayHasKey('offset', $result);
         $this->assertEquals(0, $result['total_items']);
         $this->assertEquals(0, $result['returned_items']);
         $this->assertEquals(25, $result['limit']);
         $this->assertEquals(0, $result['offset']);
     } catch (RestfulException $e) {
         $this->fail($e->getMessage());
     } catch (\Exception $e) {
         $this->fail($e->getMessage());
     }
 }
예제 #2
0
 /**
  * Test a RESTful PUT request on a RestfulItem
  *
  * @param array $data
  *
  * @group controller
  *
  * @dataProvider providerPut
  */
 public function testPut(array $data)
 {
     /** @var MockPersistent $itemObj */
     $itemObj = MockPersistent::findOne(['name' => $data['name']], [], $this->fixture);
     $this->mockEnvironment(['PATH_INFO' => '/collection/' . $itemObj->_id, 'REQUEST_METHOD' => 'PUT', 'CONTENT_TYPE' => 'application/json', 'slim.input' => json_encode($data)]);
     try {
         $response = $this->tacit->invoke();
         $item = json_decode($response->getBody(), true);
         unset($data['password']);
         $matches = array_uintersect_assoc($data, $item, array($this, 'compareMultidimensionalArray'));
         $this->assertEquals($data, $matches);
     } catch (RestfulException $e) {
         $this->fail($e->getMessage());
     } catch (\Exception $e) {
         $this->fail($e->getMessage());
     }
 }
예제 #3
0
 /**
  * Test MockPersistent::update().
  *
  * @param array          $expected
  * @param array|\Closure $criteria
  * @param array          $data
  *
  * @dataProvider providerUpdate
  * @group model
  */
 public function testUpdate($expected, $criteria, $data)
 {
     $this->assertEquals($expected, MockPersistent::update($criteria, $data, [], $this->fixture));
 }
예제 #4
0
 /**
  * Test Collection::distinct()
  */
 public function testDistinct()
 {
     $this->assertEquals(['string #1', 'string #2', 'string #3'], MockPersistent::collection($this->fixture)->distinct('arrayOfStrings'));
 }