function testSerialize() { $ser = new JsonSerializer(); $jsonString = $ser->serialize($this->model); $memModel = new MemModel(); $memModel->loadFromString($jsonString, 'json'); $this->assertTrue($this->model->equals($memModel)); }
/** * @test * @dataProvider serializableProvider * @param mixed $value * @param mixed $expected */ public function serializeSerializesValue($value, $expected) { $serializer = new JsonSerializer(); $serialized = $serializer->serialize($value); self::assertEquals($expected, $serialized); }
/** * @test */ public function serializationTest() { $input = NULL; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = 'A string'; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = 'This is some unicode äü ♞ <= do you see the horse?'; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = 0.999009; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = -0.999009; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = 5; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = PHP_INT_MAX; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = 0; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = -100; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = TRUE; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = FALSE; $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = array(); $this->assertSame($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = new \stdClass(); $input->firstName = 'Daniel'; $input->lastName = 'Corn'; $this->assertEquals(get_object_vars($input), $this->fixture->unserialize($this->fixture->serialize($input))); $input = array(1 => 'A', 2 => 'B', 3 => 'C'); $this->assertEquals($input, $this->fixture->unserialize($this->fixture->serialize($input))); $input = range('A', 9); $input = array_rand($input, count($input)); $this->assertEquals($input, $this->fixture->unserialize($this->fixture->serialize($input))); }
$lastEvenYear = date('Y') % 2 === 0 ? date('Y') : date('Y') - 1; $lastEvenYearTimestamp = mktime(0, 0, 0, 1, 1, $lastEvenYear); $startHoursElapsedSinceLastEvenYear = floor((strtotime($startTime) - $lastEvenYearTimestamp) / 3600); $endHoursElapsedSinceLastEvenYear = floor((strtotime($endTime) - $lastEvenYearTimestamp) / 3600); $dbNames = DbUtil::getDbNames($appId); $response = array(); try { $sql = 'SELECT country.country_id as id, country.code as country_code, country.name AS country_label, city.name AS city_label, SUM(city_summary.page_views) AS pageViews, ROUND(SUM(city_summary.avg_load_time*city_summary.page_views)/SUM(city_summary.page_views), 2) AS loadTime FROM ' . $dbNames['summary'] . '.city_summary, newmonk_common.country, newmonk_common.city WHERE hours_elapsed_since_last_even_year >= :start_hours_elapsed_since_last_even_year AND hours_elapsed_since_last_even_year <= :end_hours_elapsed_since_last_even_year AND page_id = :page_id AND country.country_id = :country_id AND city_summary.city_id = city.city_id AND city.country_id = country.country_id GROUP BY city.city_id'; $st = $db->prepare($sql); $st->bindValue(':start_hours_elapsed_since_last_even_year', $startHoursElapsedSinceLastEvenYear, PDO::PARAM_INT); $st->bindValue(':end_hours_elapsed_since_last_even_year', $endHoursElapsedSinceLastEvenYear, PDO::PARAM_INT); $st->bindValue(':page_id', $urlId, PDO::PARAM_INT); $st->bindValue(':country_id', $countryId, PDO::PARAM_INT); $st->execute(); $response = $st->fetchAll(PDO::FETCH_ASSOC); $st->closeCursor(); } catch (Exception $e) { die('Error: ' . $e->getMessage() . "<br />\n"); } $jsonSerializer = new JsonSerializer(); header("Content-Type: text/javascript"); echo 'var ' . $_REQUEST['responseVarName'] . ' = ' . $jsonSerializer->serialize($response);