public function testUninitMeta() { $subject = new MetaAgentAdapter(); $metod = TestUtilities::get_private_method($subject, '_uninit_meta'); $this->assertTrue(false != $metod); // 测试1 进入close流程 // 测试1.1 测试_uninit_meta方法 // 定义connection行为 $this->stub_conn->expects($this->any())->method('is_connected')->will($this->returnValue(true)); $this->stub_conn->expects($this->any())->method('create_connection')->will($this->returnValue(true)); $this->stub_conn->expects($this->any())->method('send')->will($this->returnValue(true)); $this->stub_conn->expects($this->any())->method('close'); $ack_pkgs = $this->_gen_uninit_meta_ack(); $this->stub_conn->expects($this->any())->method('receive')->will($this->onConsecutiveCalls(null, $ack_pkgs['bad'], $ack_pkgs['good'])); $this->assertTrue(TestUtilities::set_private_var($subject, '_connection', $this->stub_conn)); // 测试1.1.1 meta_name为空 $subject->meta_name = null; $metod->invoke($subject, $subject->meta_name); // 测试2.1.2 request返回为空 $subject->meta_name = 'meta'; $metod->invoke($subject, $subject->meta_name); // 测试2.1.3 res_body无法解包 $subject->meta_name = 'meta'; $metod->invoke($subject, $subject->meta_name); // 测试2.1.4 res_body正常 $subject->meta_name = 'meta'; $metod->invoke($subject, $subject->meta_name); }
/** * ²âÊÔ Ë½Óк¯Êý_init_meta */ public function testOthers() { $subject = new BigpipeQueueAdministrationTools(); $method = TestUtilities::get_private_method($subject, '_init_meta'); $this->assertTrue(false != $method); // ²âÊÔinit metaʧ°ÜÇé¿ö $this->assertFalse($method->invoke($subject, null)); $method = TestUtilities::get_private_method($subject, '_check_assign_array'); $this->assertTrue(false != $method); // ²âÊÔcheckʧ°ÜÇé¿ö $testkey = 'test'; $catched_count = 0; try { $dest = array(); $src = array(); $this->assertFalse($method->invoke($subject, $dest, $testkey, $src, $testkey)); } catch (Exception $e) { $catched_count++; } $this->assertEquals(1, $catched_count); // ²âÊÔnormalize_queue_paramsʧ°Ü $method = TestUtilities::get_private_method($subject, '_normalize_queue_params'); $this->assertTrue(false != $method); $params = $this->queue_conf; unset($params['window_size']); // ÖÆÔì´íÎó $this->assertFalse($method->invoke($subject, $params)); }
/** * ²âÊÔ_update_meta */ public function testUpdateMeta() { $subject = new BigpipeSubscriber(); $method = TestUtilities::get_private_method($subject, '_update_meta'); $this->assertTrue(false !== $method); // ÉèÖÃmeta_adapterµÄÐÐΪ $sub_info = $this->_gen_sub_broker_group(); $grp_fail = $this->_gen_sub_broker_group(); $grp_fail['broker_group']->status = BigpipeBrokerGroupStatus::FAIL; $no_cand = $this->_gen_sub_broker_group(); $no_cand['broker_group']->brokers[1]->role = BigpipeBrokerRole::PRIMARY; $this->stub_meta->expects($this->any())->method('get_sub_broker_group')->will($this->onConsecutiveCalls($grp_fail, $no_cand, $sub_info, $sub_info, $sub_info)); $this->assertTrue(TestUtilities::set_private_var($subject, '_meta_adapter', $this->stub_meta)); $this->assertTrue(TestUtilities::set_private_var($subject, '_pipelet_msg_id', SubscribeStartPoint::START_FROM_FIRST_POINT)); // ²âÊÔ1 È¡µ½µÄgroupÊÇfail״̬ $this->assertFalse($method->invoke($subject)); // ²âÊÔ2 ÎÞºòÑ¡Õß $this->assertFalse($method->invoke($subject)); // ²âÊÔ3 preferÌõ¼þ²»¶Ô $this->assertTrue(TestUtilities::set_private_var($subject, '_pref_conn', 9)); $this->assertFalse($method->invoke($subject)); // ²âÊÔ4 ³É¹¦²¢Ñ¡È¡primary broker $this->assertTrue(TestUtilities::set_private_var($subject, '_pref_conn', BigpipeConnectPreferType::PRIMARY_BROKER_ONLY)); $this->assertTrue($method->invoke($subject)); $brokers = TestUtilities::get_private_var($subject, '_brokers'); $this->assertTrue(false != $brokers); $this->assertEquals(1, count($brokers)); $this->assertEquals(BigpipeBrokerRole::PRIMARY, $brokers[0]->role); // ²âÊÔ5 ³É¹¦²¢Ñ¡È¡secondary broker $this->assertTrue(TestUtilities::set_private_var($subject, '_pref_conn', BigpipeConnectPreferType::SECONDARY_BROKER_ONLY)); $this->assertTrue($method->invoke($subject)); $brokers = TestUtilities::get_private_var($subject, '_brokers'); $this->assertTrue(false != $brokers); $this->assertEquals(1, count($brokers)); $this->assertEquals(BigpipeBrokerRole::SECONDARY, $brokers[0]->role); }