From 8f5575cd55919da11388e54da8e833a3b994b449 Mon Sep 17 00:00:00 2001 From: Geoffrey Brier Date: Fri, 25 May 2012 16:44:14 +0200 Subject: [PATCH 1/7] Updated sentence and paragraph methods + Removed trailing spaces --- src/Faker/Provider/Lorem.php | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/Faker/Provider/Lorem.php b/src/Faker/Provider/Lorem.php index 4675719e..cdf729f4 100644 --- a/src/Faker/Provider/Lorem.php +++ b/src/Faker/Provider/Lorem.php @@ -15,7 +15,7 @@ class Lorem extends \Faker\Provider\Base { return static::randomElement(static::$wordList); } - + /** * Generate an array of random words * @@ -31,7 +31,7 @@ class Lorem extends \Faker\Provider\Base } return $words; } - + /** * Generate a random sentence * @@ -41,12 +41,17 @@ class Lorem extends \Faker\Provider\Base */ public static function sentence($nbWords = 6) { + if ($nbWords <= 0) { + return ''; + } else { + $nbWords = ($nbWords * mt_rand(60, 140) / 100) + 1; + } $words = static::words($nbWords + mt_rand(-2, 2)); $words[0] = ucwords($words[0]); - + return join($words, ' ') . '.'; } - + /** * Generate an array of sentences * @@ -62,7 +67,7 @@ class Lorem extends \Faker\Provider\Base } return $sentences; } - + /** * Generate a single paragraph * @@ -72,9 +77,14 @@ class Lorem extends \Faker\Provider\Base */ public static function paragraph($nbSentences = 3) { + if ($nbSentences <= 0) { + return ''; + } else { + $nbSentences = ($nbSentences * mt_rand(60, 140) / 100) + 1; + } return join(static::sentences($nbSentences + mt_rand(-1, 1)), ' '); } - + /** * Generate an array of paragraphs * From 3d5dc3549150a282ba474a8f446896d960739839 Mon Sep 17 00:00:00 2001 From: Geoffrey Brier Date: Fri, 25 May 2012 16:44:39 +0200 Subject: [PATCH 2/7] Added tests --- test/Faker/Provider/LoremTest.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/Faker/Provider/LoremTest.php b/test/Faker/Provider/LoremTest.php index b4c09750..8a90e0b6 100644 --- a/test/Faker/Provider/LoremTest.php +++ b/test/Faker/Provider/LoremTest.php @@ -15,6 +15,20 @@ class LoremTest extends \PHPUnit_Framework_TestCase $this->assertEquals($singleParagraph, $provider->text(51)); $this->assertEquals($singleParagraph . "\n" . $singleParagraph, $provider->text(52)); } + + public function testWithNegativeParam() + { + $this->assertEquals('', Lorem::sentence(-1)); + $this->assertEquals('', Lorem::paragraph(-1)); + $this->assertEquals('', Lorem::sentence(0)); + $this->assertEquals('', Lorem::paragraph(0)); + } + + public function testWithStrictlyPositiveParam() + { + $this->assertGreaterThan(1, strlen(Lorem::sentence(1))); + $this->assertGreaterThan(1, strlen(Lorem::paragraph(1))); + } } class TestableLorem extends Lorem From a4cedc870c06b22e1c5336be43729e3c42ede359 Mon Sep 17 00:00:00 2001 From: Geoffrey Brier Date: Fri, 25 May 2012 16:57:04 +0200 Subject: [PATCH 3/7] Fixed indentation --- src/Faker/Provider/Lorem.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Faker/Provider/Lorem.php b/src/Faker/Provider/Lorem.php index cdf729f4..ad78149f 100644 --- a/src/Faker/Provider/Lorem.php +++ b/src/Faker/Provider/Lorem.php @@ -41,11 +41,11 @@ class Lorem extends \Faker\Provider\Base */ public static function sentence($nbWords = 6) { - if ($nbWords <= 0) { - return ''; - } else { - $nbWords = ($nbWords * mt_rand(60, 140) / 100) + 1; - } + if ($nbWords <= 0) { + return ''; + } else { + $nbWords = ($nbWords * mt_rand(60, 140) / 100) + 1; + } $words = static::words($nbWords + mt_rand(-2, 2)); $words[0] = ucwords($words[0]); @@ -77,11 +77,11 @@ class Lorem extends \Faker\Provider\Base */ public static function paragraph($nbSentences = 3) { - if ($nbSentences <= 0) { - return ''; - } else { - $nbSentences = ($nbSentences * mt_rand(60, 140) / 100) + 1; - } + if ($nbSentences <= 0) { + return ''; + } else { + $nbSentences = ($nbSentences * mt_rand(60, 140) / 100) + 1; + } return join(static::sentences($nbSentences + mt_rand(-1, 1)), ' '); } From a3450aa96c4d954bff583322c3da3898358bbaf5 Mon Sep 17 00:00:00 2001 From: Geoffrey Brier Date: Fri, 25 May 2012 16:58:45 +0200 Subject: [PATCH 4/7] Fixed indentation (LoremTest) --- test/Faker/Provider/LoremTest.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/test/Faker/Provider/LoremTest.php b/test/Faker/Provider/LoremTest.php index 8a90e0b6..70ca58ad 100644 --- a/test/Faker/Provider/LoremTest.php +++ b/test/Faker/Provider/LoremTest.php @@ -16,19 +16,19 @@ class LoremTest extends \PHPUnit_Framework_TestCase $this->assertEquals($singleParagraph . "\n" . $singleParagraph, $provider->text(52)); } - public function testWithNegativeParam() - { - $this->assertEquals('', Lorem::sentence(-1)); - $this->assertEquals('', Lorem::paragraph(-1)); - $this->assertEquals('', Lorem::sentence(0)); - $this->assertEquals('', Lorem::paragraph(0)); - } + public function testWithNegativeParam() + { + $this->assertEquals('', Lorem::sentence(-1)); + $this->assertEquals('', Lorem::paragraph(-1)); + $this->assertEquals('', Lorem::sentence(0)); + $this->assertEquals('', Lorem::paragraph(0)); + } - public function testWithStrictlyPositiveParam() - { - $this->assertGreaterThan(1, strlen(Lorem::sentence(1))); - $this->assertGreaterThan(1, strlen(Lorem::paragraph(1))); - } + public function testWithStrictlyPositiveParam() + { + $this->assertGreaterThan(1, strlen(Lorem::sentence(1))); + $this->assertGreaterThan(1, strlen(Lorem::paragraph(1))); + } } class TestableLorem extends Lorem From 4ce21f98757ecf436754da9312bf61841939cb5a Mon Sep 17 00:00:00 2001 From: Geoffrey Brier Date: Thu, 31 May 2012 10:48:18 +0200 Subject: [PATCH 5/7] Removed double mt_rand call --- src/Faker/Provider/Lorem.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Faker/Provider/Lorem.php b/src/Faker/Provider/Lorem.php index ad78149f..48e312af 100644 --- a/src/Faker/Provider/Lorem.php +++ b/src/Faker/Provider/Lorem.php @@ -46,7 +46,7 @@ class Lorem extends \Faker\Provider\Base } else { $nbWords = ($nbWords * mt_rand(60, 140) / 100) + 1; } - $words = static::words($nbWords + mt_rand(-2, 2)); + $words = static::words($nbWords); $words[0] = ucwords($words[0]); return join($words, ' ') . '.'; @@ -82,7 +82,7 @@ class Lorem extends \Faker\Provider\Base } else { $nbSentences = ($nbSentences * mt_rand(60, 140) / 100) + 1; } - return join(static::sentences($nbSentences + mt_rand(-1, 1)), ' '); + return join(static::sentences($nbSentences), ' '); } /** From 5bab0bc1581f317c9e57bfceaa6279d807e8b492 Mon Sep 17 00:00:00 2001 From: Geoffrey Brier Date: Thu, 31 May 2012 10:50:32 +0200 Subject: [PATCH 6/7] Removed useless else statement --- src/Faker/Provider/Lorem.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Faker/Provider/Lorem.php b/src/Faker/Provider/Lorem.php index 48e312af..017f9042 100644 --- a/src/Faker/Provider/Lorem.php +++ b/src/Faker/Provider/Lorem.php @@ -43,9 +43,10 @@ class Lorem extends \Faker\Provider\Base { if ($nbWords <= 0) { return ''; - } else { - $nbWords = ($nbWords * mt_rand(60, 140) / 100) + 1; } + + $nbWords = ($nbWords * mt_rand(60, 140) / 100) + 1; + $words = static::words($nbWords); $words[0] = ucwords($words[0]); @@ -79,9 +80,10 @@ class Lorem extends \Faker\Provider\Base { if ($nbSentences <= 0) { return ''; - } else { - $nbSentences = ($nbSentences * mt_rand(60, 140) / 100) + 1; } + + $nbSentences = ($nbSentences * mt_rand(60, 140) / 100) + 1; + return join(static::sentences($nbSentences), ' '); } From e9a90aec0b96cfe2ed31090ca27c7e0f49a4cafa Mon Sep 17 00:00:00 2001 From: Geoffrey Brier Date: Thu, 31 May 2012 11:06:04 +0200 Subject: [PATCH 7/7] Improved unit tests --- test/Faker/Provider/LoremTest.php | 34 +++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/test/Faker/Provider/LoremTest.php b/test/Faker/Provider/LoremTest.php index 70ca58ad..285668b7 100644 --- a/test/Faker/Provider/LoremTest.php +++ b/test/Faker/Provider/LoremTest.php @@ -16,18 +16,40 @@ class LoremTest extends \PHPUnit_Framework_TestCase $this->assertEquals($singleParagraph . "\n" . $singleParagraph, $provider->text(52)); } - public function testWithNegativeParam() + public function testSentenceWithZeroNbWordsReturnsEmptyString() + { + $this->assertEquals('', Lorem::sentence(0)); + } + + public function testSentenceWithNegativeNbWordsReturnsEmptyString() { $this->assertEquals('', Lorem::sentence(-1)); - $this->assertEquals('', Lorem::paragraph(-1)); - $this->assertEquals('', Lorem::sentence(0)); + } + + public function testParagraphWithZeroNbSentencesReturnsEmptyString() + { $this->assertEquals('', Lorem::paragraph(0)); } - public function testWithStrictlyPositiveParam() + public function testParagraphWithNegativeNbSentencesReturnsEmptyString() { - $this->assertGreaterThan(1, strlen(Lorem::sentence(1))); - $this->assertGreaterThan(1, strlen(Lorem::paragraph(1))); + $this->assertEquals('', Lorem::paragraph(-1)); + } + + public function testSentenceWithPositiveNbWordsReturnsAtLeastOneWord() + { + $sentence = Lorem::sentence(1); + + $this->assertGreaterThan(1, strlen($sentence)); + $this->assertGreaterThanOrEqual(1, count(explode(' ', $sentence))); + } + + public function testParagraphWithPositiveNbSentencesReturnsAtLeastOneWord() + { + $paragraph = Lorem::paragraph(1); + + $this->assertGreaterThan(1, strlen($paragraph)); + $this->assertGreaterThanOrEqual(1, count(explode(' ', $paragraph))); } }