Merge branch 'unittests' into 2.5.x

This commit is contained in:
drigato 2014-01-31 15:02:41 -05:00
commit b7c79df6ec
55 changed files with 4438 additions and 309 deletions

View File

@ -18,8 +18,13 @@ class Config {
"rootDir" => __DIR__."/../.."
);
$filename = isset($_SERVER['AIRTIME_CONF']) ? $_SERVER['AIRTIME_CONF'] : "/etc/airtime/airtime.conf";
//In the unit testing environment, we always want to use our local airtime.conf in airtime_mvc/application/test:
if (getenv('AIRTIME_UNIT_TEST') == '1') {
$filename = "airtime.conf";
} else {
$filename = isset($_SERVER['AIRTIME_CONF']) ? $_SERVER['AIRTIME_CONF'] : "/etc/airtime/airtime.conf";
}
$values = parse_ini_file($filename, true);
// Name of the web server user

View File

@ -221,6 +221,7 @@ class Application_Model_Preference
*/
public static function SetShowsPopulatedUntil($dateTime)
{
$dateTime->setTimezone(new DateTimeZone("UTC"));
self::setValue("shows_populated_until", $dateTime->format("Y-m-d H:i:s"));
}

View File

@ -1418,7 +1418,7 @@ SQL;
* @param $ccShow
* @param $showData
*/
private function setCcShow($showData)
public function setCcShow($showData)
{
if (!$this->isUpdate) {
$ccShow = new CcShow();

View File

@ -1,6 +1,6 @@
#Note: project.home is automatically generated by the propel-install script.
#Any manual changes to this value will be overwritten.
project.home = /home/denise/airtime/airtime_mvc
project.home = /home/asantoni/airtime/airtime_mvc
project.build = ${project.home}/build
#Database driver

View File

@ -8,6 +8,12 @@
<dsn>pgsql:host=localhost;port=5432;dbname=airtime;user=airtime;password=airtime</dsn>
</connection>
</datasource>
<datasource id="airtime_test">
<adapter>pgsql</adapter> <!-- sqlite, mysql, myssql, oracle, or pgsql -->
<connection>
<dsn>pgsql:host=localhost;port=5432;dbname=airtime_test;user=airtime;password=airtime</dsn>
</connection>
</datasource>
</datasources>
</propel>
</config>

View File

@ -0,0 +1,42 @@
To get the Airtime unit tests running:
==========================
1) Install PHPUnit
We explicitly install PHPUnit 3.4 because that's as a new of a version
as is supported by Zend Framework 1:
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony.com
sudo pear channel-discover pear.symfony-project.com
sudo pear install channel://pear.symfony-project.com/YAML
sudo pear install pear.phpunit.de/PHPUnit-3.4.10
DO NOT INSTALL the DbUnit package!
DbUnit overwrites a file that's actually part of the PHPUnit package,
/usr/share/php/PHPUnit/Extensions/Database/DataSet/QueryTable.php
with a version that's incompatible and gives an error for us.
2) Running the unit tests:
1. To run all the unit tests, run:
$ sudo ./runtests.sh
(It has to be run as root to access the database for now.)
2. To run one specific test, you can do something like:
$ export AIRTIME_UNIT_TEST="1"
$ sudo -E phpunit --filter testEditReatingShowInstance application/services/database/ShowServiceDbTest.php
IMPORTANT: Make sure you use "sudo" with the "-E" flag so it preserves the environment variable we set before that.
FAQ
====
- If you get errors about an AMPQ fwrite failing, it means your RabbitMQ credentials are wrong in airtime.conf.
(That's the airtime.conf in this directory.)

View File

@ -0,0 +1,2 @@
TODO:
- Set up a RabbitMQ airtime_test user that is hardcoded

29
airtime_mvc/tests/airtime.conf Executable file
View File

@ -0,0 +1,29 @@
[database]
host = localhost
dbname = airtime_test
dbuser = airtime
dbpass = airtime
[rabbitmq]
host = 127.0.0.1
port = 5672
user = airtime_tests
password = airtime_tests
vhost = /airtime
[general]
api_key = H2NRICX6CM8F50CU123C
web_server_user = www-data
airtime_dir = /usr/share/airtime
base_url = localhost
base_port = 80
base_dir = /
cache_ahead_hours = 1
[monit]
monit_user = guest
monit_password = airtime
[soundcloud]
connection_retries = 3
time_between_retries = 60

View File

@ -0,0 +1,75 @@
<?php
error_reporting(E_ALL | E_STRICT);
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'testing'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath('./library'),
get_include_path(),
)));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
get_include_path(),
realpath(APPLICATION_PATH . '/../library')
)));
set_include_path(implode(PATH_SEPARATOR, array(
get_include_path(),
realpath(APPLICATION_PATH . '/../library/propel/runtime/lib')
)));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
get_include_path(),
realpath(APPLICATION_PATH . '/../../install_minimal/include')
)));
require_once (APPLICATION_PATH."/logging/Logging.php");
Logging::setLogPath('/var/log/airtime/zendphp.log');
set_include_path(APPLICATION_PATH . '/common' . PATH_SEPARATOR . get_include_path());
//Propel classes.
set_include_path(APPLICATION_PATH . '/models' . PATH_SEPARATOR . get_include_path());
//Services
set_include_path(APPLICATION_PATH . '/services' . PATH_SEPARATOR . get_include_path());
//models
set_include_path(APPLICATION_PATH . '/models' . PATH_SEPARATOR . get_include_path());
//Controller plugins.
set_include_path(APPLICATION_PATH . '/controllers/plugins' . PATH_SEPARATOR . get_include_path());
//test data
set_include_path(APPLICATION_PATH . '/../tests/application/testdata' . PATH_SEPARATOR . get_include_path());
//helper functions
set_include_path(APPLICATION_PATH . '/../tests/application/helpers' . PATH_SEPARATOR . get_include_path());
//Zend framework
if (file_exists('/usr/share/php/libzend-framework-php')) {
set_include_path('/usr/share/php/libzend-framework-php' . PATH_SEPARATOR . get_include_path());
}
require_once 'Zend/Application.php';
require_once 'Zend/Config.php';
//require_once 'helpers/TestHelper.php';
require_once APPLICATION_PATH.'/configs/conf.php';
require_once 'propel/runtime/lib/Propel.php';
Propel::init("../application/configs/airtime-conf-production.php");
#require_once 'DatabaseTestCase.php';
require_once 'Zend/Session.php';
Zend_Session::start();
//TestHelper::installTestDatabase();

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class ApiControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class DashboardControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class FormsControllerControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class LibraryControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class LoginControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class NowplayingControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class PlaylistControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class PluploadControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class PreferenceControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class RecorderControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class ScheduleControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class SearchControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class SidePlaylistControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class SideplaylistControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -1,20 +0,0 @@
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class UserControllerTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
/* Setup Routine */
}
public function tearDown()
{
/* Tear Down Routine */
}
}

View File

@ -0,0 +1,114 @@
<?php
require_once "AirtimeInstall.php";
class TestHelper
{
public static function loginUser()
{
$authAdapter = Application_Model_Auth::getAuthAdapter();
//pass to the adapter the submitted username and password
$authAdapter->setIdentity('admin')
->setCredential('admin');
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
if ($result->isValid()) {
//all info about this user from the login table omit only the password
$userInfo = $authAdapter->getResultRowObject(null, 'password');
//the default storage is a session with namespace Zend_Auth
$authStorage = $auth->getStorage();
$authStorage->write($userInfo);
}
}
public static function getDbZendConfig()
{
return new Zend_Config(
array(
'host' => '127.0.0.1',
'dbname' => 'airtime_test',
'username' => 'airtime',
'password' => 'airtime'
)
);
}
public static function installTestDatabase()
{
//We need to load the config before our app bootstrap runs. The config
//is normally
$CC_CONFIG = Config::getConfig();
$dbuser = $CC_CONFIG['dsn']['username'];
$dbpasswd = $CC_CONFIG['dsn']['password'];
$dbname = $CC_CONFIG['dsn']['database'];
$dbhost = $CC_CONFIG['dsn']['hostspec'];
$databaseAlreadyExists = AirtimeInstall::createDatabase();
if ($databaseAlreadyExists)
{
//Truncate all the tables
$con = Propel::getConnection();
$sql = "select * from pg_tables where tableowner = 'airtime'";
try {
$rows = $con->query($sql)->fetchAll();
} catch (Exception $e) {
$rows = array();
}
//Add any tables that shouldn't be cleared here.
// cc_subjs - Most of Airtime requires an admin account to work, which has id=1,
// so don't clear it.
$tablesToNotClear = array("cc_subjs");
$con->beginTransaction();
foreach ($rows as $row) {
$tablename = $row["tablename"];
if (in_array($tablename, $tablesToNotClear))
{
continue;
}
//echo " * Clearing database table $tablename...";
//TRUNCATE is actually slower than DELETE in many cases:
//http://stackoverflow.com/questions/11419536/postgresql-truncation-speed
//$sql = "TRUNCATE TABLE $tablename CASCADE";
$sql = "DELETE FROM $tablename";
AirtimeInstall::InstallQuery($sql, false);
}
$con->commit();
//Because we're DELETEing all the rows instead of using TRUNCATE (for speed),
//we have to reset the sequences so the auto-increment columns (like primary keys)
//all start at 1 again. This is hacky but it still lets all of this execute fast.
$sql = "SELECT c.relname FROM pg_class c WHERE c.relkind = 'S'";
try {
$rows = $con->query($sql)->fetchAll();
} catch (Exception $e) {
$rows = array();
}
$con->beginTransaction();
foreach ($rows as $row) {
$seqrelname= $row["relname"];
$sql = "ALTER SEQUENCE ${seqrelname} RESTART WITH 1";
AirtimeInstall::InstallQuery($sql, false);
}
$con->commit();
}
else
{
//Create all the database tables
AirtimeInstall::createDatabaseTables($dbuser, $dbpasswd, $dbname, $dbhost);
}
AirtimeInstall::SetDefaultTimezone();
}
public static function setupZendBootstrap()
{
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH .'/configs/application.ini');
$application->bootstrap();
return $application;
}
}

View File

@ -0,0 +1,142 @@
<?php
require_once "Zend/Test/PHPUnit/DatabaseTestCase.php";
require_once "ShowService.php";
require_once "../application/configs/conf.php";
require_once "TestHelper.php";
require_once "ShowServiceData.php";
class ScheduleDbTest extends Zend_Test_PHPUnit_DatabaseTestCase
{
private $_connectionMock;
public function setUp()
{
TestHelper::installTestDatabase();
$this->appBootstrap();
parent::setUp();
}
public function appBootstrap()
{
$this->application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH .'/configs/application.ini');
$this->application->bootstrap();
}
public function getConnection()
{
if ($this->_connectionMock == null) {
$config = TestHelper::getDbZendConfig();
$connection = Zend_Db::factory('pdo_pgsql', $config);
$this->_connectionMock = $this->createZendDbConnection(
$connection,
'airtimeunittests'
);
Zend_Db_Table_Abstract::setDefaultAdapter($connection);
}
return $this->_connectionMock;
}
/* Defines how the initial state of the database should look before each test is executed
* Called once during setUp() and gets recreated for each new test
*/
public function getDataSet()
{
return $this->createXmlDataSet(
dirname(__FILE__) . '/datasets/seed_schedule.xml'
);
}
public function testCheckOverlappingShows()
{
TestHelper::loginUser();
$data = ShowServiceData::getOverlappingShowCheckTestData();
$showService = new Application_Service_ShowService(null, $data);
/** Create shows to test against **/
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days order by id');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, modified_instance from cc_show_instances order by id');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
/** Make sure shows were created correctly **/
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_checkOverlappingShows.xml"),
$ds
);
$utcTimezone = new DateTimeZone("UTC");
/** Test that overlapping check works when creating a new show **/
$overlapping = Application_Model_Schedule::checkOverlappingShows(
new DateTime("2014-02-01 00:00:00", $utcTimezone),
new DateTime("2014-02-01 01:00:00", $utcTimezone)
);
$this->assertEquals($overlapping, false);
$overlapping = Application_Model_Schedule::checkOverlappingShows(
new DateTime("2014-01-05 00:00:00", $utcTimezone),
new DateTime("2014-01-05 02:00:00", $utcTimezone)
);
$this->assertEquals($overlapping, true);
$overlapping = Application_Model_Schedule::checkOverlappingShows(
new DateTime("2014-01-05 01:00:00", $utcTimezone),
new DateTime("2014-01-05 02:00:00", $utcTimezone)
);
$this->assertEquals($overlapping, false);
$overlapping = Application_Model_Schedule::checkOverlappingShows(
new DateTime("2014-01-31 00:30:00", $utcTimezone),
new DateTime("2014-01-31 01:30:00", $utcTimezone)
);
$this->assertEquals($overlapping, true);
$overlapping = Application_Model_Schedule::checkOverlappingShows(
new DateTime("2014-01-20 23:55:00", $utcTimezone),
new DateTime("2014-01-21 00:00:05", $utcTimezone)
);
$this->assertEquals($overlapping, true);
/** Test overlapping check works when editing an entire show **/
$overlapping = Application_Model_Schedule::checkOverlappingShows(
new DateTime("2014-01-05 00:00:00", $utcTimezone),
new DateTime("2014-01-05 02:00:00", $utcTimezone),
true,
null,
1
);
$this->assertEquals($overlapping, false);
/** Delete a repeating instance, create a new show in it's place and
* test if we can modify the repeating show after **/
$ccShowInstance = CcShowInstancesQuery::create()->findPk(1);
$ccShowInstance->setDbModifiedInstance(true)->save();
$newShowData = ShowServiceData::getNoRepeatNoRRData();
$newShowData["add_show_start_date"] = "2014-01-05";
$newShowData["add_show_end_date_no_repeat"] = "2014-01-05";
$newShowData["add_show_end_date"] = "2014-01-05";
$showService->addUpdateShow($newShowData);
$overlapping = Application_Model_Schedule::checkOverlappingShows(
new DateTime("2014-01-06 00:00:00", $utcTimezone),
new DateTime("2014-01-06 00:30:00", $utcTimezone),
true,
null,
1
);
$this->assertEquals($overlapping, false);
}
}

View File

@ -0,0 +1,21 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_pref">
<column>id</column>
<column>subjid</column>
<column>keystr</column>
<column>valstr</column>
<row>
<value>1</value>
<null />
<value>shows_populated_until</value>
<value>2014-02-01 00:00:00</value>
</row>
<row>
<value>2</value>
<null />
<value>timezone</value>
<value>UTC</value>
</row>
</table>
</dataset>

View File

@ -0,0 +1,341 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2014-01-05</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>0</value>
<value>0</value>
<value>2014-02-02</value>
<value>1</value>
<value>0</value>
</row>
<row>
<value>2</value>
<value>2014-01-06</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>1</value>
<value>0</value>
<value>2014-02-03</value>
<value>1</value>
<value>0</value>
</row>
<row>
<value>3</value>
<value>2014-01-07</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>2</value>
<value>0</value>
<value>2014-02-04</value>
<value>1</value>
<value>0</value>
</row>
<row>
<value>4</value>
<value>2014-01-08</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>3</value>
<value>0</value>
<value>2014-02-05</value>
<value>1</value>
<value>0</value>
</row>
<row>
<value>5</value>
<value>2014-01-09</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>4</value>
<value>0</value>
<value>2014-02-06</value>
<value>1</value>
<value>0</value>
</row>
<row>
<value>6</value>
<value>2014-01-10</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>0</value>
<value>2014-02-07</value>
<value>1</value>
<value>0</value>
</row>
<row>
<value>7</value>
<value>2014-01-11</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>6</value>
<value>0</value>
<value>2014-02-01</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2014-01-05 00:00:00</value>
<value>2014-01-05 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>2</value>
<value>2014-01-12 00:00:00</value>
<value>2014-01-12 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>3</value>
<value>2014-01-19 00:00:00</value>
<value>2014-01-19 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>4</value>
<value>2014-01-26 00:00:00</value>
<value>2014-01-26 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>5</value>
<value>2014-01-06 00:00:00</value>
<value>2014-01-06 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>6</value>
<value>2014-01-13 00:00:00</value>
<value>2014-01-13 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>7</value>
<value>2014-01-20 00:00:00</value>
<value>2014-01-20 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>8</value>
<value>2014-01-27 00:00:00</value>
<value>2014-01-27 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>9</value>
<value>2014-01-07 00:00:00</value>
<value>2014-01-07 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>10</value>
<value>2014-01-14 00:00:00</value>
<value>2014-01-14 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>11</value>
<value>2014-01-21 00:00:00</value>
<value>2014-01-21 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>12</value>
<value>2014-01-28 00:00:00</value>
<value>2014-01-28 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>13</value>
<value>2014-01-08 00:00:00</value>
<value>2014-01-08 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>14</value>
<value>2014-01-15 00:00:00</value>
<value>2014-01-15 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>15</value>
<value>2014-01-22 00:00:00</value>
<value>2014-01-22 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>16</value>
<value>2014-01-29 00:00:00</value>
<value>2014-01-29 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>17</value>
<value>2014-01-09 00:00:00</value>
<value>2014-01-09 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>18</value>
<value>2014-01-16 00:00:00</value>
<value>2014-01-16 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>19</value>
<value>2014-01-23 00:00:00</value>
<value>2014-01-23 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>20</value>
<value>2014-01-30 00:00:00</value>
<value>2014-01-30 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>21</value>
<value>2014-01-10 00:00:00</value>
<value>2014-01-10 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>22</value>
<value>2014-01-17 00:00:00</value>
<value>2014-01-17 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>23</value>
<value>2014-01-24 00:00:00</value>
<value>2014-01-24 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>24</value>
<value>2014-01-31 00:00:00</value>
<value>2014-01-31 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>25</value>
<value>2014-01-11 00:00:00</value>
<value>2014-01-11 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>26</value>
<value>2014-01-18 00:00:00</value>
<value>2014-01-18 01:00:00</value>
<value>1</value>
<value></value>
</row>
<row>
<value>27</value>
<value>2014-01-25 00:00:00</value>
<value>2014-01-25 01:00:00</value>
<value>1</value>
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,29 @@
<?php
require_once "../application/configs/conf.php";
require_once "TestHelper.php";
require_once "Preference.php";
class PreferenceUnitTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
TestHelper::installTestDatabase();
TestHelper::setupZendBootstrap();
}
public function testSetHeadTitle()
{
$title = "unit test";
Application_Model_Preference::SetHeadTitle($title);
//$this->assertEquals(Application_Model_Preference::GetHeadTitle(), $title);
}
public function testSetShowsPopulatedUntil()
{
$date = new DateTime();
Application_Model_Preference::SetShowsPopulatedUntil($date);
$this->assertEquals(Application_Model_Preference::GetShowsPopulatedUntil(), $date);
}
}

View File

@ -0,0 +1,11 @@
<?php
require_once "../application/configs/conf.php";
require_once "Schedule.php";
class ScheduleUnitTest extends PHPUnit_Framework_TestCase
{
public function testCheckOverlappingShows()
{
}
}

View File

@ -0,0 +1,545 @@
<?php
require_once "Zend/Test/PHPUnit/DatabaseTestCase.php";
require_once "ShowService.php";
require_once "../application/configs/conf.php";
require_once "ShowServiceData.php";
require_once "TestHelper.php";
#require_once "PHPUnit/Extensions/Database/DataSet/ReplacementDataSet.php";
/*
* All dates in the xml files are hard coded and in the year 2016
* It would have been nice to use 'PHPUnit/Extensions/Database/DataSet/ReplacementDataSet.php'
* to be able to use variables in the xml dataset files so dates can be relative. This proved
* not practical for Airtime; For repeating shows, the start times are always varying and would
* require functions that calculate the start and end dates, and the next populate date. The
* tests would be performing the same work as the application and require tests themselves.
*/
class ShowServiceDbTest extends Zend_Test_PHPUnit_DatabaseTestCase
{
private $_connectionMock;
//private $_nowDT;
public function setUp()
{
TestHelper::installTestDatabase();
TestHelper::setupZendBootstrap();
//$this->_nowDT = new DateTime("now", new DateTimeZone("UTC"));
parent::setUp();
}
public function getConnection()
{
if ($this->_connectionMock == null) {
$config = TestHelper::getDbZendConfig();
$connection = Zend_Db::factory('pdo_pgsql', $config);
$this->_connectionMock = $this->createZendDbConnection(
$connection,
'airtimeunittests'
);
Zend_Db_Table_Abstract::setDefaultAdapter($connection);
}
return $this->_connectionMock;
}
/* Defines how the initial state of the database should look before each test is executed
* Called once during setUp() and gets recreated for each new test
*/
public function getDataSet()
{
$xml_dataset = $this->createXmlDataSet(
dirname(__FILE__) . '/datasets/seed_show_service.xml'
);
/*$xml_dataset_fixed = new PHPUnit_Extensions_Database_DataSet_ReplacementDataSet(
$xml_dataset, array('SIX_WEEKS' => $this->_nowDT->add(new DateInterval("P42D"))->format("Y-m-d H:i:s")));
return $xml_dataset_fixed;*/
return $xml_dataset;
}
public function testCcShowInsertedIntoDatabase()
{
$showService = new Application_Service_ShowService();
$data = array(
"add_show_id" => -1,
"add_show_name" => "test show",
"add_show_description" => null,
"add_show_url" => null,
"add_show_genre" => null,
"add_show_color" => "ffffff",
"add_show_background_color" => "364492",
"cb_airtime_auth" => false,
"cb_custom_auth" => false,
"custom_username" => null,
"custom_password" => null,
"add_show_linked" => false
);
$showService->setCcShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_ccShowInsertedIntoDatabase.xml"),
$ds
);
}
/* Tests that a non-repeating, non-record, and non-rebroadcast show
* gets created properly
*/
public function testCreateNoRepeatNoRRShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getNoRepeatNoRRData();
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createNoRepeatNoRRShow.xml"),
$ds
);
}
/* Tests that a weekly repeating, non-record, non-rebroadcast show
* with no end date gets created correctly
*/
public function testCreateWeeklyRepeatNoEndNoRRShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createWeeklyRepeatNoEndNoRRShow.xml"),
$ds
);
}
public function testCreateBiWeeklyRepeatNoEndNoRRShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$data["add_show_repeat_type"] = "1";
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createBiWeeklyRepeatNoEndNoRRShow.xml"),
$ds
);
}
public function testCreateTriWeeklyRepeatNoEndNoRRShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$data["add_show_repeat_type"] = "4";
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createTriWeeklyRepeatNoEndNoRRShow.xml"),
$ds
);
}
public function testCreateQuadWeeklyRepeatNoEndNoRRShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$data["add_show_repeat_type"] = "5";
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createQuadWeeklyRepeatNoEndNoRRShow.xml"),
$ds
);
}
public function testCreateMonthlyMonthlyRepeatNoEndNoRRShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$data["add_show_repeat_type"] = "2";
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createMonthlyMonthlyRepeatNoEndNoRRShow.xml"),
$ds
);
}
public function testCreateMonthlyWeeklyRepeatNoEndNoRRShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$data["add_show_repeat_type"] = "3";
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createMonthlyWeeklyRepeatNoEndNoRRShow.xml"),
$ds
);
}
/* Tests that a show instance gets deleted from it's repeating sequence properly
*/
public function testDeleteShowInstance()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$service_show = new Application_Service_ShowService(null, $data);
$service_show->addUpdateShow($data);
$service_show->deleteShow(3, true);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances order by id');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_deleteShowInstance.xml"),
$ds
);
}
/* Tests that when a user selects 'Delete this instance and all following
* on the calendar the database gets updated correctly
*/
public function testDeleteShowInstanceAndAllFollowing()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$data["add_show_day_check"] = array(5,1,2);
$service_show = new Application_Service_ShowService(null, $data);
$service_show->addUpdateShow($data);
//delete some single instances first
$service_show->deleteShow(1, true);
$service_show->deleteShow(6, true);
$service_show->deleteShow(8, true);
//delete all instances including and after where id=4
$service_show->deleteShow(4);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days order by first_show');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances order by id');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_deleteShowInstanceAndAllFollowing.xml"),
$ds
);
}
public function testEditRepeatingShowInstance()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
//move the start date forward one week and the start time forward one hour
$editData = ShowServiceData::getEditRepeatInstanceData();
//need to create a new service so it gets constructed with the new data
$showService = new Application_Service_ShowService(null, $editData);
$showService->editRepeatingShowInstance($editData);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances order by id');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_editRepeatingShowInstance.xml"),
$ds
);
}
/* Tests the entire show gets deleted when the user selects 'Delete this
* instance and all following' from the context menu on the calendar
*/
public function testDeleteRepeatingShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$showService->deleteShow(1);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances order by id');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_deleteRepeatingShow.xml"),
$ds
);
}
public function testRepeatShowCreationWhenUserMovesForwardInCalendar()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$data["add_show_repeat_type"] = "1";
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
//simulate the user moves forward in the calendar
$end = new DateTime("2016-03-12", new DateTimeZone("UTC"));
$showService->delegateInstanceCreation(null, $end, true);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_repeatShowCreationWhenUserMovesForwardInCalendar.xml"),
$ds
);
}
public function testLinkedShow()
{
TestHelper::loginUser();
/** Test creating a linked show **/
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$data["add_show_linked"] = 1;
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createLinkedShow.xml"),
$ds
);
/** Test unlinking a show **/
$data["add_show_id"] = 1;
$data["add_show_linked"] = 0;
$showService = new Application_Service_ShowService(null, $data, true);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances order by id');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_unlinkLinkedShow.xml"),
$ds
);
}
/** Test the creation of a single record and rebroadcast(RR) show **/
public function testCreateNoRepeatRRShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getNoRepeatRRData();
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createNoRepeatRRShow.xml"),
$ds
);
}
/** Test the creation of a weekly repeating, record and rebroadcast(RR) show **/
public function testCreateWeeklyRepeatRRShow()
{
TestHelper::loginUser();
$data = ShowServiceData::getWeeklyRepeatRRData();
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_createWeeklyRepeatRRShow.xml"),
$ds
);
}
public function testEditRepeatingShowChangeNoEndOption()
{
TestHelper::loginUser();
/** Test changing the no end option on a weekly repeating show **/
$data = ShowServiceData::getWeeklyRepeatNoEndNoRRData();
$showService = new Application_Service_ShowService(null, $data);
$showService->addUpdateShow($data);
$data["add_show_end_date"] = '2016-01-09';
$data["add_show_no_end"] = 0;
$data["add_show_id"] = 1;
$showService = new Application_Service_ShowService(null, $data, true);
$showService->addUpdateShow($data);
$ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet(
$this->getConnection()
);
$ds->addTable('cc_show', 'select * from cc_show');
$ds->addTable('cc_show_days', 'select * from cc_show_days');
$ds->addTable('cc_show_instances', 'select id, starts, ends, show_id, record, rebroadcast, instance_id, modified_instance from cc_show_instances');
$ds->addTable('cc_show_rebroadcast', 'select * from cc_show_rebroadcast');
$ds->addTable('cc_show_hosts', 'select * from cc_show_hosts');
$this->assertDataSetsEqual(
$this->createXmlDataSet(dirname(__FILE__)."/datasets/test_editRepeatingShowChangeNoEndOption.xml"),
$ds
);
}
}

View File

@ -0,0 +1,21 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_pref">
<column>id</column>
<column>subjid</column>
<column>keystr</column>
<column>valstr</column>
<row>
<value>1</value>
<null />
<value>shows_populated_until</value>
<value>2016-02-07 00:00:00</value>
</row>
<row>
<value>2</value>
<null />
<value>timezone</value>
<value>UTC</value>
</row>
</table>
</dataset>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
</dataset>

View File

@ -0,0 +1,107 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>1</value>
<value>2016-02-12</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-15 00:00:00</value>
<value>2016-01-15 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>3</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value>1</value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>0</value>
<value>2016-02-12</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-08 00:00:00</value>
<value>2016-01-08 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>3</value>
<value>2016-01-15 00:00:00</value>
<value>2016-01-15 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>4</value>
<value>2016-01-22 00:00:00</value>
<value>2016-01-22 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>5</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>6</value>
<value>2016-02-05 00:00:00</value>
<value>2016-02-05 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,97 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<null />
<value>2</value>
<value>2016-03-01</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-02-01 00:00:00</value>
<value>2016-02-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,97 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>3</value>
<value>2016-03-04</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-02-05 00:00:00</value>
<value>2016-02-05 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>-1</value>
<value>2016-01-01</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,251 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>-1</value>
<value>2016-01-01</value>
<value>1</value>
<value>1</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>1</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-02 00:00:00</value>
<value>2016-01-02 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>3</value>
<value>2016-01-03 00:00:00</value>
<value>2016-01-03 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>4</value>
<value>2016-01-04 00:00:00</value>
<value>2016-01-04 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>5</value>
<value>2016-01-05 00:00:00</value>
<value>2016-01-05 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>6</value>
<value>2016-01-06 00:00:00</value>
<value>2016-01-06 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>7</value>
<value>2016-01-07 00:00:00</value>
<value>2016-01-07 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>8</value>
<value>2016-01-08 00:00:00</value>
<value>2016-01-08 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>9</value>
<value>2016-01-09 00:00:00</value>
<value>2016-01-09 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>10</value>
<value>2016-01-10 00:00:00</value>
<value>2016-01-10 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>11</value>
<value>2016-01-11 00:00:00</value>
<value>2016-01-11 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
<column>id</column>
<column>day_offset</column>
<column>start_time</column>
<column>show_id</column>
<row>
<value>1</value>
<value>1 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>2</value>
<value>2 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>3</value>
<value>3 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>4</value>
<value>4 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>5</value>
<value>5 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>6</value>
<value>6 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>7</value>
<value>7 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>8</value>
<value>8 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>9</value>
<value>9 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>10</value>
<value>10 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,97 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>5</value>
<value>2016-02-26</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,97 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>4</value>
<value>2016-02-12</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-22 00:00:00</value>
<value>2016-01-22 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>0</value>
<value>2016-02-12</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-08 00:00:00</value>
<value>2016-01-08 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>3</value>
<value>2016-01-15 00:00:00</value>
<value>2016-01-15 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>4</value>
<value>2016-01-22 00:00:00</value>
<value>2016-01-22 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>5</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>6</value>
<value>2016-02-05 00:00:00</value>
<value>2016-02-05 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,273 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>0</value>
<value>2016-02-12</value>
<value>1</value>
<value>1</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>1</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-02 00:00:00</value>
<value>2016-01-02 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>3</value>
<value>2016-01-03 12:00:00</value>
<value>2016-01-03 13:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>1</value>
<value></value>
</row>
<row>
<value>4</value>
<value>2016-01-08 00:00:00</value>
<value>2016-01-08 01:00:00</value>
<value>1</value>
<value>1</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>5</value>
<value>2016-01-09 00:00:00</value>
<value>2016-01-09 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>4</value>
<value></value>
</row>
<row>
<value>6</value>
<value>2016-01-10 12:00:00</value>
<value>2016-01-10 13:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>4</value>
<value></value>
</row>
<row>
<value>7</value>
<value>2016-01-15 00:00:00</value>
<value>2016-01-15 01:00:00</value>
<value>1</value>
<value>1</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>8</value>
<value>2016-01-16 00:00:00</value>
<value>2016-01-16 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>7</value>
<value></value>
</row>
<row>
<value>9</value>
<value>2016-01-17 12:00:00</value>
<value>2016-01-17 13:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>7</value>
<value></value>
</row>
<row>
<value>10</value>
<value>2016-01-22 00:00:00</value>
<value>2016-01-22 01:00:00</value>
<value>1</value>
<value>1</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>11</value>
<value>2016-01-23 00:00:00</value>
<value>2016-01-23 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>10</value>
<value></value>
</row>
<row>
<value>12</value>
<value>2016-01-24 12:00:00</value>
<value>2016-01-24 13:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>10</value>
<value></value>
</row>
<row>
<value>13</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>1</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>14</value>
<value>2016-01-30 00:00:00</value>
<value>2016-01-30 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>13</value>
<value></value>
</row>
<row>
<value>15</value>
<value>2016-01-31 12:00:00</value>
<value>2016-01-31 13:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>13</value>
<value></value>
</row>
<row>
<value>16</value>
<value>2016-02-05 00:00:00</value>
<value>2016-02-05 01:00:00</value>
<value>1</value>
<value>1</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>17</value>
<value>2016-02-06 00:00:00</value>
<value>2016-02-06 01:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>16</value>
<value></value>
</row>
<row>
<value>18</value>
<value>2016-02-07 12:00:00</value>
<value>2016-02-07 13:00:00</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>16</value>
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
<column>id</column>
<column>day_offset</column>
<column>start_time</column>
<column>show_id</column>
<row>
<value>1</value>
<value>1 days</value>
<value>00:00:00</value>
<value>1</value>
</row>
<row>
<value>2</value>
<value>2 days</value>
<value>12:00:00</value>
<value>1</value>
</row>
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
</table>
<table name="cc_show_days">
</table>
<table name="cc_show_instances">
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>0</value>
<value>2016-02-12</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-08 00:00:00</value>
<value>2016-01-08 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>3</value>
<value>2016-01-15 00:00:00</value>
<value>2016-01-15 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>4</value>
<value>2016-01-22 00:00:00</value>
<value>2016-01-22 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>5</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>6</value>
<value>2016-02-05 00:00:00</value>
<value>2016-02-05 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,263 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<value>2016-01-16</value>
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>0</value>
<value>2016-02-12</value>
<value>1</value>
<value>0</value>
</row>
<row>
<value>2</value>
<value>2016-01-04</value>
<value>2016-01-19</value>
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>1</value>
<value>0</value>
<value>2016-02-08</value>
<value>1</value>
<value>0</value>
</row>
<row>
<value>3</value>
<value>2016-01-05</value>
<value>2016-01-20</value>
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>2</value>
<value>0</value>
<value>2016-02-09</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>2</value>
<value>2016-01-08 00:00:00</value>
<value>2016-01-08 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>3</value>
<value>2016-01-15 00:00:00</value>
<value>2016-01-15 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>4</value>
<value>2016-01-22 00:00:00</value>
<value>2016-01-22 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>5</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>6</value>
<value>2016-02-05 00:00:00</value>
<value>2016-02-05 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>7</value>
<value>2016-01-04 00:00:00</value>
<value>2016-01-04 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>8</value>
<value>2016-01-11 00:00:00</value>
<value>2016-01-11 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>9</value>
<value>2016-01-18 00:00:00</value>
<value>2016-01-18 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>10</value>
<value>2016-01-25 00:00:00</value>
<value>2016-01-25 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>11</value>
<value>2016-02-01 00:00:00</value>
<value>2016-02-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>12</value>
<value>2016-01-05 00:00:00</value>
<value>2016-01-05 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>13</value>
<value>2016-01-12 00:00:00</value>
<value>2016-01-12 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>14</value>
<value>2016-01-19 00:00:00</value>
<value>2016-01-19 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>15</value>
<value>2016-01-26 00:00:00</value>
<value>2016-01-26 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>16</value>
<value>2016-02-02 00:00:00</value>
<value>2016-02-02 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,97 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<value>2016-01-10</value>
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>0</value>
<value>2016-01-15</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-08 00:00:00</value>
<value>2016-01-08 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,160 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>0</value>
<value>2016-02-12</value>
<value>1</value>
<value>0</value>
</row>
<row>
<value>2</value>
<value>2016-01-08</value>
<value>2016-01-09</value>
<value>01:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>-1</value>
<value>2016-01-08</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-08 00:00:00</value>
<value>2016-01-08 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value>1</value>
</row>
<row>
<value>3</value>
<value>2016-01-15 00:00:00</value>
<value>2016-01-15 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>4</value>
<value>2016-01-22 00:00:00</value>
<value>2016-01-22 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>5</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>6</value>
<value>2016-02-05 00:00:00</value>
<value>2016-02-05 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>7</value>
<value>2016-01-08 01:00:00</value>
<value>2016-01-08 02:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value>1</value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>1</value>
<value>2016-03-25</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-15 00:00:00</value>
<value>2016-01-15 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>3</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>4</value>
<value>2016-02-12 00:00:00</value>
<value>2016-02-12 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>5</value>
<value>2016-02-26 00:00:00</value>
<value>2016-02-26 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>6</value>
<value>2016-03-11 00:00:00</value>
<value>2016-03-11 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" ?>
<dataset>
<table name="cc_show">
<column>id</column>
<column>name</column>
<column>url</column>
<column>genre</column>
<column>description</column>
<column>color</column>
<column>background_color</column>
<column>live_stream_using_airtime_auth</column>
<column>live_stream_using_custom_auth</column>
<column>live_stream_user</column>
<column>live_stream_pass</column>
<column>linked</column>
<column>is_linkable</column>
<row>
<value>1</value>
<value>test show</value>
<null />
<null />
<null />
<value>ffffff</value>
<value>364492</value>
<value></value>
<value></value>
<null />
<null />
<value></value>
<value></value>
</row>
</table>
<table name="cc_show_days">
<column>id</column>
<column>first_show</column>
<column>last_show</column>
<column>start_time</column>
<column>timezone</column>
<column>duration</column>
<column>day</column>
<column>repeat_type</column>
<column>next_pop_date</column>
<column>show_id</column>
<column>record</column>
<row>
<value>1</value>
<value>2016-01-01</value>
<null />
<value>00:00:00</value>
<value>UTC</value>
<value>01:00</value>
<value>5</value>
<value>0</value>
<value>2016-02-12</value>
<value>1</value>
<value>0</value>
</row>
</table>
<table name="cc_show_instances">
<column>id</column>
<column>starts</column>
<column>ends</column>
<column>show_id</column>
<column>record</column>
<column>rebroadcast</column>
<column>instance_id</column>
<column>modified_instance</column>
<row>
<value>1</value>
<value>2016-01-01 00:00:00</value>
<value>2016-01-01 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>2</value>
<value>2016-01-08 00:00:00</value>
<value>2016-01-08 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>3</value>
<value>2016-01-15 00:00:00</value>
<value>2016-01-15 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>4</value>
<value>2016-01-22 00:00:00</value>
<value>2016-01-22 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>5</value>
<value>2016-01-29 00:00:00</value>
<value>2016-01-29 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
<row>
<value>6</value>
<value>2016-02-05 00:00:00</value>
<value>2016-02-05 01:00:00</value>
<value>1</value>
<value>0</value>
<value>0</value>
<null />
<value></value>
</row>
</table>
<table name="cc_show_rebroadcast">
</table>
<table name="cc_show_hosts">
</table>
</dataset>

View File

@ -0,0 +1,141 @@
<?php
require_once "../application/configs/conf.php";
require_once "ShowService.php";
require_once "ShowServiceData.php";
class ShowServiceUnitTest extends PHPUnit_Framework_TestCase
{
// needed for accessing private methods
protected $_reflectionOfShowService;
protected $_showService;
public function setUp()
{
$this->_reflectionOfShowService = new ReflectionClass('Application_Service_ShowService');
$this->_showService = new Application_Service_ShowService();
}
public function testFormatShowDuration()
{
$duration = Application_Service_ShowService::formatShowDuration("01h 00m");
$this->assertEquals("01:00", $duration);
$duration = Application_Service_ShowService::formatShowDuration("00h 05m");
$this->assertEquals("00:05", $duration);
$duration = Application_Service_ShowService::formatShowDuration("03h 55m");
$this->assertEquals("03:55", $duration);
}
public function testCalculateEndDate()
{
$method = $this->_reflectionOfShowService->getMethod('calculateEndDate');
$method->setAccessible(true);
$end = $method->invokeArgs($this->_showService, array(ShowServiceData::getNoRepeatNoRRData()));
$this->assertEquals(null, $end);
$end = $method->invokeArgs($this->_showService, array(ShowServiceData::getWeeklyRepeatWithEndNoRRData()));
$this->assertEquals(new DateTime("2016-01-27", new DateTimeZone("UTC")), $end);
$end = $method->invokeArgs($this->_showService, array(ShowServiceData::getWeeklyRepeatNoEndNoRRData()));
$this->assertEquals(null, $end);
}
public function testGetMonthlyWeeklyRepeatInterval()
{
$method = $this->_reflectionOfShowService->getMethod('getMonthlyWeeklyRepeatInterval');
$method->setAccessible(true);
$repeatInterval = $method->invokeArgs($this->_showService, array(new DateTime("2016-01-01"), new DateTimeZone("UTC")));
$this->assertEquals(array("first", "Friday"), $repeatInterval);
$repeatInterval = $method->invokeArgs($this->_showService, array(new DateTime("2016-01-12"), new DateTimeZone("UTC")));
$this->assertEquals(array("second", "Tuesday"), $repeatInterval);
$repeatInterval = $method->invokeArgs($this->_showService, array(new DateTime("2016-01-18"), new DateTimeZone("UTC")));
$this->assertEquals(array("third", "Monday"), $repeatInterval);
$repeatInterval = $method->invokeArgs($this->_showService, array(new DateTime("2016-01-28"), new DateTimeZone("UTC")));
$this->assertEquals(array("fourth", "Thursday"), $repeatInterval);
$repeatInterval = $method->invokeArgs($this->_showService, array(new DateTime("2016-01-30"), new DateTimeZone("UTC")));
$this->assertEquals(array("fifth", "Saturday"), $repeatInterval);
}
public function testGetNextMonthlyMonthlyRepeatDate()
{
$method = $this->_reflectionOfShowService->getMethod('getNextMonthlyMonthlyRepeatDate');
$method->setAccessible(true);
$next = $method->invokeArgs($this->_showService, array(new DateTime("2016-01-01"), "UTC", "00:00"));
$this->assertEquals(new DateTime("2016-02-01", new DateTimeZone("UTC")), $next);
$next = $method->invokeArgs($this->_showService, array(new DateTime("2016-01-30"), "UTC", "00:00"));
$this->assertEquals(new DateTime("2016-03-30", new DateTimeZone("UTC")), $next);
}
public function testGetNextMonthlyWeeklyRepeatDate()
{
$method = $this->_reflectionOfShowService->getMethod('getNextMonthlyWeeklyRepeatDate');
$method->setAccessible(true);
$next = $method->invokeArgs($this->_showService, array(
new DateTime("2016-02-01"), "UTC", "00:00", "first", "Friday"));
$this->assertEquals(new DateTime("2016-02-05", new DateTimeZone("UTC")), $next);
$next = $method->invokeArgs($this->_showService, array(
new DateTime("2016-02-01"), "UTC", "00:00", "fifth", "Saturday"));
$this->assertEquals(new DateTime("2016-04-30", new DateTimeZone("UTC")), $next);
$next = $method->invokeArgs($this->_showService, array(
new DateTime("2016-02-01"), "UTC", "00:00", "fourth", "Monday"));
$this->assertEquals(new DateTime("2016-02-22", new DateTimeZone("UTC")), $next);
}
public function testCreateUTCStartEndDateTime()
{
$method = $this->_reflectionOfShowService->getMethod('createUTCStartEndDateTime');
$method->setAccessible(true);
$utcTimezone = new DateTimeZone("UTC");
//America/Toronto
$localStartDT = new DateTime("2016-01-01 06:30", new DateTimeZone("America/Toronto"));
$localEndDT = new DateTime("2016-01-01 07:30", new DateTimeZone("America/Toronto"));
$dt = $method->invokeArgs($this->_showService, array($localStartDT, "01:00"));
$this->assertEquals(array(
$localStartDT->setTimezone($utcTimezone),$localEndDT->setTimezone($utcTimezone)), $dt);
//America/Toronto with offset for rebroadcast shows
$localStartDT = new DateTime("2016-01-01 06:30", new DateTimeZone("America/Toronto"));
$localEndDT = new DateTime("2016-01-01 07:30", new DateTimeZone("America/Toronto"));
$localRebroadcastStartDT = new DateTime("2016-01-02 06:30", new DateTimeZone("America/Toronto"));
$localRebroadcastEndDT = new DateTime("2016-01-02 07:30", new DateTimeZone("America/Toronto"));
$dt = $method->invokeArgs($this->_showService, array($localStartDT, "01:00",
array("days" => "1", "hours" => "06", "mins" => "30")));
$this->assertEquals(array(
$localRebroadcastStartDT->setTimezone($utcTimezone),$localRebroadcastEndDT->setTimezone($utcTimezone)), $dt);
//Australia/Brisbane
$localStartDT = new DateTime("2016-01-01 06:30", new DateTimeZone("Australia/Brisbane"));
$localEndDT = new DateTime("2016-01-01 07:30", new DateTimeZone("Australia/Brisbane"));
$dt = $method->invokeArgs($this->_showService, array($localStartDT, "01:00"));
$this->assertEquals(array(
$localStartDT->setTimezone($utcTimezone), $localEndDT->setTimezone($utcTimezone)), $dt);
//America/Vancouver
$localStartDT = new DateTime("2016-01-01 06:30", new DateTimeZone("America/Vancouver"));
$localEndDT = new DateTime("2016-01-01 07:30", new DateTimeZone("America/Vancouver"));
$dt = $method->invokeArgs($this->_showService, array($localStartDT, "01:00"));
$this->assertEquals(array(
$localStartDT->setTimezone($utcTimezone), $localEndDT->setTimezone($utcTimezone)), $dt);
}
}

View File

@ -0,0 +1,490 @@
<?php
Class ShowServiceData
{
public static function getNoRepeatNoRRData()
{
return array(
"add_show_id" => -1,
"add_show_instance_id" => -1,
"add_show_name" => "test show",
"add_show_url" => null,
"add_show_genre" => null,
"add_show_description" => null,
"add_show_start_date" => "2016-01-01",
"add_show_start_time" => "00:00",
"add_show_end_date_no_repeat" => "2016-01-01",
"add_show_end_time" => "01:00",
"add_show_duration" => "01h 00m",
"add_show_timezone" => "UTC",
"add_show_repeats" => 0,
"add_show_linked" => 0,
"add_show_repeat_type" => 0,
"add_show_monthly_repeat_type" => 2,
"add_show_end_date" => "2016-01-01",
"add_show_no_end" => 1,
"cb_airtime_auth" => 0,
"cb_custom_auth" => 0,
"custom_username" => null,
"custom_password" => null,
"add_show_record" => 0,
"add_show_rebroadcast" => 0,
"add_show_rebroadcast_date_absolute_1" => null,
"add_show_rebroadcast_time_absolute_1" => null,
"add_show_rebroadcast_date_absolute_2" => null,
"add_show_rebroadcast_time_absolute_2" => null,
"add_show_rebroadcast_date_absolute_3" => null,
"add_show_rebroadcast_time_absolute_3" => null,
"add_show_rebroadcast_date_absolute_4" => null,
"add_show_rebroadcast_time_absolute_4" => null,
"add_show_rebroadcast_date_absolute_5" => null,
"add_show_rebroadcast_time_absolute_5" => null,
"add_show_rebroadcast_date_absolute_6" => null,
"add_show_rebroadcast_time_absolute_6" => null,
"add_show_rebroadcast_date_absolute_7" => null,
"add_show_rebroadcast_time_absolute_7" => null,
"add_show_rebroadcast_date_absolute_8" => null,
"add_show_rebroadcast_time_absolute_8" => null,
"add_show_rebroadcast_date_absolute_9" => null,
"add_show_rebroadcast_time_absolute_9" => null,
"add_show_rebroadcast_date_absolute_10" => null,
"add_show_rebroadcast_time_absolute_10" => null,
"add_show_rebroadcast_date_1" => null,
"add_show_rebroadcast_time_1" => null,
"add_show_rebroadcast_date_2" => null,
"add_show_rebroadcast_time_2" => null,
"add_show_rebroadcast_date_3" => null,
"add_show_rebroadcast_time_3" => null,
"add_show_rebroadcast_date_4" => null,
"add_show_rebroadcast_time_4" => null,
"add_show_rebroadcast_date_5" => null,
"add_show_rebroadcast_time_5" => null,
"add_show_rebroadcast_date_6" => null,
"add_show_rebroadcast_time_6" => null,
"add_show_rebroadcast_date_7" => null,
"add_show_rebroadcast_time_7" => null,
"add_show_rebroadcast_date_8" => null,
"add_show_rebroadcast_time_8" => null,
"add_show_rebroadcast_date_9" => null,
"add_show_rebroadcast_time_9" => null,
"add_show_rebroadcast_date_10" => null,
"add_show_rebroadcast_time_10" => null,
"add_show_hosts_autocomplete" => null,
"add_show_background_color" => "364492",
"add_show_color" => "ffffff",
"add_show_hosts" => null,
"add_show_day_check" => null
);
}
public static function getWeeklyRepeatNoEndNoRRData()
{
return array(
"add_show_id" => -1,
"add_show_instance_id" => -1,
"add_show_name" => "test show",
"add_show_url" => null,
"add_show_genre" => null,
"add_show_description" => null,
"add_show_start_date" => "2016-01-01",
"add_show_start_time" => "00:00",
"add_show_end_date_no_repeat" => "2016-01-01",
"add_show_end_time" => "01:00",
"add_show_duration" => "01h 00m",
"add_show_timezone" => "UTC",
"add_show_repeats" => 1,
"add_show_linked" => 0,
"add_show_repeat_type" => 0,
"add_show_monthly_repeat_type" => 2,
"add_show_end_date" => "2016-01-01",
"add_show_no_end" => 1,
"cb_airtime_auth" => 0,
"cb_custom_auth" => 0,
"custom_username" => null,
"custom_password" => null,
"add_show_record" => 0,
"add_show_rebroadcast" => 0,
"add_show_rebroadcast_date_absolute_1" => null,
"add_show_rebroadcast_time_absolute_1" => null,
"add_show_rebroadcast_date_absolute_2" => null,
"add_show_rebroadcast_time_absolute_2" => null,
"add_show_rebroadcast_date_absolute_3" => null,
"add_show_rebroadcast_time_absolute_3" => null,
"add_show_rebroadcast_date_absolute_4" => null,
"add_show_rebroadcast_time_absolute_4" => null,
"add_show_rebroadcast_date_absolute_5" => null,
"add_show_rebroadcast_time_absolute_5" => null,
"add_show_rebroadcast_date_absolute_6" => null,
"add_show_rebroadcast_time_absolute_6" => null,
"add_show_rebroadcast_date_absolute_7" => null,
"add_show_rebroadcast_time_absolute_7" => null,
"add_show_rebroadcast_date_absolute_8" => null,
"add_show_rebroadcast_time_absolute_8" => null,
"add_show_rebroadcast_date_absolute_9" => null,
"add_show_rebroadcast_time_absolute_9" => null,
"add_show_rebroadcast_date_absolute_10" => null,
"add_show_rebroadcast_time_absolute_10" => null,
"add_show_rebroadcast_date_1" => null,
"add_show_rebroadcast_time_1" => null,
"add_show_rebroadcast_date_2" => null,
"add_show_rebroadcast_time_2" => null,
"add_show_rebroadcast_date_3" => null,
"add_show_rebroadcast_time_3" => null,
"add_show_rebroadcast_date_4" => null,
"add_show_rebroadcast_time_4" => null,
"add_show_rebroadcast_date_5" => null,
"add_show_rebroadcast_time_5" => null,
"add_show_rebroadcast_date_6" => null,
"add_show_rebroadcast_time_6" => null,
"add_show_rebroadcast_date_7" => null,
"add_show_rebroadcast_time_7" => null,
"add_show_rebroadcast_date_8" => null,
"add_show_rebroadcast_time_8" => null,
"add_show_rebroadcast_date_9" => null,
"add_show_rebroadcast_time_9" => null,
"add_show_rebroadcast_date_10" => null,
"add_show_rebroadcast_time_10" => null,
"add_show_hosts_autocomplete" => null,
"add_show_background_color" => "364492",
"add_show_color" => "ffffff",
"add_show_hosts" => null,
"add_show_day_check" => array(5)
);
}
public static function getWeeklyRepeatWithEndNoRRData()
{
return array(
"add_show_id" => -1,
"add_show_instance_id" => -1,
"add_show_name" => "test show",
"add_show_url" => null,
"add_show_genre" => null,
"add_show_description" => null,
"add_show_start_date" => "2016-01-01",
"add_show_start_time" => "00:00",
"add_show_end_date_no_repeat" => "2016-01-01",
"add_show_end_time" => "01:00",
"add_show_duration" => "01h 00m",
"add_show_timezone" => "UTC",
"add_show_repeats" => 1,
"add_show_linked" => 0,
"add_show_repeat_type" => 0,
"add_show_monthly_repeat_type" => 2,
"add_show_end_date" => "2016-01-26",
"add_show_no_end" => 0,
"cb_airtime_auth" => 0,
"cb_custom_auth" => 0,
"custom_username" => null,
"custom_password" => null,
"add_show_record" => 0,
"add_show_rebroadcast" => 0,
"add_show_rebroadcast_date_absolute_1" => null,
"add_show_rebroadcast_time_absolute_1" => null,
"add_show_rebroadcast_date_absolute_2" => null,
"add_show_rebroadcast_time_absolute_2" => null,
"add_show_rebroadcast_date_absolute_3" => null,
"add_show_rebroadcast_time_absolute_3" => null,
"add_show_rebroadcast_date_absolute_4" => null,
"add_show_rebroadcast_time_absolute_4" => null,
"add_show_rebroadcast_date_absolute_5" => null,
"add_show_rebroadcast_time_absolute_5" => null,
"add_show_rebroadcast_date_absolute_6" => null,
"add_show_rebroadcast_time_absolute_6" => null,
"add_show_rebroadcast_date_absolute_7" => null,
"add_show_rebroadcast_time_absolute_7" => null,
"add_show_rebroadcast_date_absolute_8" => null,
"add_show_rebroadcast_time_absolute_8" => null,
"add_show_rebroadcast_date_absolute_9" => null,
"add_show_rebroadcast_time_absolute_9" => null,
"add_show_rebroadcast_date_absolute_10" => null,
"add_show_rebroadcast_time_absolute_10" => null,
"add_show_rebroadcast_date_1" => null,
"add_show_rebroadcast_time_1" => null,
"add_show_rebroadcast_date_2" => null,
"add_show_rebroadcast_time_2" => null,
"add_show_rebroadcast_date_3" => null,
"add_show_rebroadcast_time_3" => null,
"add_show_rebroadcast_date_4" => null,
"add_show_rebroadcast_time_4" => null,
"add_show_rebroadcast_date_5" => null,
"add_show_rebroadcast_time_5" => null,
"add_show_rebroadcast_date_6" => null,
"add_show_rebroadcast_time_6" => null,
"add_show_rebroadcast_date_7" => null,
"add_show_rebroadcast_time_7" => null,
"add_show_rebroadcast_date_8" => null,
"add_show_rebroadcast_time_8" => null,
"add_show_rebroadcast_date_9" => null,
"add_show_rebroadcast_time_9" => null,
"add_show_rebroadcast_date_10" => null,
"add_show_rebroadcast_time_10" => null,
"add_show_hosts_autocomplete" => null,
"add_show_background_color" => "364492",
"add_show_color" => "ffffff",
"add_show_hosts" => null,
"add_show_day_check" => array(5)
);
}
public static function getWeeklyRepeatDays()
{
return array(1,2,3,4,5);
}
public static function getDailyRepeatDays()
{
return array(0,1,2,3,4,5,6);
}
public static function getEditRepeatInstanceData()
{
return array(
"add_show_id" => 1,
"add_show_instance_id" => 2,
"add_show_name" => "test show",
"add_show_url" => null,
"add_show_genre" => null,
"add_show_description" => null,
"add_show_start_date" => "2016-01-08",
"add_show_start_time" => "01:00",
"add_show_end_date_no_repeat" => "2016-01-08",
"add_show_end_time" => "02:00",
"add_show_duration" => "01h 00m",
"add_show_timezone" => "UTC",
"add_show_repeats" => 0,
"add_show_linked" => 0,
"add_show_no_end" => 0,
"cb_airtime_auth" => 0,
"cb_custom_auth" => 0,
"add_show_record" => 0,
"add_show_rebroadcast" => 0,
"add_show_hosts" => null
);
}
public static function getOverlappingShowCheckTestData()
{
return array(
"add_show_id" => -1,
"add_show_instance_id" => -1,
"add_show_name" => "test show",
"add_show_url" => null,
"add_show_genre" => null,
"add_show_description" => null,
"add_show_start_date" => "2014-01-05",
"add_show_start_time" => "00:00",
"add_show_end_date_no_repeat" => "2014-01-05",
"add_show_end_time" => "01:00",
"add_show_duration" => "01h 00m",
"add_show_timezone" => "UTC",
"add_show_repeats" => 1,
"add_show_linked" => 0,
"add_show_repeat_type" => 0,
"add_show_monthly_repeat_type" => 2,
"add_show_end_date" => "2014-01-05",
"add_show_no_end" => 1,
"cb_airtime_auth" => 0,
"cb_custom_auth" => 0,
"custom_username" => null,
"custom_password" => null,
"add_show_record" => 0,
"add_show_rebroadcast" => 0,
"add_show_rebroadcast_date_absolute_1" => null,
"add_show_rebroadcast_time_absolute_1" => null,
"add_show_rebroadcast_date_absolute_2" => null,
"add_show_rebroadcast_time_absolute_2" => null,
"add_show_rebroadcast_date_absolute_3" => null,
"add_show_rebroadcast_time_absolute_3" => null,
"add_show_rebroadcast_date_absolute_4" => null,
"add_show_rebroadcast_time_absolute_4" => null,
"add_show_rebroadcast_date_absolute_5" => null,
"add_show_rebroadcast_time_absolute_5" => null,
"add_show_rebroadcast_date_absolute_6" => null,
"add_show_rebroadcast_time_absolute_6" => null,
"add_show_rebroadcast_date_absolute_7" => null,
"add_show_rebroadcast_time_absolute_7" => null,
"add_show_rebroadcast_date_absolute_8" => null,
"add_show_rebroadcast_time_absolute_8" => null,
"add_show_rebroadcast_date_absolute_9" => null,
"add_show_rebroadcast_time_absolute_9" => null,
"add_show_rebroadcast_date_absolute_10" => null,
"add_show_rebroadcast_time_absolute_10" => null,
"add_show_rebroadcast_date_1" => null,
"add_show_rebroadcast_time_1" => null,
"add_show_rebroadcast_date_2" => null,
"add_show_rebroadcast_time_2" => null,
"add_show_rebroadcast_date_3" => null,
"add_show_rebroadcast_time_3" => null,
"add_show_rebroadcast_date_4" => null,
"add_show_rebroadcast_time_4" => null,
"add_show_rebroadcast_date_5" => null,
"add_show_rebroadcast_time_5" => null,
"add_show_rebroadcast_date_6" => null,
"add_show_rebroadcast_time_6" => null,
"add_show_rebroadcast_date_7" => null,
"add_show_rebroadcast_time_7" => null,
"add_show_rebroadcast_date_8" => null,
"add_show_rebroadcast_time_8" => null,
"add_show_rebroadcast_date_9" => null,
"add_show_rebroadcast_time_9" => null,
"add_show_rebroadcast_date_10" => null,
"add_show_rebroadcast_time_10" => null,
"add_show_hosts_autocomplete" => null,
"add_show_background_color" => "364492",
"add_show_color" => "ffffff",
"add_show_hosts" => null,
"add_show_day_check" => array(0,1,2,3,4,5,6)
);
}
/** Returns form data for a non-repeating, record and rebroadcast(RR) show **/
public static function getNoRepeatRRData()
{
return array(
"add_show_id" => -1,
"add_show_instance_id" => -1,
"add_show_name" => "test show",
"add_show_url" => null,
"add_show_genre" => null,
"add_show_description" => null,
"add_show_start_date" => "2016-01-01",
"add_show_start_time" => "00:00",
"add_show_end_date_no_repeat" => "2016-01-01",
"add_show_end_time" => "01:00",
"add_show_duration" => "01h 00m",
"add_show_timezone" => "UTC",
"add_show_repeats" => 0,
"add_show_linked" => 0,
"add_show_repeat_type" => 0,
"add_show_monthly_repeat_type" => 2,
"add_show_end_date" => "2016-01-01",
"add_show_no_end" => 1,
"cb_airtime_auth" => 0,
"cb_custom_auth" => 0,
"custom_username" => null,
"custom_password" => null,
"add_show_record" => 1,
"add_show_rebroadcast" => 1,
"add_show_rebroadcast_date_absolute_1" => "2016-01-02",
"add_show_rebroadcast_time_absolute_1" => "00:00",
"add_show_rebroadcast_date_absolute_2" => "2016-01-03",
"add_show_rebroadcast_time_absolute_2" => "00:00",
"add_show_rebroadcast_date_absolute_3" => "2016-01-04",
"add_show_rebroadcast_time_absolute_3" => "00:00",
"add_show_rebroadcast_date_absolute_4" => "2016-01-05",
"add_show_rebroadcast_time_absolute_4" => "00:00",
"add_show_rebroadcast_date_absolute_5" => "2016-01-06",
"add_show_rebroadcast_time_absolute_5" => "00:00",
"add_show_rebroadcast_date_absolute_6" => "2016-01-07",
"add_show_rebroadcast_time_absolute_6" => "00:00",
"add_show_rebroadcast_date_absolute_7" => "2016-01-08",
"add_show_rebroadcast_time_absolute_7" => "00:00",
"add_show_rebroadcast_date_absolute_8" => "2016-01-09",
"add_show_rebroadcast_time_absolute_8" => "00:00",
"add_show_rebroadcast_date_absolute_9" => "2016-01-10",
"add_show_rebroadcast_time_absolute_9" => "00:00",
"add_show_rebroadcast_date_absolute_10" => "2016-01-11",
"add_show_rebroadcast_time_absolute_10" => "00:00",
"add_show_rebroadcast_date_1" => null,
"add_show_rebroadcast_time_1" => null,
"add_show_rebroadcast_date_2" => null,
"add_show_rebroadcast_time_2" => null,
"add_show_rebroadcast_date_3" => null,
"add_show_rebroadcast_time_3" => null,
"add_show_rebroadcast_date_4" => null,
"add_show_rebroadcast_time_4" => null,
"add_show_rebroadcast_date_5" => null,
"add_show_rebroadcast_time_5" => null,
"add_show_rebroadcast_date_6" => null,
"add_show_rebroadcast_time_6" => null,
"add_show_rebroadcast_date_7" => null,
"add_show_rebroadcast_time_7" => null,
"add_show_rebroadcast_date_8" => null,
"add_show_rebroadcast_time_8" => null,
"add_show_rebroadcast_date_9" => null,
"add_show_rebroadcast_time_9" => null,
"add_show_rebroadcast_date_10" => null,
"add_show_rebroadcast_time_10" => null,
"add_show_hosts_autocomplete" => null,
"add_show_background_color" => "364492",
"add_show_color" => "ffffff",
"add_show_hosts" => null,
"add_show_day_check" => null
);
}
public static function getWeeklyRepeatRRData()
{
return array(
"add_show_id" => -1,
"add_show_instance_id" => -1,
"add_show_name" => "test show",
"add_show_url" => null,
"add_show_genre" => null,
"add_show_description" => null,
"add_show_start_date" => "2016-01-01",
"add_show_start_time" => "00:00",
"add_show_end_date_no_repeat" => "2016-01-01",
"add_show_end_time" => "01:00",
"add_show_duration" => "01h 00m",
"add_show_timezone" => "UTC",
"add_show_repeats" => 1,
"add_show_linked" => 0,
"add_show_repeat_type" => 0,
"add_show_monthly_repeat_type" => 2,
"add_show_end_date" => "2016-01-01",
"add_show_no_end" => 1,
"cb_airtime_auth" => 0,
"cb_custom_auth" => 0,
"custom_username" => null,
"custom_password" => null,
"add_show_record" => 1,
"add_show_rebroadcast" => 1,
"add_show_rebroadcast_date_absolute_1" => null,
"add_show_rebroadcast_time_absolute_1" => null,
"add_show_rebroadcast_date_absolute_2" => null,
"add_show_rebroadcast_time_absolute_2" => null,
"add_show_rebroadcast_date_absolute_3" => null,
"add_show_rebroadcast_time_absolute_3" => null,
"add_show_rebroadcast_date_absolute_4" => null,
"add_show_rebroadcast_time_absolute_4" => null,
"add_show_rebroadcast_date_absolute_5" => null,
"add_show_rebroadcast_time_absolute_5" => null,
"add_show_rebroadcast_date_absolute_6" => null,
"add_show_rebroadcast_time_absolute_6" => null,
"add_show_rebroadcast_date_absolute_7" => null,
"add_show_rebroadcast_time_absolute_7" => null,
"add_show_rebroadcast_date_absolute_8" => null,
"add_show_rebroadcast_time_absolute_8" => null,
"add_show_rebroadcast_date_absolute_9" => null,
"add_show_rebroadcast_time_absolute_9" => null,
"add_show_rebroadcast_date_absolute_10" => null,
"add_show_rebroadcast_time_absolute_10" => null,
"add_show_rebroadcast_date_1" => "1 days",
"add_show_rebroadcast_time_1" => "00:00",
"add_show_rebroadcast_date_2" => "2 days",
"add_show_rebroadcast_time_2" => "12:00",
"add_show_rebroadcast_date_3" => null,
"add_show_rebroadcast_time_3" => null,
"add_show_rebroadcast_date_4" => null,
"add_show_rebroadcast_time_4" => null,
"add_show_rebroadcast_date_5" => null,
"add_show_rebroadcast_time_5" => null,
"add_show_rebroadcast_date_6" => null,
"add_show_rebroadcast_time_6" => null,
"add_show_rebroadcast_date_7" => null,
"add_show_rebroadcast_time_7" => null,
"add_show_rebroadcast_date_8" => null,
"add_show_rebroadcast_time_8" => null,
"add_show_rebroadcast_date_9" => null,
"add_show_rebroadcast_time_9" => null,
"add_show_rebroadcast_date_10" => null,
"add_show_rebroadcast_time_10" => null,
"add_show_hosts_autocomplete" => null,
"add_show_background_color" => "364492",
"add_show_color" => "ffffff",
"add_show_hosts" => null,
"add_show_day_check" => array(5)
);
}
}

View File

@ -1,2 +1,23 @@
<phpunit bootstrap="./application/bootstrap.php" colors="true">
<testsuite name="My Application Tests">
<directory>./</directory>
</testsuite>
<filter>
<whitelist>
<directory suffix=".php">../application/</directory>
<exclude>
<directory suffix=".phtml">../application/</directory>
<file>../application/Bootstrap.php</file>
<file>../application/controllers/ErrorController.php</file>
</exclude>
</whitelist>
</filter>
<!-- b bs -->
<!-- Disabling broken code coverage report. It's not using our autoloader for some reason...
<logging>
<log type="coverage-html" target="./log/report" charset="UTF-8" yui="true" hightlight="true" lowupperbound="50" highlowerbound="80">
<log type="testdox" target="./log/testdox.html">
</log></log></logging>
-->
</phpunit>

28
airtime_mvc/tests/runtests.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
rabbitmqctl start_app
RABBITMQ_VHOST="/airtime"
RABBITMQ_USER="airtime_tests"
RABBITMQ_PASSWORD="airtime_tests"
EXCHANGES="airtime-pypo|pypo-fetch|airtime-media-monitor|media-monitor"
rabbitmqctl list_vhosts | grep $RABBITMQ_VHOST
RESULT="$?"
if [ $RESULT = "0" ]; then
rabbitmqctl delete_vhost $RABBITMQ_VHOST
rabbitmqctl delete_user $RABBITMQ_USER
fi
rabbitmqctl add_vhost $RABBITMQ_VHOST
rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASSWORD
rabbitmqctl set_permissions -p $RABBITMQ_VHOST $RABBITMQ_USER "$EXCHANGES" "$EXCHANGES" "$EXCHANGES"
export RABBITMQ_USER
export RABBITMQ_PASSWORD
export RABBITMQ_VHOST
export AIRTIME_UNIT_TEST="1"
phpunit --log-junit test_results.xml

View File

@ -117,7 +117,8 @@ class AirtimeInstall
{
AirtimeInstall::InstallQuery("DROP SEQUENCE IF EXISTS $p_sequenceName", false);
}
/**
* Try to connect to the database. Return true on success, false on failure.
* @param boolean $p_exitOnError
@ -210,17 +211,20 @@ class AirtimeInstall
{
$CC_CONFIG = Config::getConfig();
echo " * Creating Airtime database".PHP_EOL;
$database = $CC_CONFIG['dsn']['database'];
$username = $CC_CONFIG['dsn']['username'];
#$command = "echo \"CREATE DATABASE $database OWNER $username\" | su postgres -c psql 2>/dev/null";
$command = "su postgres -c \"psql -l | cut -f2 -d' ' | grep -w 'airtime'\";";
echo " * Creating Airtime database: " . $database . PHP_EOL;
putenv("LC_ALL=en_CA.UTF-8"); //Squash warnings when running unit tests
$command = "su postgres -c \"psql -l | cut -f2 -d' ' | grep -w '{$database}'\";";
exec($command, $output, $rv);
if ($rv == 0) {
//database already exists
echo "Database already exists." . PHP_EOL;
return true;
}