Author: chabotc
Date: Thu Aug 14 15:49:17 2008
New Revision: 686073
URL: http://svn.apache.org/viewvc?rev=686073&view=rev
Log:
Lots of new social-api tests by Gonzalo Aune, increasing our code coverage
there by quite a bit
Added:
incubator/shindig/trunk/php/test/social-api/ActivitiesHandlerTest.php
incubator/shindig/trunk/php/test/social-api/AppDataHandlerTest.php
incubator/shindig/trunk/php/test/social-api/GroupIdTest.php
incubator/shindig/trunk/php/test/social-api/MessagesHandlerTest.php
incubator/shindig/trunk/php/test/social-api/PeopleHandlerTest.php
incubator/shindig/trunk/php/test/social-api/RestFulCollectionTest.php
incubator/shindig/trunk/php/test/social-api/RestRequestItemTest.php
incubator/shindig/trunk/php/test/social-api/UserIdTest.php
Modified:
incubator/shindig/trunk/php/src/social-api/canonical/JsonDbOpensocialService.php
Modified:
incubator/shindig/trunk/php/src/social-api/canonical/JsonDbOpensocialService.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/social-api/canonical/JsonDbOpensocialService.php?rev=686073&r1=686072&r2=686073&view=diff
==============================================================================
---
incubator/shindig/trunk/php/src/social-api/canonical/JsonDbOpensocialService.php
(original)
+++
incubator/shindig/trunk/php/src/social-api/canonical/JsonDbOpensocialService.php
Thu Aug 14 15:49:17 2008
@@ -128,40 +128,34 @@
private function getAllPeople()
{
- if (is_null($this->allPeople)) {
- $db = $this->getDb();
- $peopleTable = $db[self::$PEOPLE_TABLE];
- foreach ($peopleTable as $people) {
- $this->allPeople[$people['id']] = $people;
- }
- $db[self::$PEOPLE_TABLE] = $this->allPeople;
+ $db = $this->getDb();
+ $peopleTable = $db[self::$PEOPLE_TABLE];
+ foreach ($peopleTable as $people) {
+ $this->allPeople[$people['id']] = $people;
}
+ $db[self::$PEOPLE_TABLE] = $this->allPeople;
return $this->allPeople;
}
private function getAllData()
{
- if (is_null($this->allData)) {
- $db = $this->getDb();
- $dataTable = $db[self::$DATA_TABLE];
- foreach ($dataTable as $key => $value) {
- $this->allData[$key] = $value;
- }
- $db[self::$DATA_TABLE] = $this->allData;
+ $db = $this->getDb();
+ $dataTable = $db[self::$DATA_TABLE];
+ foreach ($dataTable as $key => $value) {
+ $this->allData[$key] = $value;
}
+ $db[self::$DATA_TABLE] = $this->allData;
return $this->allData;
}
private function getAllActivities()
{
- if (is_null($this->allActivities)) {
- $db = $this->getDb();
- $activitiesTable = $db[self::$ACTIVITIES_TABLE];
- foreach ($activitiesTable as $key => $value) {
- $this->allActivities[$key] = $value;
- }
- $db[self::$ACTIVITIES_TABLE] = $this->allActivities;
+ $db = $this->getDb();
+ $activitiesTable = $db[self::$ACTIVITIES_TABLE];
+ foreach ($activitiesTable as $key => $value) {
+ $this->allActivities[$key] = $value;
}
+ $db[self::$ACTIVITIES_TABLE] = $this->allActivities;
return $this->allActivities;
}
@@ -326,8 +320,8 @@
}
switch ($groupId->getType()) {
case 'self':
- foreach ($fields as $key) { //TODO:
Implement this!
- }
+ foreach ($fields as $key) {//TODO: Implement
this!
+}
break;
default:
return new ResponseItem(NOT_IMPLEMENTED, "We
don't support deleting data in batches yet", null);
Added: incubator/shindig/trunk/php/test/social-api/ActivitiesHandlerTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social-api/ActivitiesHandlerTest.php?rev=686073&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social-api/ActivitiesHandlerTest.php
(added)
+++ incubator/shindig/trunk/php/test/social-api/ActivitiesHandlerTest.php Thu
Aug 14 15:49:17 2008
@@ -0,0 +1,177 @@
+<?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.
+ */
+
+/**
+ * Implementation tests based on ActivitiesHandler
+ */
+class ActivitiesHandlerTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @var ActivitiesHandler
+ */
+ private $ActivitiesHandler;
+
+ /**
+ * Prepares the environment before running a test.
+ */
+ protected function setUp()
+ {
+ parent::setUp();
+ $this->clearFileCache();
+ $this->ActivitiesHandler = new ActivitiesHandler();
+ }
+
+ /**
+ * Cleans up the environment after running a test.
+ */
+ protected function tearDown()
+ {
+ $this->ActivitiesHandler = null;
+ $this->clearFileCache();
+ parent::tearDown();
+ }
+
+ /**
+ * Tests ActivitiesHandler->handleDelete()
+ */
+ public function testHandleDelete()
+ {
+ $request = array();
+ $request['url'] = '/activities/@viewer/@[EMAIL
PROTECTED]&networkDistance=';
+ $request['method'] = 'GET';
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response =
$this->ActivitiesHandler->handleDelete($requestItem);
+ $this->assertEquals(BAD_REQUEST, $response->getError());
+ $this->assertEquals('You can\'t delete activities. ',
$response->getErrorMessage());
+ }
+
+ /**
+ * Tests ActivitiesHandler->handleGet()
+ */
+ public function testHandleGet()
+ {
+ $request = array();
+ $request['url'] = '/activities/@viewer/@[EMAIL
PROTECTED]&networkDistance=';
+ $request['method'] = 'GET';
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response = $this->ActivitiesHandler->handleGet($requestItem);
+ $response = $response->getResponse();
+ $entry = $response->getEntry();
+ $this->assertEquals('1', $response->getTotalResults());
+ $this->assertEquals('1', $entry[0]['id']);
+ $this->assertEquals('john.doe', $entry[0]['userId']);
+ $this->assertEquals('yellow', $entry[0]['title']);
+ $this->assertEquals('what a color!', $entry[0]['body']);
+ }
+
+ /**
+ * Tests ActivitiesHandler->handlePost()
+ */
+ public function testHandlePost()
+ {
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+
+ //Create activity
+ $request = array();
+ $request['url'] =
'/activities/@viewer/@self/@app?networkDistance=';
+ $request['method'] = 'POST';
+ $request['postData'] = array();
+ $request['postData']['id'] = '2';
+ $request['postData']['appId'] = '1';
+ $request['postData']['userId'] = 'john.doe';
+ $request['postData']['title'] = 'TestPost';
+ $request['postData']['body'] = 'TestBody';
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $this->ActivitiesHandler->handlePost($requestItem);
+
+ //Validate generated activity
+ $request = array();
+ $request['url'] = '/activities/@viewer/@self/@app';
+ $request['method'] = 'GET';
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response = $this->ActivitiesHandler->handleGet($requestItem);
+ $response = $response->getResponse();
+ $entry = $response->getEntry();
+ $this->assertEquals('2', $response->getTotalResults());
+ //First Entry
+ $this->assertEquals('1', $entry[0]['id']);
+ $this->assertEquals('john.doe', $entry[0]['userId']);
+ $this->assertEquals('yellow', $entry[0]['title']);
+ $this->assertEquals('what a color!', $entry[0]['body']);
+ //Second Entry
+ $this->assertEquals('2', $entry[1]['id']);
+ $this->assertEquals('john.doe', $entry[1]['userId']);
+ $this->assertEquals('TestPost', $entry[1]['title']);
+ $this->assertEquals('TestBody', $entry[1]['body']);
+ }
+
+ /**
+ * Tests ActivitiesHandler->handlePut()
+ */
+ public function testHandlePut()
+ {
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+
+ //Create activity
+ $request = array();
+ $request['url'] =
'/activities/@viewer/@self/@app?networkDistance=';
+ $request['method'] = 'POST';
+ $request['postData'] = array();
+ $request['postData']['id'] = '3';
+ $request['postData']['appId'] = '1';
+ $request['postData']['userId'] = 'john.doe';
+ $request['postData']['title'] = 'TestPost 3';
+ $request['postData']['body'] = 'TestBody 3';
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $this->ActivitiesHandler->handlePut($requestItem);
+
+ //Validate generated activity
+ $request = array();
+ $request['url'] = '/activities/@viewer/@self/@app';
+ $request['method'] = 'GET';
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response = $this->ActivitiesHandler->handleGet($requestItem);
+ $response = $response->getResponse();
+ $entry = $response->getEntry();
+ $this->assertEquals('2', $response->getTotalResults());
+ //First Entry
+ $this->assertEquals('1', $entry[0]['id']);
+ $this->assertEquals('john.doe', $entry[0]['userId']);
+ $this->assertEquals('yellow', $entry[0]['title']);
+ $this->assertEquals('what a color!', $entry[0]['body']);
+ //Second Entry
+ $this->assertEquals('3', $entry[1]['id']);
+ $this->assertEquals('john.doe', $entry[1]['userId']);
+ $this->assertEquals('TestPost 3', $entry[1]['title']);
+ $this->assertEquals('TestBody 3', $entry[1]['body']);
+ }
+
+ private function clearFileCache()
+ {
+ unlink(sys_get_temp_dir() . "ShindigDb.json");
+ }
+}
Added: incubator/shindig/trunk/php/test/social-api/AppDataHandlerTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social-api/AppDataHandlerTest.php?rev=686073&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social-api/AppDataHandlerTest.php (added)
+++ incubator/shindig/trunk/php/test/social-api/AppDataHandlerTest.php Thu Aug
14 15:49:17 2008
@@ -0,0 +1,145 @@
+<?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.
+ */
+
+/**
+ * Implementation tests based on AppDataHandler
+ */
+class AppDataHandlerTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @var AppDataHandler
+ */
+ private $AppDataHandler;
+
+ /**
+ * Prepares the environment before running a test.
+ */
+ protected function setUp()
+ {
+ parent::setUp();
+ $this->clearFileCache();
+ $this->AppDataHandler = new AppDataHandler();
+ }
+
+ /**
+ * Cleans up the environment after running a test.
+ */
+ protected function tearDown()
+ {
+ $this->AppDataHandler = null;
+ $this->clearFileCache();
+ parent::tearDown();
+ }
+
+ /**
+ * Tests ActivitiesHandler->handleDelete()
+ */
+ public function testHandleDelete()
+ {
+ $request = array();
+ $request['url'] = '/appdata/@viewer/@app?fields=count';
+ $request['method'] = 'POST';
+ $request['postData'] = array();
+ $request['postData']['data'] = 'TestHandleDelete';
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response = $this->AppDataHandler->handleDelete($requestItem);
+ $this->assertEquals(NOT_IMPLEMENTED, $response->getError());
+ $this->assertEquals("We don't support deleting data in batches
yet", $response->getErrorMessage());
+ }
+
+ /**
+ * Tests ActivitiesHandler->handleGet()
+ */
+ public function testHandleGet()
+ {
+ $request = array();
+ $request['url'] =
'/appdata/@viewer/@self/@app?networkDistance=&fields=count';
+ $request['method'] = 'GET';
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response = $this->AppDataHandler->handleGet($requestItem);
+ $response = $response->getResponse();
+ $entry = $response->getEntry();
+ $this->assertEquals('0', $entry['john.doe']['count']);
+ }
+
+ /**
+ * Tests ActivitiesHandler->handlePost()
+ */
+ public function testHandlePost()
+ {
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+ //Create data
+ $request = array();
+ $request['url'] = '/appdata/@viewer/@self/@app?fields=count';
+ $request['method'] = 'POST';
+ $request['postData'] = array();
+ $request['postData']['count'] = 'TestHandlePost';
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $this->AppDataHandler->handlePost($requestItem);
+
+ //Validate generated data
+ $request = array();
+ $request['url'] =
'/appdata/@viewer/@self/@app?networkDistance=&fields=count';
+ $request['method'] = 'GET';
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response = $this->AppDataHandler->handleGet($requestItem);
+ $response = $response->getResponse();
+ $entry = $response->getEntry();
+ $this->assertEquals('TestHandlePost',
$entry['john.doe']['count']);
+ }
+
+ /**
+ * Tests ActivitiesHandler->handlePut()
+ */
+ public function testHandlePut()
+ {
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+ //Create data
+ $request = array();
+ $request['url'] = '/appdata/@viewer/@self/@app?fields=count';
+ $request['method'] = 'POST';
+ $request['postData'] = array();
+ $request['postData']['count'] = 'TestHandlePut';
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $this->AppDataHandler->handlePut($requestItem);
+
+ //Validate generated data
+ $request = array();
+ $request['url'] =
'/appdata/@viewer/@self/@app?networkDistance=&fields=count';
+ $request['method'] = 'GET';
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response = $this->AppDataHandler->handleGet($requestItem);
+ $response = $response->getResponse();
+ $entry = $response->getEntry();
+ $this->assertEquals('TestHandlePut',
$entry['john.doe']['count']);
+ }
+
+ private function clearFileCache()
+ {
+ unlink(sys_get_temp_dir() . "ShindigDb.json");
+ }
+}
Added: incubator/shindig/trunk/php/test/social-api/GroupIdTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social-api/GroupIdTest.php?rev=686073&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social-api/GroupIdTest.php (added)
+++ incubator/shindig/trunk/php/test/social-api/GroupIdTest.php Thu Aug 14
15:49:17 2008
@@ -0,0 +1,90 @@
+<?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.
+ */
+
+/**
+ * GroupId test case.
+ */
+class GroupIdTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @var GroupId
+ */
+ private $GroupId;
+
+ /**
+ * Prepares the environment before running a test.
+ */
+ protected function setUp()
+ {
+ parent::setUp();
+ $this->GroupId = new GroupId('all', 1);
+ }
+
+ /**
+ * Cleans up the environment after running a test.
+ */
+ protected function tearDown()
+ {
+ $this->GroupId = null;
+ parent::tearDown();
+ }
+
+ /**
+ * Constructs the test case.
+ */
+ public function __construct()
+ {
+ }
+
+ /**
+ * Tests GroupId->__construct()
+ */
+ public function test__construct()
+ {
+ $this->GroupId->__construct('all', 1);
+ }
+
+ /**
+ * Tests GroupId->getGroupId()
+ */
+ public function testGetGroupId()
+ {
+ $this->assertEquals(1, $this->GroupId->getGroupId());
+ }
+
+ /**
+ * Tests GroupId->getType()
+ */
+ public function testGetType()
+ {
+ $this->assertEquals('all', $this->GroupId->getType());
+ }
+
+ /**
+ * Tests GroupId->fromJson()
+ */
+ public function testFromJson()
+ {
+ $json = 'jsonid';
+ $fromJson = $this->GroupId->fromJson($json);
+ $this->assertEquals('groupId', $fromJson->getType());
+ $this->assertEquals('jsonid', $fromJson->getGroupId());
+ }
+
+}
Added: incubator/shindig/trunk/php/test/social-api/MessagesHandlerTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social-api/MessagesHandlerTest.php?rev=686073&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social-api/MessagesHandlerTest.php (added)
+++ incubator/shindig/trunk/php/test/social-api/MessagesHandlerTest.php Thu Aug
14 15:49:17 2008
@@ -0,0 +1,96 @@
+<?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.
+ */
+
+/**
+ * Implementation tests based on MessagesHandler
+ */
+class MessagesHandlerTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @var MessagesHandler
+ */
+ private $MessagesHandler;
+
+ /**
+ * Prepares the environment before running a test.
+ */
+ protected function setUp()
+ {
+ parent::setUp();
+ $this->MessagesHandler = new MessagesHandler();
+ }
+
+ /**
+ * Cleans up the environment after running a test.
+ */
+ protected function tearDown()
+ {
+ $this->MessagesHandler = null;
+ parent::tearDown();
+ }
+
+ /**
+ * Tests MessagesHandler->handleDelete()
+ */
+ public function testHandleDelete()
+ {
+ $response = $this->MessagesHandler->handleDelete(new
RestRequestItem());
+ $this->assertEquals(NOT_IMPLEMENTED, $response->getError());
+ $this->assertEquals("You can't delete messages",
$response->getErrorMessage());
+ }
+
+ /**
+ * Tests MessagesHandler->handleGet()
+ */
+ public function testHandleGet()
+ {
+ $response = $this->MessagesHandler->handleGet(new
RestRequestItem());
+ $this->assertEquals(NOT_IMPLEMENTED, $response->getError());
+ $this->assertEquals("You can't retrieve messages",
$response->getErrorMessage());
+ }
+
+ /**
+ * Tests MessagesHandler->handlePost()
+ */
+ public function testHandlePost()
+ {
+ $response = $this->MessagesHandler->handlePost(new
RestRequestItem());
+ $this->assertEquals(NOT_IMPLEMENTED, $response->getError());
+ $this->assertEquals("You can't edit messages",
$response->getErrorMessage());
+ }
+
+ /**
+ * Tests MessagesHandler->handlePut()
+ */
+ public function testHandlePut()
+ {
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+ //Create message
+ $request = array();
+ $request['url'] = '/messages/@viewer/outbox/1';
+ $request['postData'] = 'message 1';
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response = $this->MessagesHandler->handlePut($requestItem);
+ $this->assertEquals(NOT_IMPLEMENTED, $response->getError());
+ $this->assertEquals("Not implemented",
$response->getErrorMessage());
+ }
+
+}
+?>
\ No newline at end of file
Added: incubator/shindig/trunk/php/test/social-api/PeopleHandlerTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social-api/PeopleHandlerTest.php?rev=686073&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social-api/PeopleHandlerTest.php (added)
+++ incubator/shindig/trunk/php/test/social-api/PeopleHandlerTest.php Thu Aug
14 15:49:17 2008
@@ -0,0 +1,98 @@
+<?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.
+ */
+
+/**
+ * Implementation tests based on PeopleHandler
+ */
+class PeopleHandlerTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @var PeopleHandler
+ */
+ private $PeopleHandler;
+
+ /**
+ * Prepares the environment before running a test.
+ */
+ protected function setUp()
+ {
+ parent::setUp();
+ $this->PeopleHandler = new PeopleHandler();
+ }
+
+ /**
+ * Cleans up the environment after running a test.
+ */
+ protected function tearDown()
+ {
+ $this->PeopleHandler = null;
+ parent::tearDown();
+ }
+
+ /**
+ * Tests PeopleHandler->handleDelete()
+ */
+ public function testHandleDelete()
+ {
+ $response = $this->PeopleHandler->handleDelete(new
RestRequestItem());
+ $this->assertEquals(BAD_REQUEST, $response->getError());
+ $this->assertEquals("You can't delete people.",
$response->getErrorMessage());
+ }
+
+ /**
+ * Tests PeopleHandler->handleGet()
+ */
+ public function testHandleGet()
+ {
+ $request = array();
+ $request['url'] = '/people/@viewer/@self';
+ $request['method'] = 'GET';
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+ $requestItem = new RestRequestItem();
+ $requestItem->createRequestItemWithRequest($request, $token);
+ $response = $this->PeopleHandler->handleGet($requestItem);
+ $person = $response->getResponse();
+ $this->assertEquals('john.doe', $person['id']);
+ $this->assertEquals('MALE', $person['gender']['key']);
+ $this->assertEquals('Male', $person['gender']['displayValue']);
+ $this->assertEquals('Doe', $person['name']['familyName']);
+ $this->assertEquals('John', $person['name']['givenName']);
+ $this->assertEquals('John Doe',
$person['name']['unstructured']);
+ }
+
+ /**
+ * Tests PeopleHandler->handlePost()
+ */
+ public function testHandlePost()
+ {
+ $response = $this->PeopleHandler->handlePost(new
RestRequestItem());
+ $this->assertEquals(NOT_IMPLEMENTED, $response->getError());
+ $this->assertEquals("You can't edit people right now.",
$response->getErrorMessage());
+ }
+
+ /**
+ * Tests PeopleHandler->handlePut()
+ */
+ public function testHandlePut()
+ {
+ $response = $this->PeopleHandler->handlePut(new
RestRequestItem());
+ $this->assertEquals(NOT_IMPLEMENTED, $response->getError());
+ $this->assertEquals("You can't add people right now.",
$response->getErrorMessage());
+ }
+}
Added: incubator/shindig/trunk/php/test/social-api/RestFulCollectionTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social-api/RestFulCollectionTest.php?rev=686073&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social-api/RestFulCollectionTest.php
(added)
+++ incubator/shindig/trunk/php/test/social-api/RestFulCollectionTest.php Thu
Aug 14 15:49:17 2008
@@ -0,0 +1,106 @@
+<?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.
+ */
+
+/**
+ * RestFulCollection test case.
+ */
+class RestFulCollectionTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @var RestFulCollection
+ */
+ private $RestFulCollection;
+
+ /**
+ * Prepares the environment before running a test.
+ */
+ protected function setUp()
+ {
+ parent::setUp();
+ $this->RestFulCollection = new RestFulCollection($entry, 1, 1);
+ }
+
+ /**
+ * Cleans up the environment after running a test.
+ */
+ protected function tearDown()
+ {
+ $this->RestFulCollection = null;
+ parent::tearDown();
+ }
+
+ /**
+ * Constructs the test case.
+ */
+ public function __construct()
+ {
+ }
+
+ /**
+ * Tests RestFulCollection->__construct()
+ */
+ public function test__construct()
+ {
+ $entry = array();
+ $entry[] = "Entry";
+ $this->RestFulCollection->__construct($entry, 1, 1);
+ }
+
+ /**
+ * Tests RestFulCollection->getEntry()
+ */
+ public function testGetEntry()
+ {
+ $entry = array();
+ $entry[] = "Entry";
+ $this->RestFulCollection->setEntry($entry);
+ $this->assertEquals($entry,
$this->RestFulCollection->getEntry());
+ }
+
+ /**
+ * Tests RestFulCollection->getStartIndex()
+ */
+ public function testGetStartIndex()
+ {
+ $this->RestFulCollection->setStartIndex(1);
+ $this->assertEquals(1,
$this->RestFulCollection->getStartIndex());
+ }
+
+ /**
+ * Tests RestFulCollection->getTotalResults()
+ */
+ public function testGetTotalResults()
+ {
+ $this->RestFulCollection->setTotalResults(1);
+ $this->assertEquals(1,
$this->RestFulCollection->getTotalResults());
+ }
+
+ /**
+ * Tests RestFulCollection->createFromEntry()
+ */
+ public function testCreateFromEntry()
+ {
+ $entry = array();
+ $entry[] = "Entry";
+ $restFulCollection = RestFulCollection::createFromEntry($entry);
+ $this->assertEquals(1, $restFulCollection->getTotalResults());
+ $this->assertEquals($entry, $restFulCollection->getEntry());
+ $this->assertEquals(0, $restFulCollection->getStartIndex());
+ }
+}
Added: incubator/shindig/trunk/php/test/social-api/RestRequestItemTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social-api/RestRequestItemTest.php?rev=686073&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social-api/RestRequestItemTest.php (added)
+++ incubator/shindig/trunk/php/test/social-api/RestRequestItemTest.php Thu Aug
14 15:49:17 2008
@@ -0,0 +1,228 @@
+<?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.
+ */
+
+/**
+ * RestRequestItem test case.
+ */
+class RestRequestItemTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @var RestRequestItem
+ */
+ private $RestRequestItem;
+
+ /**
+ * Prepares the environment before running a test.
+ */
+ protected function setUp()
+ {
+ parent::setUp();
+ $this->RestRequestItem = new RestRequestItem();
+ $url =
'/people/@viewer/@self?fields=age,name,gender,profileUrl,thumbnailUrl,' .
'status,id&startIndex=0&count=40&orderBy=name&filterBy=all&networkDistance=1';
+ $request = array();
+ $request['url'] = $url;
+ $request['method'] = 'GET';
+ $request['postData'] = array();
+ $request['postData']['data'] = 'DataTest';
+ $this->RestRequestItem->createRequestItemWithRequest($request,
$this->getToken());
+
+ //(the getters of the parsedTemplate will be tested on other
methods)
+
$this->RestRequestItem->parseUrlWithTemplate("/people/{userId}/{groupId}/{personId}");
+ }
+
+ /**
+ * Cleans up the environment after running a test.
+ */
+ protected function tearDown()
+ {
+ $this->RestRequestItem = null;
+ parent::tearDown();
+ }
+
+ /**
+ * Constructs the test case.
+ */
+ public function __construct()
+ {
+ }
+
+ private $token;
+
+ private function getToken()
+ {
+ if (is_null($this->token)) {
+ $this->token =
BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain',
'appUrl', '1');
+ }
+ return $this->token;
+ }
+
+ /**
+ * Tests RestRequestItem->createRequestItemWithRequest()
+ */
+ public function testCreateRequestItemWithRequest()
+ {
+ $url =
'/people/@viewer/@self?fields=age,name,gender,profileUrl,thumbnailUrl,' .
'status,id&startIndex=0&count=40&orderBy=name&filterBy=all&networkDistance=1';
+ $request = array();
+ $request['url'] = $url;
+ $request['method'] = 'GET';
+ $request['postData'] = array();
+ $request['postData']['data'] = 'DataTest';
+ $this->RestRequestItem->createRequestItemWithRequest($request,
$this->getToken());
+
+ //Without the parseTemplate
+ $this->assertEquals($url, $this->RestRequestItem->getUrl());
+ $this->assertEquals('0', $this->RestRequestItem->getAppId());
+ $this->assertEquals(false, $this->RestRequestItem->getUser());
+ $this->assertEquals(false, $this->RestRequestItem->getGroup());
+ $this->assertEquals('0',
$this->RestRequestItem->getStartIndex());
+ $this->assertEquals('20', $this->RestRequestItem->getCount());
+ $this->assertEquals(PeopleOptions::$sortOrder,
$this->RestRequestItem->getOrderBy());
+ $this->assertEquals(PeopleOptions::$filterType,
$this->RestRequestItem->getFilterBy());
+ $this->assertEquals(false,
$this->RestRequestItem->getNetworkDistance());
+ }
+
+ /**
+ * Tests RestRequestItem->createRequestItem()
+ */
+ public function testCreateRequestItem()
+ {
+ $url = '/people/@viewer/@self';
+ $method = 'GET';
+ $postData = array();
+ $postData['data'] = 'DataTest';
+ $params = array();
+ $params['param1'] = 'DataParam1';
+ $this->RestRequestItem->createRequestItem($url,
$this->getToken(), $method, $params, $postData);
+ $this->assertEquals($url, $this->RestRequestItem->getUrl());
+ $this->assertEquals($this->token,
$this->RestRequestItem->getToken());
+ $this->assertEquals($method,
$this->RestRequestItem->getMethod());
+ $this->assertEquals($params,
$this->RestRequestItem->getParameters());
+ $this->assertEquals($postData,
$this->RestRequestItem->getPostData());
+ }
+
+ /**
+ * Tests RestRequestItem->getParameters()
+ */
+ public function testGetParameters()
+ {
+ $parameters = $this->RestRequestItem->getParameters();
+ $this->assertEquals('people', $parameters[0]);
+ $this->assertEquals('@viewer', $parameters[1]);
+ $this->assertEquals('@self', $parameters[2]);
+ }
+
+ /**
+ * Tests RestRequestItem->getPostData()
+ */
+ public function testGetPostData()
+ {
+ $postData = $this->RestRequestItem->getPostData();
+ $this->assertEquals('DataTest', $postData['data']);
+ }
+
+ /**
+ * Tests RestRequestItem->getToken()
+ */
+ public function testGetToken()
+ {
+ $this->assertEquals($this->getToken(),
$this->RestRequestItem->getToken());
+ }
+
+ /**
+ * Tests RestRequestItem->getMethod()
+ */
+ public function testGetMethod()
+ {
+ $this->assertEquals('GET', $this->RestRequestItem->getMethod());
+ }
+
+ /**
+ * Tests RestRequestItem->getUrl()
+ */
+ public function testGetUrl()
+ {
+ $this->assertEquals("/people/@viewer/@self",
$this->RestRequestItem->getUrl());
+ }
+
+ /**
+ * Tests RestRequestItem->getAppId()
+ */
+ public function testGetAppId()
+ {
+ $this->assertEquals('0', $this->RestRequestItem->getAppId());
+ }
+
+ /**
+ * Tests RestRequestItem->getUser()
+ */
+ public function testGetUser()
+ {
+ $userId = $this->RestRequestItem->getUser();
+ $this->assertEquals('viewer', $userId->getType());
+ }
+
+ /**
+ * Tests RestRequestItem->getGroup()
+ */
+ public function testGetGroup()
+ {
+ $groupId = $this->RestRequestItem->getGroup();
+ $this->assertEquals('self', $groupId->getType());
+ }
+
+ /**
+ * Tests RestRequestItem->getStartIndex()
+ */
+ public function testGetStartIndex()
+ {
+ $this->assertEquals('0',
$this->RestRequestItem->getStartIndex());
+ }
+
+ /**
+ * Tests RestRequestItem->getCount()
+ */
+ public function testGetCount()
+ {
+ $this->assertEquals('40', $this->RestRequestItem->getCount());
+ }
+
+ /**
+ * Tests RestRequestItem->getOrderBy()
+ */
+ public function testGetOrderBy()
+ {
+ $this->assertEquals('name',
$this->RestRequestItem->getOrderBy());
+ }
+
+ /**
+ * Tests RestRequestItem->getFilterBy()
+ */
+ public function testGetFilterBy()
+ {
+ $this->assertEquals('all',
$this->RestRequestItem->getFilterBy());
+ }
+
+ /**
+ * Tests RestRequestItem->getNetworkDistance()
+ */
+ public function testGetNetworkDistance()
+ {
+ $this->assertEquals('1',
$this->RestRequestItem->getNetworkDistance());
+ }
+}
Added: incubator/shindig/trunk/php/test/social-api/UserIdTest.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/test/social-api/UserIdTest.php?rev=686073&view=auto
==============================================================================
--- incubator/shindig/trunk/php/test/social-api/UserIdTest.php (added)
+++ incubator/shindig/trunk/php/test/social-api/UserIdTest.php Thu Aug 14
15:49:17 2008
@@ -0,0 +1,96 @@
+<?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.
+ */
+
+/**
+ * UserId test case.
+ */
+class UserIdTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @var UserId
+ */
+ private $UserId;
+
+ /**
+ * Prepares the environment before running a test.
+ */
+ protected function setUp()
+ {
+ parent::setUp();
+ $this->UserId = new UserId(UserId::$types[0], 1);
+ }
+
+ /**
+ * Cleans up the environment after running a test.
+ */
+ protected function tearDown()
+ {
+ $this->UserId = null;
+ parent::tearDown();
+ }
+
+ /**
+ * Constructs the test case.
+ */
+ public function __construct()
+ {
+ }
+
+ /**
+ * Tests UserId->__construct()
+ */
+ public function test__construct()
+ {
+ $this->UserId->__construct(UserId::$types[0], 1); //viewer
+ }
+
+ /**
+ * Tests UserId->getUserId()
+ */
+ public function testGetUserId()
+ {
+ $token = BasicSecurityToken::createFromValues('john.doe',
'john.doe', 'app', 'domain', 'appUrl', '1');
+ $userId = $this->UserId->getUserId($token);
+ $this->assertEquals('john.doe', $userId);
+ $this->UserId->__construct(UserId::$types[1], 1); //owner
+ $userId = $this->UserId->getUserId($token);
+ $this->assertEquals('john.doe', $userId);
+ $this->UserId->__construct(UserId::$types[2], 1); //userId
+ $userId = $this->UserId->getUserId($token);
+ $this->assertEquals('1', $userId);
+ }
+
+ /**
+ * Tests UserId->getType()
+ */
+ public function testGetType()
+ {
+ $this->assertEquals('viewer', $this->UserId->getType());
+ }
+
+ /**
+ * Tests UserId->fromJson()
+ */
+ public function testFromJson()
+ {
+ $json = 'jsonid';
+ $fromJson = $this->UserId->fromJson($json);
+ $this->assertEquals('userId', $fromJson->getType());
+ }
+}