From 1e98b0cf7ec378904824dc3fb8315b8b54833b5b Mon Sep 17 00:00:00 2001 From: Daniel Carbone Date: Mon, 29 Sep 2014 17:02:28 -0500 Subject: [PATCH] Fixing some issues noticed in test cases. --- phpunit.xml.dist | 5 + src/UglyQueue.php | 10 +- src/UglyQueueManager.php | 4 +- tests/UglyQueue/UglyQueueTest.php | 291 +++--------------- .../UglyQueueManager/UglyQueueManagerTest.php | 47 +++ 5 files changed, 98 insertions(+), 259 deletions(-) create mode 100644 tests/UglyQueueManager/UglyQueueManagerTest.php diff --git a/phpunit.xml.dist b/phpunit.xml.dist index d314116..26d19ba 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -17,6 +17,11 @@ ./tests/misc + + ./tests/UglyQueueManager + ./tests/misc + + ./src diff --git a/src/UglyQueue.php b/src/UglyQueue.php index 46fef70..fd39aa3 100644 --- a/src/UglyQueue.php +++ b/src/UglyQueue.php @@ -51,7 +51,7 @@ class UglyQueue implements \Serializable, \SplSubject * @throws \InvalidArgumentException * @return UglyQueue */ - public static function queueWithGroupDirectoryPathAndObservers($directoryPath, array $observers = array()) + public static function queueWithDirectoryPathAndObservers($directoryPath, array $observers = array()) { if (!is_string($directoryPath)) throw new \InvalidArgumentException('Argument 1 expected to be string, '.gettype($directoryPath).' seen'); @@ -72,7 +72,7 @@ class UglyQueue implements \Serializable, \SplSubject $uglyQueue = new UglyQueue(); $uglyQueue->observers = $observers; - $split = preg_split('#[/\\]+/#', $directoryPath); + $split = preg_split('#[/\\\]+#', $directoryPath); $uglyQueue->_name = end($split); $uglyQueue->_path = rtrim(realpath(implode(DIRECTORY_SEPARATOR, $split)), "/\\").DIRECTORY_SEPARATOR; @@ -226,9 +226,9 @@ HTML; { $lock = json_decode(file_get_contents($this->_path.'queue.lock'), true); - // If we have an invalid lock structure, THIS IS BAD. + // If we have an invalid lock structure. if (!isset($lock['ttl']) || !isset($lock['born'])) - throw new \RuntimeException(get_class($this).'::isLocked - Invalid "queue.lock" file structure seen at "'.$this->_path.'queue.lock'.'"'); + throw new \RuntimeException('Invalid "queue.lock" file structure seen at "'.$this->_path.'queue.lock".'); // Otherwise... $lock_ttl = ((int)$lock['born'] + (int)$lock['ttl']); @@ -414,7 +414,7 @@ HTML; // Try to open the file for reading / writing. $queueFileHandle = fopen($this->_path.'queue.txt', 'r'); - while(($line = fscanf($queueFileHandle, "%s\t")) !== false) + while(($line = fscanf($queueFileHandle, "%s\t%s\n")) !== false) { list ($lineKey, $lineValue) = $line; diff --git a/src/UglyQueueManager.php b/src/UglyQueueManager.php index 83fa7c8..12939ab 100644 --- a/src/UglyQueueManager.php +++ b/src/UglyQueueManager.php @@ -76,7 +76,7 @@ class UglyQueueManager implements \SplObserver, \SplSubject if (file_exists($queueDir.DIRECTORY_SEPARATOR.self::UGLY_QUEUE_SERIALIZED_NAME)) $uglyQueue = unserialize(file_get_contents($queueDir.DIRECTORY_SEPARATOR.self::UGLY_QUEUE_SERIALIZED_NAME)); else - $uglyQueue = UglyQueue::queueWithGroupDirectoryPathAndObservers($queueDir, $manager->observers); + $uglyQueue = UglyQueue::queueWithDirectoryPathAndObservers($queueDir, $manager->observers); $manager->addQueue($uglyQueue); } @@ -109,7 +109,7 @@ class UglyQueueManager implements \SplObserver, \SplSubject */ public function addQueueAtPath($path) { - $uglyQueue = UglyQueue::queueWithGroupDirectoryPathAndObservers($path, $this->observers); + $uglyQueue = UglyQueue::queueWithDirectoryPathAndObservers($path, $this->observers); return $this->addQueue($uglyQueue); } diff --git a/tests/UglyQueue/UglyQueueTest.php b/tests/UglyQueue/UglyQueueTest.php index c12ee9b..7a001ca 100644 --- a/tests/UglyQueue/UglyQueueTest.php +++ b/tests/UglyQueue/UglyQueueTest.php @@ -27,17 +27,13 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase ); /** - * @covers \DCarbone\UglyQueue::__construct + * @covers \DCarbone\UglyQueue::queueWithDirectoryPathAndObservers * @uses \DCarbone\UglyQueue * @return \DCarbone\UglyQueue */ - public function testCanConstructUglyQueueWithValidParameter() + public function testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers() { - $conf = array( - 'queue-base-dir' => dirname(__DIR__).'/misc/', - ); - - $uglyQueue = new \DCarbone\UglyQueue($conf); + $uglyQueue = \DCarbone\UglyQueue::queueWithDirectoryPathAndObservers(dirname(__DIR__).'/misc/tasty-sandwich'); $this->assertInstanceOf('\\DCarbone\\UglyQueue', $uglyQueue); @@ -45,164 +41,19 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase } /** - * @covers \DCarbone\UglyQueue::__construct + * @covers \DCarbone\UglyQueue::queueWithDirectoryPathAndObservers * @uses \DCarbone\UglyQueue * @expectedException \InvalidArgumentException */ - public function testExceptionThrownWhenConstructingUglyQueueWithEmptyOrInvalidConf() + public function testExceptionThrownWhenInitializingUglyQueueWithEmptyOrInvalidConf() { - $conf = array(); - $uglyQueue = new \DCarbone\UglyQueue($conf); - } - - /** - * @covers \DCarbone\UglyQueue::__construct - * @uses \DCarbone\UglyQueue - * @expectedException \RuntimeException - */ - public function testExceptionThrownWhenConstructingUglyQueueWithInvalidQueueBaseDirPath() - { - $conf = array( - 'queue-base-dir' => 'sandwiches', - ); - - $uglyQueue = new \DCarbone\UglyQueue($conf); - } - - /** - * @covers \DCarbone\UglyQueue::getQueueBaseDir - * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testCanGetQueueBaseDir(\DCarbone\UglyQueue $uglyQueue) - { - $queueBaseDir = $uglyQueue->getQueueBaseDir(); - - $this->assertFileExists( - $queueBaseDir, - 'Could not verify that Queue Base Dir exists'); - } - - /** - * @covers \DCarbone\UglyQueue::getQueueGroup - * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testGetQueueGroupReturnsNullBeforeInitialization(\DCarbone\UglyQueue $uglyQueue) - { - $queueGroup = $uglyQueue->getQueueGroup(); - - $this->assertNull($queueGroup); - } - - /** - * @covers \DCarbone\UglyQueue::getInit - * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testGetInitReturnsFalseBeforeInitialization(\DCarbone\UglyQueue $uglyQueue) - { - $init = $uglyQueue->getInit(); - $this->assertFalse($init); - } - - /** - * @covers \DCarbone\UglyQueue::getQueueGroupDirPath - * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testGetQueueGroupDirPathReturnsNullBeforeInitialization(\DCarbone\UglyQueue $uglyQueue) - { - $queueGroupDir = $uglyQueue->getQueueGroupDirPath(); - - $this->assertNull($queueGroupDir); - } - - /** - * @covers \DCarbone\UglyQueue::isLocked - * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @expectedException \RuntimeException - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testExceptionThrownWhenCallingIsLockedOnUninitializedQueue(\DCarbone\UglyQueue $uglyQueue) - { - $isLocked = $uglyQueue->isLocked(); - } - - /** - * @covers \DCarbone\UglyQueue::addToQueue - * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @expectedException \RuntimeException - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testExceptionThrownWhenTryingToAddItemsToUninitializedQueue(\DCarbone\UglyQueue $uglyQueue) - { - $addToQueue = $uglyQueue->addToQueue('test', 'value'); - } - - /** - * @covers \DCarbone\UglyQueue::getQueueItemCount - * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @expectedException \RuntimeException - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testExceptionThrownWhenTryingToGetCountOfItemsInQueueBeforeInitialization(\DCarbone\UglyQueue $uglyQueue) - { - $itemCount = $uglyQueue->getQueueItemCount(); - } - - /** - * @covers \DCarbone\UglyQueue::keyExistsInQueue - * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @expectedException \RuntimeException - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testExceptionThrownWhenTryingToFindKeyBeforeInitialization(\DCarbone\UglyQueue $uglyQueue) - { - $keyExists = $uglyQueue->keyExistsInQueue(0); + $uglyQueue = \DCarbone\UglyQueue::queueWithDirectoryPathAndObservers(array()); } /** * @covers \DCarbone\UglyQueue::processQueue * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @expectedException \RuntimeException - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testExceptionThrownWhenTryingToProcessQueueBeforeInitialization(\DCarbone\UglyQueue $uglyQueue) - { - $process = $uglyQueue->processQueue(); - } - - /** - * @covers \DCarbone\UglyQueue::initialize - * @covers \DCarbone\UglyQueue::getInit - * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter - * @param \DCarbone\UglyQueue $uglyQueue - * @return \DCarbone\UglyQueue - */ - public function testCanInitializeNewUglyQueue(\DCarbone\UglyQueue $uglyQueue) - { - $uglyQueue->initialize('tasty-sandwich'); - - $this->assertTrue($uglyQueue->getInit()); - - return $uglyQueue; - } - - /** - * @covers \DCarbone\UglyQueue::processQueue - * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @expectedException \RuntimeException * @param \DCarbone\UglyQueue $uglyQueue */ @@ -214,7 +65,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase /** * @covers \DCarbone\UglyQueue::keyExistsInQueue * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @param \DCarbone\UglyQueue $uglyQueue */ public function testKeyExistsInQueueReturnsFalseWithEmptyQueueAfterInitialization(\DCarbone\UglyQueue $uglyQueue) @@ -227,60 +78,48 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase /** * @covers \DCarbone\UglyQueue::addToQueue * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @expectedException \RuntimeException * @param \DCarbone\UglyQueue $uglyQueue */ - public function testExceptionThrownWhenTryingToAddItemsToQueueWithoutLockAfterInitialization(\DCarbone\UglyQueue $uglyQueue) + public function testExceptionThrownWhenTryingToAddItemsToQueueWithoutLock(\DCarbone\UglyQueue $uglyQueue) { $addToQueue = $uglyQueue->addToQueue('test', 'value'); } /** - * @covers \DCarbone\UglyQueue::getInit + * @covers \DCarbone\UglyQueue::__get * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @param \DCarbone\UglyQueue $uglyQueue */ - public function testGetInitReturnsTrueAfterInitialization(\DCarbone\UglyQueue $uglyQueue) + public function testCanGetQueueDirectory(\DCarbone\UglyQueue $uglyQueue) { - $init = $uglyQueue->getInit(); - $this->assertTrue($init); + $queuePath = $uglyQueue->path; + + $this->assertFileExists($queuePath); } /** - * @covers \DCarbone\UglyQueue::getQueueGroupDirPath + * @covers \DCarbone\UglyQueue::__get * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @param \DCarbone\UglyQueue $uglyQueue */ - public function testCanGetQueueGroupDirectoryAfterInitialization(\DCarbone\UglyQueue $uglyQueue) + public function testCanGetQueueName(\DCarbone\UglyQueue $uglyQueue) { - $queueGroupDir = $uglyQueue->getQueueGroupDirPath(); + $queueName = $uglyQueue->name; - $this->assertFileExists($queueGroupDir); - } - - /** - * @covers \DCarbone\UglyQueue::getQueueGroup - * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testCanGetQueueGroupAfterInitialization(\DCarbone\UglyQueue $uglyQueue) - { - $queueGroup = $uglyQueue->getQueueGroup(); - - $this->assertEquals('tasty-sandwich', $queueGroup); + $this->assertEquals('tasty-sandwich', $queueName); } /** * @covers \DCarbone\UglyQueue::isLocked * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @param \DCarbone\UglyQueue $uglyQueue */ - public function testIsLockedReturnsFalseBeforeLockingAfterInitialization(\DCarbone\UglyQueue $uglyQueue) + public function testIsLockedReturnsFalseBeforeLocking(\DCarbone\UglyQueue $uglyQueue) { $isLocked = $uglyQueue->isLocked(); @@ -290,45 +129,33 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase /** * @covers \DCarbone\UglyQueue::getQueueItemCount * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @param \DCarbone\UglyQueue $uglyQueue */ - public function testGetQueueItemCountReturnsZeroAfterInitializingEmptyQueue(\DCarbone\UglyQueue $uglyQueue) + public function testGetQueueItemCountReturnsZeroWithEmptyQueue(\DCarbone\UglyQueue $uglyQueue) { $itemCount = $uglyQueue->getQueueItemCount(); $this->assertEquals(0, $itemCount); } /** - * @covers \DCarbone\UglyQueue::initialize - * @covers \DCarbone\UglyQueue::__construct - * @covers \DCarbone\UglyQueue::getInit + * @covers \DCarbone\UglyQueue::queueWithDirectoryPathAndObservers * @uses \DCarbone\UglyQueue * @return \DCarbone\UglyQueue */ public function testCanInitializeExistingQueue() { - $conf = array( - 'queue-base-dir' => dirname(__DIR__).'/misc/', - ); - - $uglyQueue = new \DCarbone\UglyQueue($conf); + $uglyQueue = \DCarbone\UglyQueue::queueWithDirectoryPathAndObservers(dirname(__DIR__).'/misc/tasty-sandwich'); $this->assertInstanceOf('\\DCarbone\\UglyQueue', $uglyQueue); - $this->assertFalse($uglyQueue->getInit()); - - $uglyQueue->initialize('tasty-sandwich'); - - $this->assertTrue($uglyQueue->getInit()); - return $uglyQueue; } /** * @covers \DCarbone\UglyQueue::lock * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @expectedException \InvalidArgumentException * @param \DCarbone\UglyQueue $uglyQueue */ @@ -340,7 +167,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase /** * @covers \DCarbone\UglyQueue::lock * @uses \DCarbone\UglyQueue - * @depends testCanConstructUglyQueueWithValidParameter + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @expectedException \InvalidArgumentException * @param \DCarbone\UglyQueue $uglyQueue */ @@ -352,9 +179,9 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase /** * @covers \DCarbone\UglyQueue::lock * @covers \DCarbone\UglyQueue::isLocked - * @covers \DCarbone\UglyQueue::createQueueLock + * @covers \DCarbone\UglyQueue::createLockFile * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue + * @depends testCanInitializeUglyQueueWithValidConfigArrayAndNoObservers * @param \DCarbone\UglyQueue $uglyQueue * @return \DCarbone\UglyQueue */ @@ -364,7 +191,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase $this->assertTrue($locked); - $queueDir = $uglyQueue->getQueueBaseDir().$uglyQueue->getQueueGroup().'/'; + $queueDir = $uglyQueue->path; $this->assertFileExists($queueDir.'queue.lock'); @@ -385,7 +212,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase * @depends testCanInitializeExistingQueue * @param \DCarbone\UglyQueue $uglyQueue */ - public function testCannotLockInitializedQueueThatIsAlreadyLocked(\DCarbone\UglyQueue $uglyQueue) + public function testCannotLockQueueThatIsAlreadyLocked(\DCarbone\UglyQueue $uglyQueue) { $lock = $uglyQueue->lock(); @@ -398,7 +225,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase * @depends testCanLockUglyQueueWithDefaultTTL * @param \DCarbone\UglyQueue $uglyQueue */ - public function testIsLockedReturnsTrueAfterLockingInitializedQueue(\DCarbone\UglyQueue $uglyQueue) + public function testIsLockedReturnsTrueAfterLocking(\DCarbone\UglyQueue $uglyQueue) { $isLocked = $uglyQueue->isLocked(); $this->assertTrue($isLocked); @@ -416,7 +243,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase { $uglyQueue->unlock(); - $queueGroupDir = $uglyQueue->getQueueGroupDirPath(); + $queueGroupDir = $uglyQueue->path; $this->assertFileNotExists($queueGroupDir.'queue.lock'); @@ -459,7 +286,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase /** * @covers \DCarbone\UglyQueue::lock * @covers \DCarbone\UglyQueue::isLocked - * @covers \DCarbone\UglyQueue::getQueueGroupDirPath + * @covers \DCarbone\UglyQueue::__get * @uses \DCarbone\UglyQueue * @depends testCanUnlockLockedQueue * @param \DCarbone\UglyQueue $uglyQueue @@ -471,7 +298,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase $this->assertTrue($locked); - $queueDir = $uglyQueue->getQueueGroupDirPath(); + $queueDir = $uglyQueue->path; $this->assertFileExists($queueDir.'queue.lock'); @@ -501,7 +328,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase $this->assertTrue($added); } - $groupDir = $uglyQueue->getQueueGroupDirPath(); + $groupDir = $uglyQueue->path; $this->assertFileExists( $groupDir.'queue.tmp', @@ -525,7 +352,7 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase { $uglyQueue->_populateQueue(); - $groupDir = $uglyQueue->getQueueGroupDirPath(); + $groupDir = $uglyQueue->path; $this->assertFileNotExists($groupDir.'queue.tmp'); @@ -630,44 +457,4 @@ class UglyQueueTest extends PHPUnit_Framework_TestCase return $uglyQueue; } - - /** - * @covers \DCarbone\UglyQueue::queueExists - * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testCanDetermineExistenceOfExistingQueue(\DCarbone\UglyQueue $uglyQueue) - { - $exists = $uglyQueue->queueExists('tasty-sandwich'); - - $this->assertTrue($exists); - } - - /** - * @covers \DCarbone\UglyQueue::queueExists - * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testCanDetermineExistenceOfNonExistingQueue(\DCarbone\UglyQueue $uglyQueue) - { - $exists = $uglyQueue->queueExists('nasty-sandwich'); - - $this->assertFalse($exists); - } - - /** - * @covers \DCarbone\UglyQueue::getInitializedQueueList - * @uses \DCarbone\UglyQueue - * @depends testCanInitializeNewUglyQueue - * @param \DCarbone\UglyQueue $uglyQueue - */ - public function testCanGetListOfInitializedQueues(\DCarbone\UglyQueue $uglyQueue) - { - $queueList = $uglyQueue->getInitializedQueueList(); - - $this->assertEquals(1, count($queueList)); - $this->assertContains('tasty-sandwich', $queueList); - } } \ No newline at end of file diff --git a/tests/UglyQueueManager/UglyQueueManagerTest.php b/tests/UglyQueueManager/UglyQueueManagerTest.php new file mode 100644 index 0000000..6ca65c6 --- /dev/null +++ b/tests/UglyQueueManager/UglyQueueManagerTest.php @@ -0,0 +1,47 @@ +queueExists('tasty-sandwich'); +// +// $this->assertTrue($exists); +// } +// +// /** +// * @covers \DCarbone\UglyQueue::queueExists +// * @uses \DCarbone\UglyQueue +// * @depends testCanInitializeNewUglyQueue +// * @param \DCarbone\UglyQueue $uglyQueue +// */ +// public function testCanDetermineExistenceOfNonExistingQueue(\DCarbone\UglyQueue $uglyQueue) +// { +// $exists = $uglyQueue->queueExists('nasty-sandwich'); +// +// $this->assertFalse($exists); +// } +// +// /** +// * @covers \DCarbone\UglyQueue::getInitializedQueueList +// * @uses \DCarbone\UglyQueue +// * @depends testCanInitializeNewUglyQueue +// * @param \DCarbone\UglyQueue $uglyQueue +// */ +// public function testCanGetListOfInitializedQueues(\DCarbone\UglyQueue $uglyQueue) +// { +// $queueList = $uglyQueue->getInitializedQueueList(); +// +// $this->assertEquals(1, count($queueList)); +// $this->assertContains('tasty-sandwich', $queueList); +// } +}