public function testEnqueueStatusMockRedis()
 {
     //dont run redis test for php less than 5.3
     $version = explode('.', PHP_VERSION);
     if (!($version[0] >= 5 && $version[1] >= 3)) {
         //error_log("PHP version less than 5.3, Skipping Redis Tests...");
         return;
     } else {
         require_once THINKUP_ROOT_PATH . 'webapp/plugins/twitterrealtime/model/class.StreamMessageQueueRedis.php';
     }
     $stream_data = $this->setUpData(true);
     $twitter_data = $this->setUpTwitterData();
     $queue = new StreamMessageQueueRedis();
     $queue->redis = new MockRedis();
     StreamMessageQueueFactory::$queue = $queue;
     $consumer_user_stream = new ConsumerUserStream('username', 'password');
     $consumer_user_stream->setKey('*****@*****.**', 1);
     $procs_data = FixtureBuilder::build('stream_procs', array('process_id' => getmypid(), 'email' => '*****@*****.**', 'instance_id' => 1));
     $consumer_user_stream->enqueueStatus("string1");
     $consumer_user_stream->enqueueStatus("string2");
     $this->assertIdentical(array('string1', 'string2'), MockRedis::$queue);
     StreamMessageQueueFactory::$queue = null;
     MockRedis::$queue = null;
     // stream proc data set
     $sql = "select process_id, email, instance_id, unix_timestamp(last_report) as last_report from " . $this->table_prefix . "stream_procs";
     $stmt = PluginOptionMysqlDAO::$PDO->query($sql);
     $data = $stmt->fetchAll();
     $process_id = getmypid();
     $this->assertIdentical($data[0]['process_id'], $process_id . '');
     $recent_time = time() - 50;
     $this->assertTrue($data[0]['last_report'] > $recent_time);
 }
 /**
  * Enqueue each status
  *
  * @param string $status
  */
 public function enqueueStatus($status)
 {
     // get our queue, redis or mysql depending on plugin config value
     $queue = StreamMessageQueueFactory::getQueue();
     $queue->enqueueStatus($status);
     $queue->setLastReport($this->email, $this->instance_id);
 }
 /**
  * @return void
  */
 public function processStreamData()
 {
     $queue = StreamMessageQueueFactory::getQueue();
     while (true) {
         try {
             $this->process($queue);
         } catch (Exception $e) {
             error_log('Exception caught, sleeping...:' . $e->getMessage());
         }
     }
 }
 public static function getQueue()
 {
     // get stream plugin settings
     $plugin_option_dao = DAOFactory::GetDAO('PluginOptionDAO');
     $options = $plugin_option_dao->getOptionsHash('twitterrealtime', true);
     if (is_null(self::$queue)) {
         if (isset($options['use_redis']) && $options['use_redis']->option_value == "true") {
             // we need a redis queue
             self::$queue = new StreamMessageQueueRedis();
         } else {
             // we need a mysql queue
             self::$queue = new StreamMessageQueueMySQL();
         }
     }
     return self::$queue;
 }
 public function testGetRedisQueue()
 {
     // if we are php 5.3 or greater run test, else skip...
     $version = explode('.', PHP_VERSION);
     if (!($version[0] >= 5 && $version[1] >= 3)) {
         //error_log("PHP version less than 5.3, Skipping Redis Tests...");
         return;
     } else {
         require_once THINKUP_ROOT_PATH . 'webapp/plugins/twitterrealtime/model/class.StreamMessageQueueRedis.php';
     }
     $builder_plugin = FixtureBuilder::build('plugins', array('folder_name' => 'twitterrealtime', 'is_active' => 1));
     $plugin_id = $builder_plugin->columns['last_insert_id'];
     $namespace = OptionDAO::PLUGIN_OPTIONS . '-' . $plugin_id;
     $plgin_data = FixtureBuilder::build('options', array('namespace' => $namespace, 'option_name' => 'use_redis', 'option_value' => 'true'));
     $queue = StreamMessageQueueFactory::getQueue();
     $this->assertIsA($queue, 'StreamMessageQueueRedis');
 }