Advertisement
Ra1ski

Untitled

Oct 14th, 2014
490
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.27 KB | None | 0 0
  1. <?php
  2. namespace Tests\Unit\Traits;
  3.  
  4. use AspectMock\Test;
  5. use Tests\Unit\Base;
  6.  
  7. class SeoTest extends Base
  8. {
  9.     /**
  10.      *  Количество слов в keywords
  11.      * @var int
  12.      */
  13.     protected $keywordsCount = 10;
  14.  
  15.     /**
  16.      * Конструктор
  17.      */
  18.     protected function __before()
  19.     {
  20.         parent::_before();
  21.     }
  22.  
  23.     /**
  24.      * Это тестовые стоп-слова, от которых зависит тест "testGenerateKeywordsFromString"
  25.      *
  26.      * @return array
  27.      */
  28.     public function testStopWords()
  29.     {
  30.         $stopWords = [
  31.             'а', 'без', 'тебя', 'я', 'мне', 'даже', 'если', 'какой', 'кого', 'какая', 'ну', 'такой', 'как',
  32.         ];
  33.  
  34.         $this->assertNotEmpty($stopWords);
  35.  
  36.         return $stopWords;
  37.     }
  38.  
  39.     /**
  40.      * Генерирует ключевые слова из загатовленных строк и проверяет соответсвие с загатовленными keywords-ами
  41.      *
  42.      * @depends      testStopWords
  43.      * @dataProvider stringsToBeGenerated
  44.      */
  45.     public function testGenerateKeywordsFromString($string, $pattern, $stopWords)
  46.     {
  47.         // Объект для трейта
  48.         $object = $this->getObjectForTrait('Grumpy\\Traits\\Seo');
  49.  
  50.         // Мок для метода отдающего стоп-слова
  51.         test::double($object, ['getStopWords' => $stopWords]);
  52.  
  53.         // Генератор ключевых слов
  54.         $keywords = $object->generateKeywordsFromString($string);
  55.  
  56.         // Проверка ключевых слов на соответствие с заготовленными аналогами
  57.         $this->assertEquals($pattern, $keywords);
  58.  
  59.         // Проверка длинны ключевых слов
  60.         $this->assertLessThanOrEqual($this->keywordsCount, count(explode(',', $keywords)));
  61.     }
  62.  
  63.     /**
  64.      * Датапровайдер, который наполняет тест "testGenerateKeywordsFromString"
  65.      *
  66.      * @return array
  67.      */
  68.     public function stringsToBeGenerated()
  69.     {
  70.         return [
  71.             [
  72.                 'Коляска Chicco Lite Way слово-человек  — объявление №248. Маркет',
  73.                 'коляска, chicco, lite, way, слово-человек, объявление, №248, маркет'
  74.             ],
  75.             [
  76.                 'Домик Barbie Crystal Castle 20 pcs — объявление №82142',
  77.                 'домик, barbie, crystal, castle, pcs, объявление, №82142'
  78.             ],
  79.             [
  80.                 'Новые зимние пуховики  Crockid на девочек человек-паук: words объявление №127890',
  81.                 'новые, зимние, пуховики, crockid, девочек, человек-паук, words, объявление, №127890'
  82.             ],
  83.             [
  84.                 'А без тебя, я - такой одинокий, как цветок, какой цветок? Эдельвейс. Даже мне если ну!',
  85.                 'одинокий, цветок, эдельвейс'
  86.             ]
  87.         ];
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement