@@ -40,6 +40,51 @@ public function testTimeToLive()
4040 $ this ->assertNull ($ task );
4141 }
4242
43+ /**
44+ * @eval queue.tube['%tube_name%']:put('touch_ttr_1', {ttr = 1})
45+ */
46+ public function testTouchTimeToRun ()
47+ {
48+ $ task1 = $ this ->queue ->take (.1 );
49+ $ task2 = $ this ->queue ->touch ($ task1 ->getId (), 1 );
50+ sleep (1 );
51+ $ task3 = $ this ->queue ->take (.1 );
52+
53+ $ this ->assertTaskInstance ($ task2 );
54+ $ this ->assertSame ('touch_ttr_1 ' , $ task2 ->getData ());
55+ $ this ->assertEquals ($ task1 , $ task2 );
56+ $ this ->assertNull ($ task3 );
57+ }
58+
59+ /**
60+ * @eval queue.tube['%tube_name%']:put('touch_ttl_1', {ttl = 1})
61+ */
62+ public function testTouchTimeToLive ()
63+ {
64+ $ task1 = $ this ->queue ->take (.1 );
65+ $ task2 = $ this ->queue ->touch ($ task1 ->getId (), 1 );
66+ $ this ->queue ->release ($ task1 ->getId ());
67+ sleep (1 );
68+ $ task3 = $ this ->queue ->take (.1 );
69+
70+ $ this ->assertTaskInstance ($ task2 );
71+ $ this ->assertSame ('touch_ttl_1 ' , $ task2 ->getData ());
72+ $ this ->assertEquals ($ task1 , $ task2 );
73+ $ this ->assertEquals ($ task2 , $ task3 );
74+ }
75+
76+ /**
77+ * @eval queue.tube['%tube_name%']:put('touch_invalid_interval')
78+ */
79+ public function testTouchInvalidInterval ()
80+ {
81+ $ task = $ this ->queue ->take (.1 );
82+
83+ foreach ([0 , -1 ] as $ interval ) {
84+ $ this ->assertNull ($ this ->queue ->touch ($ task ->getId (), $ interval ));
85+ }
86+ }
87+
4388 /**
4489 * @eval queue.tube['%tube_name%']:put('pri_low', {pri = 2})
4590 * @eval queue.tube['%tube_name%']:put('pri_high', {pri = 1})
0 commit comments