public function testSyncService()
 {
     Yii::$app->setComponents(['synchronizer' => ['class' => 'ufocoder\\SyncSocial\\components\\Synchronizer', 'modelClass' => 'tests\\models\\Record']]);
     $fakeSyncService = new SyncService(['serviceClass' => '\\tests\\models\\TestOAuth2', 'returnUrl' => 'http://my_own_site/returnUrl']);
     $mockSyncService = Mockery::mock($fakeSyncService);
     $mockSyncService->shouldReceive('isConnected')->andReturnUsing(function () {
         return true;
     });
     $mockSyncService->shouldReceive('publishPost')->andReturnUsing(function ($message, $url = null) {
         return ['service_id_author' => '2000', 'service_id_post' => '1000', 'service_language' => 'ru', 'time_created' => strtotime('Thu Oct 23 07:00:00 +0000 2014')];
     });
     $mockSyncService->shouldReceive('deletePost')->andReturnUsing(function ($id) {
         return true;
     });
     Yii::$app->synchronizer->setService('fakeService', $mockSyncService);
     $model = new Record();
     $model->attachBehavior('SyncSocialBehavior', ['class' => SynchronizerBehavior::className(), 'canSyncActiveRecord' => function ($model) {
         return false;
     }]);
     $model->syncServices = ['fakeService'];
     $model->save();
     $this->assertTrue(count($model->syncModel) === 1);
     $find = Record::findOne($model->getPrimaryKey());
     $this->assertTrue($model->getPrimaryKey() === $find->getPrimaryKey());
     $count = $model->delete();
     $this->assertTrue($count == 1);
 }
 public function testSyncCreateSyncModelException()
 {
     $model = new Record();
     $model->content = 'test';
     $model->save();
     $serviceName = 'fakeService';
     $synchronizer = new Synchronizer(['modelClass' => '\\tests\\models\\Record', 'modelScenario' => 'non_exists_scenario', 'absolutePostUrl' => function ($serviceName, $id) {
         return 'testurl';
     }]);
     $fakeSyncService = new SyncService(['serviceClass' => '\\tests\\models\\TestOAuth2', 'returnUrl' => 'http://my_own_site/returnUrl']);
     $mockSyncService = Mockery::mock($fakeSyncService);
     $mockSyncService->shouldReceive('isConnected')->andReturnUsing(function () {
         return true;
     });
     $mockSyncService->shouldReceive('isExistsSyncModelByActiveRecord')->andReturnUsing(function ($service, $model) {
         return false;
     });
     $mockSyncService->shouldReceive('publishPost')->andReturnUsing(function ($message, $url) {
         return ['service_id_post' => 123, 'service_id_author' => 123, 'time_created' => 'bad_format_data'];
     });
     $synchronizer->setService($serviceName, $mockSyncService);
     $this->setExpectedException('yii\\base\\Exception', Yii::t('SyncSocial', 'Wrong sync model configuration for SyncSocial extension'));
     $synchronizer->syncActiveRecord($serviceName, $model);
     $this->assertTrue(true);
 }