function testEntity() { global $_PA; // Dal::register_query_callback("explain_query"); // see if our test entity already exists $entity = Entity::load("PHPUnit", "TestEntity", "#1"); $this->assertNull($entity, "we shouldn't have any Entites in the service PHPUnit at this point."); $myEntity = new TestEntity('#1'); echo "sync #1\n"; Entity::sync($myEntity); // create a second $myEntity2 = new TestEntity('#2'); echo "sync #2\n"; Entity::sync($myEntity2); // modify #1 $myEntity->attributes['ThreeAttribute'] = array('value' => "Baz"); Entity::sync($myEntity); // remove an attribute from #2 unset($myEntity2->attributes['OneAttribute']); Entity::sync($myEntity2); $myEntity3 = new TestEntity('#3'); Entity::sync($myEntity3); $myEntity4 = new TestEntity('#4'); $myEntity4->attributes['ThreeAttribute'] = array('value' => "Baz"); $myEntity4->attributes['fourAttribute'] = array('value' => "4"); Entity::sync($myEntity4); // test attribute search // Dal::register_query_callback("explain_query"); $foundEntities = Entity::search(array('entity_service' => 'PHPUnit', 'entity_type' => 'TestEntity'), array('OneAttribute' => 'F', 'TwoAttribute' => 'b', 'ThreeAttribute' => 'b', 'FourAttribute' => '4')); // Dal::unregister_query_callback("explain_query"); echo "\nfound " . count($foundEntities) . " entities by attribute search:\n"; foreach ($foundEntities as $i => $e) { echo "entity: '{$e['entity_service']}:{$e['entity_type']}:{$e['entity_id']}\n"; } // Dal::register_query_callback("explain_query"); $foundEntities = Entity::search(array(), array('FourAttribute' => '4')); // Dal::unregister_query_callback("explain_query"); echo "\nfound " . count($foundEntities) . " entities by attribute search:\n"; foreach ($foundEntities as $i => $e) { echo "entity: '{$e['entity_service']}:{$e['entity_type']}:{$e['entity_id']}\n"; } $testEntities = Entity::search(array('entity_service' => 'PHPUnit', 'entity_type' => 'TestEntity')); echo "\nfound " . count($testEntities) . " test entities:\n"; // load test entities foreach ($testEntities as $i => $e) { echo "entity: '{$e['entity_service']}:{$e['entity_type']}:{$e['entity_id']}\n"; // print_r(Entity::load($e['entity_service'], $e['entity_type'], $e['entity_id'])); echo "\n"; } // clean up test entities foreach ($testEntities as $i => $e) { Entity::delete($e['entity_service'], $e['entity_type'], $e['entity_id']); } // test again $testEntities = Entity::search(array('entity_service' => 'PHPUnit')); $this->assertEquals(count($testEntities), 0, "There should no longer be any Entities in the PHPUnit service."); }
public static function sync($entity) { $_ent = Entity::load($entity->entity_service, $entity->entity_type, $entity->entity_id); if (empty($_ent)) { self::update_user_points($entity->attributes); } else { self::update_user_points($entity->attributes, $_ent->attributes); } parent::sync($entity); }
public static function sync($data) { $entity = (object) array('entity_service' => 'typedGroup', 'entity_type' => $data['type'], 'entity_id' => $data['group_id'], 'entity_name' => $data['name'], 'attributes' => $data); parent::sync($entity); // also update the group that this corresponds to $g = new Group(); try { $g->load((int) $data['group_id']); $g->group_type = 'typedgroup'; $g->save(); } catch (PAException $e) { throw $e; } }