summaryrefslogtreecommitdiffstats
path: root/includes/google-api-php-client-master/tests/general/ApiModelTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/google-api-php-client-master/tests/general/ApiModelTest.php')
-rw-r--r--includes/google-api-php-client-master/tests/general/ApiModelTest.php189
1 files changed, 189 insertions, 0 deletions
diff --git a/includes/google-api-php-client-master/tests/general/ApiModelTest.php b/includes/google-api-php-client-master/tests/general/ApiModelTest.php
new file mode 100644
index 0000000..9a81e71
--- /dev/null
+++ b/includes/google-api-php-client-master/tests/general/ApiModelTest.php
@@ -0,0 +1,189 @@
+<?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.
+ */
+
+class ApiModelTest extends BaseTest
+{
+ private $calendarData = '{
+ "kind": "calendar#event",
+ "etag": "\"-kteSF26GsdKQ5bfmcd4H3_-u3g/MTE0NTUyNTAxOTk0MjAwMA\"",
+ "id": "1234566",
+ "status": "confirmed",
+ "htmlLink": "https://www.google.com/calendar/event?eid=N",
+ "created": "2006-04-13T14:22:08.000Z",
+ "updated": "2006-04-20T09:23:39.942Z",
+ "summary": "Evening Jolt Q3 CTFL",
+ "description": "6.30 - Adminning\n9.30 - Game",
+ "creator": {
+ "email": "ian@example.com",
+ "displayName": "Ian Test",
+ "self": true
+ },
+ "organizer": {
+ "email": "ian@example.com",
+ "displayName": "Ian Test",
+ "self": true
+ },
+ "start": {
+ "date": "2006-04-23"
+ },
+ "end": {
+ "date": "2006-04-24"
+ },
+ "iCalUID": "5gi2ac493nnrfdfd7jhesafget8@google.com",
+ "sequence": 0,
+ "reminders": {
+ "useDefault": false
+ }
+ }';
+
+ public function testIntentionalNulls()
+ {
+ $data = json_decode($this->calendarData, true);
+ $event = new Google_Service_Calendar_Event($data);
+ $obj = json_decode(json_encode($event->toSimpleObject()), true);
+ $this->assertArrayHasKey('date', $obj['start']);
+ $this->assertArrayNotHasKey('dateTime', $obj['start']);
+ $date = new Google_Service_Calendar_EventDateTime();
+ $date->setDate(Google_Model::NULL_VALUE);
+ $event->setStart($date);
+ $obj = json_decode(json_encode($event->toSimpleObject()), true);
+ $this->assertNull($obj['start']['date']);
+ $this->assertArrayHasKey('date', $obj['start']);
+ $this->assertArrayNotHasKey('dateTime', $obj['start']);
+ }
+ public function testModelMutation()
+ {
+ $data = json_decode($this->calendarData, true);
+ $event = new Google_Service_Calendar_Event($data);
+ $date = new Google_Service_Calendar_EventDateTime();
+ date_default_timezone_set('UTC');
+ $dateString = Date("c");
+ $summary = "hello";
+ $date->setDate($dateString);
+ $event->setStart($date);
+ $event->setEnd($date);
+ $event->setSummary($summary);
+ $simpleEvent = $event->toSimpleObject();
+ $this->assertEquals($dateString, $simpleEvent->start->date);
+ $this->assertEquals($dateString, $simpleEvent->end->date);
+ $this->assertEquals($summary, $simpleEvent->summary);
+
+ $event2 = new Google_Service_Calendar_Event();
+ $this->assertNull($event2->getStart());
+ }
+
+ public function testVariantTypes()
+ {
+ $feature = new Google_Service_MapsEngine_Feature();
+ $geometry = new Google_Service_MapsEngine_GeoJsonPoint();
+ $geometry->setCoordinates(array(1, 0));
+ $feature->setGeometry($geometry);
+ $data = json_decode(json_encode($feature->toSimpleObject()), true);
+ $this->assertEquals('Point', $data['geometry']['type']);
+ $this->assertEquals(1, $data['geometry']['coordinates'][0]);
+ }
+
+ public function testOddMappingNames()
+ {
+ $creative = new Google_Service_AdExchangeBuyer_Creative();
+ $creative->setAccountId('12345');
+ $creative->setBuyerCreativeId('12345');
+ $creative->setAdvertiserName('Hi');
+ $creative->setHTMLSnippet("<p>Foo!</p>");
+ $creative->setClickThroughUrl(array('http://somedomain.com'));
+ $creative->setWidth(100);
+ $creative->setHeight(100);
+ $data = json_decode(json_encode($creative->toSimpleObject()), true);
+ $this->assertEquals($data['HTMLSnippet'], "<p>Foo!</p>");
+ $this->assertEquals($data['width'], 100);
+ $this->assertEquals($data['height'], 100);
+ $this->assertEquals($data['accountId'], "12345");
+ }
+
+ public function testJsonStructure()
+ {
+ $model = new Google_Model();
+ $model->publicA = "This is a string";
+ $model2 = new Google_Model();
+ $model2->publicC = 12345;
+ $model2->publicD = null;
+ $model->publicB = $model2;
+ $model3 = new Google_Model();
+ $model3->publicE = 54321;
+ $model3->publicF = null;
+ $model->publicG = array($model3, "hello", false);
+ $model->publicH = false;
+ $model->publicI = 0;
+ $string = json_encode($model->toSimpleObject());
+ $data = json_decode($string, true);
+ $this->assertEquals(12345, $data['publicB']['publicC']);
+ $this->assertEquals("This is a string", $data['publicA']);
+ $this->assertArrayNotHasKey("publicD", $data['publicB']);
+ $this->assertArrayHasKey("publicE", $data['publicG'][0]);
+ $this->assertArrayNotHasKey("publicF", $data['publicG'][0]);
+ $this->assertEquals("hello", $data['publicG'][1]);
+ $this->assertEquals(false, $data['publicG'][2]);
+ $this->assertArrayNotHasKey("data", $data);
+ $this->assertEquals(false, $data['publicH']);
+ $this->assertEquals(0, $data['publicI']);
+ }
+
+ public function testIssetPropertyOnModel()
+ {
+ $model = new Google_Model();
+ $model['foo'] = 'bar';
+ $this->assertTrue(isset($model->foo));
+ }
+
+ public function testUnsetPropertyOnModel()
+ {
+ $model = new Google_Model();
+ $model['foo'] = 'bar';
+ unset($model->foo);
+ $this->assertFalse(isset($model->foo));
+ }
+
+ public function testCollection()
+ {
+ $data = json_decode(
+ '{
+ "kind": "calendar#events",
+ "id": "1234566",
+ "etag": "abcdef",
+ "totalItems": 4,
+ "items": [
+ {"id": 1},
+ {"id": 2},
+ {"id": 3},
+ {"id": 4}
+ ]
+ }',
+ true
+ );
+ $collection = new Google_Service_Calendar_Events($data);
+ $this->assertEquals(4, count($collection));
+ $count = 0;
+ foreach ($collection as $col) {
+ $count++;
+ }
+ $this->assertEquals(4, $count);
+ $this->assertEquals(1, $collection[0]->id);
+ }
+}