public function testCreatePost()
 {
     $model = new Post(['titleLang' => 'test for the create new post', 'description' => 'description for the create new post']);
     $this->assertTrue($model->save(false));
     $dataSet = $this->getConnection()->createDataSet(['post', 'post_lang']);
     $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/data/testCreatePost.xml');
     $this->assertDataSetsEqual($expectedDataSet, $dataSet);
 }
 public function testCreatePostAddTagValuesAsArray()
 {
     $post = new Post(['title' => 'New post title', 'body' => 'New post body']);
     $post->addTagValues(['tag 4', 'tag  4', 'tag 5', '', 'tag 6']);
     $this->assertTrue($post->save());
     $dataSet = $this->getConnection()->createDataSet(['post', 'tag', 'post_tag_assn']);
     $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/data/test-create-post-add-tag-values.xml');
     $this->assertDataSetsEqual($expectedDataSet, $dataSet);
 }
 public function testCreatePostSetTranslations()
 {
     $post = new Post();
     $data = ['title' => 'New post title', 'body' => 'New post body', 'title_en_us' => 'New post title en', 'body_en_us' => 'New post body en', 'title_ru' => 'New post title ru', 'body_ru' => 'New post body ru'];
     $formName = $post->formName();
     if (!empty($formName)) {
         $data = [$formName => $data];
     }
     $post->load($data);
     $this->assertTrue($post->save());
     $dataSet = $this->getConnection()->createDataSet(['post', 'postLang']);
     $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/data/test-create-post-set-translations-na.xml');
     $this->assertDataSetsEqual($expectedDataSet, $dataSet);
 }
 public function testCreatePost()
 {
     $post = new Post();
     $post->title = 'Incomplete post';
     $this->assertFalse($post->save());
     $post = new Post();
     $post->title = 'Post title 4';
     $post->body = 'Post body 4';
     $post->translate('de-DE')->title = 'Unvollständig post';
     $this->assertFalse($post->save());
     $post = new Post();
     $post->title = 'Post title 4';
     $post->body = 'Post body 4';
     $post->translate('de-DE')->title = 'Post titel 4';
     $post->translate('de-DE')->body = 'Post inhalt 4';
     $post->translate('ru-RU')->title = 'Заголовок поста 4';
     $post->translate('ru-RU')->body = 'Тело поста 4';
     $this->assertTrue($post->save());
     $dataSet = $this->getConnection()->createDataSet(['post', 'post_translation']);
     \PHPUnit_Extensions_Database_DataSet_FlatXmlDataSet::write($dataSet, __DIR__ . '/data/test-create-post.xml');
     $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/data/test-create-post.xml');
     $this->assertDataSetsEqual($expectedDataSet, $dataSet);
 }
 public function testCreatePostSetTagValuesAsArray()
 {
     $post = new Post();
     $post->attachBehavior('target-tags', ['class' => Target::className(), 'targetAttribute' => 'tagNames', 'beforeLink' => function ($tag) {
         /** @var Tag $tag */
         $tag->frequency++;
     }, 'afterUnlink' => function ($tag) {
         /** @var Tag $tag */
         $tag->frequency--;
         if ($tag->frequency == 0) {
             $tag->delete();
         } else {
             $tag->update(false);
         }
     }]);
     $post->title = 'New post title';
     $post->body = 'New post body';
     $post->tagNames = ['tag 4', 'tag 5', '', 'tag 6'];
     $this->assertTrue($post->save());
     $dataSet = $this->getConnection()->createDataSet(['post', 'tag', 'post_tag']);
     $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/data/test-create-post-set-tag-values.xml');
     $this->assertDataSetsEqual($expectedDataSet, $dataSet);
 }