#!/usr/bin/env php | |
<?php | |
/** | |
* Licensed to the Apache Software Foundation (ASF) under one | |
* or more contributor license agreements. See the NOTICE file | |
* distributed with this work for additional information | |
* regarding copyright ownership. The ASF licenses this file | |
* to you under the Apache License, Version 2.0 (the | |
* "License"); you may not use this file except in compliance | |
* with the License. You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
/** | |
* @file | |
* Collection tests | |
* | |
* @author Rod Simpson <rod@apigee.com> | |
* @since 09-Mar-2013 | |
*/ | |
//-------------------------------------------------------------- | |
// Collection tests | |
//-------------------------------------------------------------- | |
$testname = 'Create test data - '; | |
for($i=0;$i<30;$i++) { | |
$testname = 'Create dog_'.$i; | |
$data = array('name' => 'dog_'.$i, 'type' => 'dogs'); | |
$entity = $client->create_entity($data); | |
if ($entity->get('name') == 'dog_'.$i && $entity->get('type') == 'dog'){ | |
$tester->success($testname); | |
} else { | |
$tester->error($testname); | |
} | |
} | |
$testname = 'Get dogs collection'; | |
//@han {get-collection} | |
$dogs = $client->get_collection('dogs'); | |
//@solo | |
//echo '<pre>'.$dogs->get_json().'</pre><br>'; | |
if ($dogs->get_type() == 'dogs') { | |
$tester->success($testname); | |
} else { | |
$tester->error($testname); | |
} | |
//@han {iterate-collection} | |
while ($dogs->has_next_entity()) { | |
$dog = $dogs->get_next_entity(); | |
//do something with dog | |
$name = $dog->get('name'); | |
} | |
//@solo | |
//@han {re-iterate-collection} | |
$dogs->reset_entity_pointer(); | |
while ($dogs->has_next_entity()) { | |
$dog = $dogs->get_next_entity(); | |
//do something with dog | |
$name = $dog->get('name'); | |
} | |
//@solo | |
//@han {get-next-page-collection} | |
$dogs->get_next_page(); | |
while ($dogs->has_next_entity()) { | |
$dog = $dogs->get_next_entity(); | |
$name = $dog->get('name'); | |
} | |
//@solo | |
//@han {get-prev-page-collection} | |
$dogs->get_prev_page(); | |
while ($dogs->has_next_entity()) { | |
$dog = $dogs->get_next_entity(); | |
$name = $dog->get('name'); | |
} | |
//@solo | |
$testname = 'Get next page of dogs collection'; | |
$testname2 = 'Verify next page of dogs collection - '; | |
//@han {iterate-over-entire-collection} | |
while ($dogs->get_next_page()) { | |
$tester->success($testname); | |
while ($dogs->has_next_entity()) { | |
$dog = $dogs->get_next_entity(); | |
$name = $dog->get('name'); | |
//@solo | |
if ($entity->get('type') == 'dog'){ | |
$tester->success($testname2.$name); | |
} else { | |
$tester->error($testname2.$name); | |
} | |
//@han {iterate-over-entire-collection2} | |
} | |
} | |
//@solo | |
//@han {get-previous-page-collection} | |
while ($dogs->get_prev_page()) { | |
$testname = 'Get next page of dogs collection'; | |
$tester->success($testname); | |
$testname = 'Verify next page of dogs collection - '; | |
while ($dogs->has_next_entity()) { | |
$dog = $dogs->get_next_entity(); | |
$name = $dog->get('name'); | |
if ($entity->get('type') == 'dog'){ | |
$tester->success($testname.$name); | |
} else { | |
$tester->error($testname.$name); | |
} | |
} | |
} | |
$testname = 'Add new dog to collection'; | |
//@han {add-entity-to-collection} | |
$data = array('name' => 'Dino', 'type' => 'dogs'); | |
$dino = $dogs->add_entity($data); | |
//@solo | |
if ($dino->get('name') == 'Dino') { | |
$tester->success($testname); | |
} else { | |
$tester->error($testname); | |
} | |
//@han {set-limit-collection} | |
$data = array('ql'=>'select * where created > 0', 'limit'=>'40'); | |
$dogs = $client->get_collection('dogs', $data); | |
//@solo | |
$testname = 'Clear dogs sample data - '; | |
$dogs->reset_entity_pointer(); | |
while ($dogs->has_next_entity()) { | |
$dog = $dogs->get_next_entity(); | |
$name = $dog->get('name'); | |
$result = $dog->destroy(); | |
$response_data = $result->get_data(); | |
if (isset($response_data['action']) && $response_data['action'] == 'delete') { | |
$tester->success($testname.$name); | |
} else { | |
$tester->error($testname.$name); | |
} | |
} | |
?> |