diff --git a/airtime_mvc/tests/application/models/database/BlockDbTest.php b/airtime_mvc/tests/application/models/database/BlockDbTest.php new file mode 100644 index 000000000..1df24c40d --- /dev/null +++ b/airtime_mvc/tests/application/models/database/BlockDbTest.php @@ -0,0 +1,95 @@ +_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; + } + + + /** + * Load a dataset into the database for the block database tests + * + * 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() + { + $dataset = new PHPUnit_Extensions_Database_DataSet_YamlDataSet(__DIR__ . '/datasets/seed_files.yml' ); + return $dataset; + } + + + /** + * Test if the single newest file is added to the Database + * + */ + + public function testGetListofFilesMeetCriteriaSingleMatch() { + TestHelper::loginUser(); + $CC_CONFIG = Config::getConfig(); + $testqry = CcFilesQuery::create(); + $testout = $testqry->find(); + $vd = $testout->getData(); + $ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet( + $this->getConnection() + ); + $testCriteria = BlockModelData::getCriteriaSingleNewestLabelNada(); + $bltest = new Application_Model_Block(); + $bltest->saveSmartBlockCriteria($testCriteria); + $tracks = $bltest->getListOfFilesUnderLimit(); + //$tracks = $bltest->getLength(); + $this->assertNotEmpty($tracks); + // need to load a example criteria into the database + } + + + /** + * Test if the single newest file is added to the Database + * + */ + + public function testMultiTrackandAlbumsGetLoaded() { + TestHelper::loginUser(); + $CC_CONFIG = Config::getConfig(); + $testqry = CcFilesQuery::create(); + $testout = $testqry->find(); + $vd = $testout->getData(); + $ds = new Zend_Test_PHPUnit_Db_DataSet_QueryDataSet( + $this->getConnection() + ); + $testCriteria = BlockModelData::getCriteriaMultiTrackAndAlbum1Hour(); + $bltest = new Application_Model_Block(); + $bltest->saveSmartBlockCriteria($testCriteria); + $tracks = $bltest->getListOfFilesUnderLimit(); + //$tracks = $bltest->getLength(); + $this->assertNotEmpty($tracks); + // add assertion that the length is less than 1 hour... + // need to load a example criteria into the database + } + +} \ No newline at end of file diff --git a/airtime_mvc/tests/application/models/database/datasets/seed_files.yml b/airtime_mvc/tests/application/models/database/datasets/seed_files.yml new file mode 100644 index 000000000..c29094a97 --- /dev/null +++ b/airtime_mvc/tests/application/models/database/datasets/seed_files.yml @@ -0,0 +1,177 @@ + +cc_music_dirs: + - + id: '1' + directory: '/tmp/libretime-test' + type: 'stor' + exists: 't' + watched: 't' + + +cc_files: + - + id: '1' + mime: 'audio/mp3' + ftype: 'audioclip' + directory: '1' + filepath: 'imported/1/oneminute.mp3' + mtime: '2017-08-06 04:27:36' + utime: '2017-08-06 04:26:47' + track_title: 'oneminute.mp3' + bit_rate: '320000' + sample_rate: '44100' + length: '00:01:00' + channels: '2' + genre: 'test' + label: 'nada' + owner_id: '1' + file_exists: 't' + hidden: 'f' + silan_check: 'f' + is_scheduled: 'f' + is_playlist: 'f' + filesize: '2586748' + + - + id: '2' + mime: 'audio/mp3' + ftype: 'audioclip' + directory: '1' + filepath: 'imported/1/fiveminute.mp3' + mtime: '2017-08-06 04:28:36' + utime: '2017-08-06 04:27:47' + track_title: 'fiveminute.mp3' + bit_rate: '320000' + sample_rate: '44100' + length: '00:05:00' + channels: '2' + genre: 'test' + label: 'nada' + owner_id: '1' + file_exists: 't' + hidden: 'f' + silan_check: 'f' + is_scheduled: 'f' + is_playlist: 'f' + filesize: '5126748' + + - + id: '3' + mime: 'audio/mp3' + ftype: 'audioclip' + directory: '1' + filepath: 'imported/1/track1.mp3' + mtime: '2017-08-06 04:28:36' + utime: '2017-08-06 04:27:47' + track_title: 'track1' + album_title: 'album1' + bit_rate: '320000' + sample_rate: '44100' + length: '00:01:30' + channels: '2' + genre: 'test' + label: 'nada' + owner_id: '1' + file_exists: 't' + hidden: 'f' + silan_check: 'f' + is_scheduled: 'f' + is_playlist: 'f' + filesize: '5126748' + + + id: '4' + mime: 'audio/mp3' + ftype: 'audioclip' + directory: '1' + filepath: 'imported/1/track2.mp3' + mtime: '2017-08-06 04:28:36' + utime: '2017-08-06 04:27:47' + track_title: 'track2' + album_title: 'album1' + bit_rate: '320000' + sample_rate: '44100' + length: '00:01:30' + channels: '2' + genre: 'test' + label: 'nada' + owner_id: '1' + file_exists: 't' + hidden: 'f' + silan_check: 'f' + is_scheduled: 'f' + is_playlist: 'f' + filesize: '5126748' + + id: '5' + mime: 'audio/mp3' + ftype: 'audioclip' + directory: '1' + filepath: 'imported/1/track3.mp3' + mtime: '2017-08-06 04:28:36' + utime: '2017-08-06 04:27:47' + track_title: 'track3' + album_title: 'album1' + bit_rate: '320000' + sample_rate: '44100' + length: '00:01:30' + channels: '2' + genre: 'test' + label: 'nada' + owner_id: '1' + file_exists: 't' + hidden: 'f' + silan_check: 'f' + is_scheduled: 'f' + is_playlist: 'f' + filesize: '5126748' + + + + id: '6' + mime: 'audio/mp3' + ftype: 'audioclip' + directory: '1' + filepath: 'imported/1/track1-2.mp3' + mtime: '2017-08-06 05:28:36' + utime: '2017-08-16 04:27:47' + track_title: 'track1' + album_title: 'album2' + bit_rate: '320000' + sample_rate: '44100' + length: '00:01:30' + channels: '2' + genre: 'test' + label: 'nada' + owner_id: '1' + file_exists: 't' + hidden: 'f' + silan_check: 'f' + is_scheduled: 'f' + is_playlist: 'f' + filesize: '5126748' + + + id: '7' + mime: 'audio/mp3' + ftype: 'audioclip' + directory: '1' + filepath: 'imported/1/track2-2.mp3' + mtime: '2017-08-06 04:28:36' + utime: '2017-08-06 04:27:47' + track_title: 'track2' + album_title: 'album2' + bit_rate: '320000' + sample_rate: '44100' + length: '00:01:30' + channels: '2' + genre: 'test' + label: 'nada' + owner_id: '1' + file_exists: 't' + hidden: 'f' + silan_check: 'f' + is_scheduled: 'f' + is_playlist: 'f' + filesize: '5126748' + diff --git a/airtime_mvc/tests/application/testdata/BlockModelData.php b/airtime_mvc/tests/application/testdata/BlockModelData.php new file mode 100644 index 000000000..5799a8912 --- /dev/null +++ b/airtime_mvc/tests/application/testdata/BlockModelData.php @@ -0,0 +1,49 @@ + "sp_type", "value" => 0), + Array("name" => "sp_type", "value" => 0), + Array("name" => "sp_repeat_tracks", "value" => 0), + Array("name" => "sp_sort_options", "value" => "newest"), + Array("name" => "sp_limit_value", "value" => 1), + Array("name" => "sp_limit_options", "value" => "items"), + Array("name" => "sp_criteria_field_0_0", "value" => "label"), + Array("name" => "sp_criteria_modifier_0_0", "value" => "contains"), + Array("name" => "sp_criteria_value_0_0", "value" => "nada"), + ); + } + + + public static function getCriteriaMultiTrackAndAlbum1Hour() + { + return array ( + Array("name" => "sp_type" , "value" => 1), + Array("name" => "sp_repeat_tracks", "value" => 0), + Array("name" => "sp_sort_options", "value" => "random"), + Array("name" => "sp_limit_value", "value" => 1), + Array("name" => "sp_limit_options", "value" => "hours"), + Array("name" => "sp_criteria_field_0_0", "value" => "album_title"), + Array("name" => "sp_criteria_modifier_0_0", "value" => "is"), + Array("name" => "sp_criteria_value_0_0", "value" => "album1"), + Array("name" => "sp_criteria_field_0_1", "value" => "album_title"), + Array("name" => "sp_criteria_modifier_0_1", "value" => "is"), + Array("name" => "sp_criteria_value_0_1", "value" => "album2"), + Array("name" => "sp_criteria_field_1_0", "value" => "track_title"), + Array("name" => "sp_criteria_modifier_1_0", "value" => "is"), + Array("name" => "sp_criteria_value_1_0", "value" => "track1"), + Array("name" => "sp_criteria_field_1_1", "value" => "track_title"), + Array("name" => "sp_criteria_modifier_1_1", "value" => "is"), + Array("name" => "sp_criteria_value_1_1", "value" => "track2"), + Array("name" => "sp_criteria_field_1_2", "value" => "track_title"), + Array("name" => "sp_criteria_modifier_1_2", "value" => "is"), + Array("name" => "sp_criteria_value_1_2", "value" => "track3"), + Array("name" => "sp_criteria_field_2_0", "value" => "length"), + Array("name" => "sp_criteria_modifier_2_0", "value" => "is greater than"), + Array("name" => "sp_criteria_value_2_0", "value" => "00:01:00"), + ); + + } +} \ No newline at end of file