1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
<?php
namespace Faker\Test\Provider;
use Faker\Provider\Lorem;
use Faker\Test\TestCase;
/**
* @group legacy
*/
final class LoremTest extends TestCase
{
public function testTextThrowsExceptionWhenAskedTextSizeLessThan5()
{
$this->expectException(\InvalidArgumentException::class);
Lorem::text(4);
}
public function testTextReturnsWordsWhenAskedSizeLessThan25()
{
self::assertEquals('Word word word word.', TestableLorem::text(24));
}
public function testTextReturnsSentencesWhenAskedSizeLessThan100()
{
self::assertEquals('This is a test sentence. This is a test sentence. This is a test sentence.', TestableLorem::text(99));
}
public function testTextReturnsParagraphsWhenAskedSizeGreaterOrEqualThanThan100()
{
self::assertEquals('This is a test paragraph. It has three sentences. Exactly three.', TestableLorem::text(100));
}
public function testSentenceWithZeroNbWordsReturnsEmptyString()
{
self::assertEquals('', Lorem::sentence(0));
}
public function testSentenceWithNegativeNbWordsReturnsEmptyString()
{
self::assertEquals('', Lorem::sentence(-1));
}
public function testParagraphWithZeroNbSentencesReturnsEmptyString()
{
self::assertEquals('', Lorem::paragraph(0));
}
public function testParagraphWithNegativeNbSentencesReturnsEmptyString()
{
self::assertEquals('', Lorem::paragraph(-1));
}
public function testSentenceWithPositiveNbWordsReturnsAtLeastOneWord()
{
$sentence = Lorem::sentence(1);
self::assertGreaterThan(1, strlen($sentence));
self::assertGreaterThanOrEqual(1, count(explode(' ', $sentence)));
}
public function testParagraphWithPositiveNbSentencesReturnsAtLeastOneWord()
{
$paragraph = Lorem::paragraph(1);
self::assertGreaterThan(1, strlen($paragraph));
self::assertGreaterThanOrEqual(1, count(explode(' ', $paragraph)));
}
public function testWordssAsText()
{
$words = TestableLorem::words(2, true);
self::assertEquals('word word', $words);
}
public function testSentencesAsText()
{
$sentences = TestableLorem::sentences(2, true);
self::assertEquals('This is a test sentence. This is a test sentence.', $sentences);
}
public function testParagraphsAsText()
{
$paragraphs = TestableLorem::paragraphs(2, true);
$expected = "This is a test paragraph. It has three sentences. Exactly three.\n\nThis is a test paragraph. It has three sentences. Exactly three.";
self::assertEquals($expected, $paragraphs);
}
}
/**
* @group legacy
*/
final class TestableLorem extends Lorem
{
public static function word()
{
return 'word';
}
public static function sentence($nbWords = 5, $variableNbWords = true)
{
return 'This is a test sentence.';
}
public static function paragraph($nbSentences = 3, $variableNbSentences = true)
{
return 'This is a test paragraph. It has three sentences. Exactly three.';
}
}
|