From 742928f1c2db9dcff7ee4ef3edc7e264cf6a0d8b Mon Sep 17 00:00:00 2001 From: Robb Ebright Date: Tue, 8 Aug 2017 15:14:43 -0400 Subject: [PATCH 1/4] Added a test to block to test criteria for smartblock refactoring --- .../models/database/BlockDbTest.php | 70 +++++++++++++++++++ .../models/database/datasets/seed_files.yml | 47 +++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 airtime_mvc/tests/application/models/database/BlockDbTest.php create mode 100644 airtime_mvc/tests/application/models/database/datasets/seed_files.yml 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..f2ec203b9 --- /dev/null +++ b/airtime_mvc/tests/application/models/database/BlockDbTest.php @@ -0,0 +1,70 @@ +_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 + } + +} \ 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..ce2cba1f0 --- /dev/null +++ b/airtime_mvc/tests/application/models/database/datasets/seed_files.yml @@ -0,0 +1,47 @@ +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' + From 505871865ae3afac862026475c522768225282db Mon Sep 17 00:00:00 2001 From: Robb Ebright Date: Wed, 9 Aug 2017 13:16:23 -0400 Subject: [PATCH 2/4] adding cc_music_dir to fix dependency on cc_file --- .../models/database/datasets/seed_files.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/airtime_mvc/tests/application/models/database/datasets/seed_files.yml b/airtime_mvc/tests/application/models/database/datasets/seed_files.yml index ce2cba1f0..4a7ab4464 100644 --- a/airtime_mvc/tests/application/models/database/datasets/seed_files.yml +++ b/airtime_mvc/tests/application/models/database/datasets/seed_files.yml @@ -1,3 +1,13 @@ + +cc_music_dirs: + - + id: '1' + directory: '/tmp/libretime-test' + type: 'stor' + exists: 't' + watched: 't' + + cc_files: - id: '1' From 919c77d8f1b081f79a6f66c10ddf8bc6be8672f5 Mon Sep 17 00:00:00 2001 From: Robb Ebright Date: Wed, 9 Aug 2017 13:24:23 -0400 Subject: [PATCH 3/4] adding block model data --- .../application/testdata/BlockModelData.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 airtime_mvc/tests/application/testdata/BlockModelData.php diff --git a/airtime_mvc/tests/application/testdata/BlockModelData.php b/airtime_mvc/tests/application/testdata/BlockModelData.php new file mode 100644 index 000000000..f7dbf43d8 --- /dev/null +++ b/airtime_mvc/tests/application/testdata/BlockModelData.php @@ -0,0 +1,18 @@ + "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"), + ); + } +} \ No newline at end of file From 7b1d224c1a5d042f06c2ddeb1e807314624bd567 Mon Sep 17 00:00:00 2001 From: Robb Ebright Date: Wed, 16 Aug 2017 00:12:16 -0400 Subject: [PATCH 4/4] added another test to the block test block --- .../models/database/BlockDbTest.php | 25 ++++ .../models/database/datasets/seed_files.yml | 120 ++++++++++++++++++ .../application/testdata/BlockModelData.php | 31 +++++ 3 files changed, 176 insertions(+) diff --git a/airtime_mvc/tests/application/models/database/BlockDbTest.php b/airtime_mvc/tests/application/models/database/BlockDbTest.php index f2ec203b9..1df24c40d 100644 --- a/airtime_mvc/tests/application/models/database/BlockDbTest.php +++ b/airtime_mvc/tests/application/models/database/BlockDbTest.php @@ -67,4 +67,29 @@ class BlockDbTest extends Zend_Test_PHPUnit_DatabaseTestCase //PHPUnit_Framework // 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 index 4a7ab4464..c29094a97 100644 --- a/airtime_mvc/tests/application/models/database/datasets/seed_files.yml +++ b/airtime_mvc/tests/application/models/database/datasets/seed_files.yml @@ -55,3 +55,123 @@ cc_files: 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 index f7dbf43d8..5799a8912 100644 --- a/airtime_mvc/tests/application/testdata/BlockModelData.php +++ b/airtime_mvc/tests/application/testdata/BlockModelData.php @@ -15,4 +15,35 @@ Class BlockModelData 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