blob: 1c49911808a7cf41a598aabeb09cb48776be6386 [file] [log] [blame]
#!/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);
}
}
?>