function testSerialize()
 {
     $ser = new JsonSerializer();
     $jsonString = $ser->serialize($this->model);
     $memModel = new MemModel();
     $memModel->loadFromString($jsonString, 'json');
     $this->assertTrue($this->model->equals($memModel));
 }
Exemple #2
0
 /**
  * @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);