Esempio n. 1
0
 /**
  * @param string $codeGoogleAnalytics
  * @param string $codeKissMetrics
  * @return CM_Service_Manager
  */
 protected function _getServiceManager($codeGoogleAnalytics, $codeKissMetrics)
 {
     $serviceManager = new CM_Service_Manager();
     $serviceManager->registerInstance('googleanalytics', new CMService_GoogleAnalytics_Client($codeGoogleAnalytics));
     $serviceManager->registerInstance('kissmetrics', new CMService_KissMetrics_Client($codeKissMetrics));
     $serviceManager->registerInstance('trackings', new CM_Service_Trackings(['googleanalytics', 'kissmetrics']));
     return $serviceManager;
 }
Esempio n. 2
0
 protected function setUp()
 {
     $serviceManager = new CM_Service_Manager();
     $this->_filesystemDefault = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local());
     $this->_filesystemFoo = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local());
     $serviceManager->registerInstance('filesystem-usercontent-default', $this->_filesystemDefault);
     $serviceManager->registerInstance('filesystem-usercontent-foo', $this->_filesystemFoo);
     $config = array('default' => array('url' => 'http://example.com/default', 'filesystem' => 'filesystem-usercontent-default'), 'foo' => array('url' => 'http://example.com/foo', 'filesystem' => 'filesystem-usercontent-foo'));
     $this->_service = new CM_Service_UserContent($config);
     $this->_service->setServiceManager($serviceManager);
 }
Esempio n. 3
0
 public function testGetUrl()
 {
     $serviceManager = new CM_Service_Manager();
     $filesystemDefault = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local());
     $filesystemFoo = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local());
     $serviceManager->registerInstance('filesystem-usercontent-default', $filesystemDefault);
     $serviceManager->registerInstance('filesystem-usercontent-foo', $filesystemFoo);
     $serviceConfig = array('default' => array('url' => 'http://example.com/default', 'filesystem' => 'filesystem-usercontent-default'), 'foo' => array('url' => 'http://example.com/foo', 'filesystem' => 'filesystem-usercontent-foo'));
     $serviceManager->registerInstance('usercontent', new CM_Service_UserContent($serviceConfig));
     $userFile = new CM_File_UserContent('foo', 'my.jpg', null, $serviceManager);
     $this->assertSame('http://example.com/foo/foo/my.jpg', $userFile->getUrl());
     $userFile = new CM_File_UserContent('bar', 'my.jpg', null, $serviceManager);
     $this->assertSame('http://example.com/default/bar/my.jpg', $userFile->getUrl());
 }
Esempio n. 4
0
 public function testRunJobLimit()
 {
     $serviceManager = new CM_Service_Manager();
     $logger = $this->mockObject('CM_Log_Logger');
     $serviceManager->registerInstance('logger', $logger);
     if (!extension_loaded('gearman')) {
         $this->markTestSkipped('Gearman Pecl Extension not installed.');
     }
     $gearmanWorker = $this->mockClass('GearmanWorker')->newInstanceWithoutConstructor();
     $workMethod = $gearmanWorker->mockMethod('work')->set(true);
     CM_Config::get()->CM_Jobdistribution_JobWorker->servers = [];
     $worker = $this->mockClass(CM_Jobdistribution_JobWorker::class)->newInstance([5]);
     $worker->mockMethod('_getGearmanWorker')->set($gearmanWorker);
     /** @var CM_Jobdistribution_JobWorker $worker */
     $worker->setServiceManager($serviceManager);
     $worker->run();
     $this->assertSame(5, $workMethod->getCallCount());
 }
Esempio n. 5
0
 public function testTracking_User()
 {
     $user = CMTest_TH::createUser();
     $fixture = new CM_Splittest_Fixture($user);
     /** @var CM_Model_Splittest_Mock $test */
     $test = CM_Model_Splittest_Mock::create('foo1', ['v1']);
     /** @var CM_Model_SplittestVariation $variation */
     $variation = $test->getVariations()->getItem(0);
     $variation->getName();
     // Fill data
     $mockBuilder = $this->getMockBuilder('CMService_KissMetrics_Client');
     $mockBuilder->setMethods(['trackSplittest']);
     $mockBuilder->setConstructorArgs(['km123']);
     $kissMetricsMock = $mockBuilder->getMock();
     $kissMetricsMock->expects($this->once())->method('trackSplittest')->with($fixture, $this->equalTo($variation));
     $serviceManager = new CM_Service_Manager();
     $serviceManager->registerInstance('tracking-kissmetrics-test', $kissMetricsMock);
     $serviceManager->unregister('trackings');
     $serviceManager->registerInstance('trackings', new CM_Service_Trackings(['tracking-kissmetrics-test']));
     $test->setServiceManager($serviceManager);
     $test->getVariationFixture($fixture);
 }
Esempio n. 6
0
 /**
  * @param string $code
  * @return CM_Service_Manager
  */
 private function _getServiceManagerWithGA($code)
 {
     $serviceManager = new CM_Service_Manager();
     $serviceManager->registerInstance('googleanalytics', new CMService_GoogleAnalytics_Client($code));
     $serviceManager->registerInstance('trackings', new CM_Service_Trackings(['googleanalytics']));
     return $serviceManager;
 }
Esempio n. 7
0
 public function testSendFailed()
 {
     $serviceManager = new CM_Service_Manager();
     $logger = $this->mockObject('CM_Log_Logger');
     $serviceManager->registerInstance('logger', $logger);
     $transport = $this->mockInterface('Swift_Transport')->newInstance();
     $transport->mockMethod('isStarted')->set(true);
     $message = new Swift_Message('foo', 'content');
     $message->setFrom('*****@*****.**', 'Foobar');
     $message->setTo('*****@*****.**');
     $message->setCc('*****@*****.**', 'bar');
     $client = new CM_Mail_Mailer($transport);
     $client->setServiceManager($serviceManager);
     $sendMethod = $transport->mockMethod('send')->set(0);
     $errorMethod = $logger->mockMethod('error')->set(function ($message, CM_Log_Context $context = null) {
         $this->assertSame('Failed to send email', $message);
         $this->assertSame(['message' => ['subject' => 'foo', 'from' => ['*****@*****.**' => 'Foobar'], 'to' => ['*****@*****.**' => null], 'cc' => ['*****@*****.**' => 'bar'], 'bcc' => null], 'failedRecipients' => ['*****@*****.**', '*****@*****.**']], $context->getExtra());
     });
     $failedRecipients = ['*****@*****.**', '*****@*****.**'];
     $client->send($message, $failedRecipients);
     /** @var CM_Exception_Invalid $exception */
     $this->assertSame(1, $sendMethod->getCallCount());
     $this->assertSame(1, $errorMethod->getCallCount());
 }
Esempio n. 8
0
 public function testUnregister()
 {
     $serviceManager = new CM_Service_Manager();
     $serviceManager->registerInstance('foo', 12.3);
     $this->assertSame(true, $serviceManager->has('foo'));
     $serviceManager->unregister('foo');
     $this->assertSame(false, $serviceManager->has('foo'));
 }
Esempio n. 9
0
 /**
  * @param string $codeGoogleAnalytics
  * @param string $codeKissMetrics
  * @return CM_Service_Manager
  */
 protected function _getServiceManager($codeGoogleAnalytics, $codeKissMetrics)
 {
     $serviceManager = new CM_Service_Manager();
     $serviceManager->registerInstance('googleanalytics', new CMService_GoogleAnalytics_Client($codeGoogleAnalytics));
     $serviceManager->registerInstance('kissmetrics', new CMService_KissMetrics_Client($codeKissMetrics));
     $serviceManager->registerInstance('trackings', new CM_Service_Trackings(['googleanalytics', 'kissmetrics']));
     $serviceManager->registerInstance('logger', new CM_Log_Logger(new CM_Log_Context()));
     $serviceManager->registerInstance('newrelic', new CMService_Newrelic(false, 'unit-test'));
     return $serviceManager;
 }