spec/util_async_spec.lua
changeset 8631 e88744fa0985
parent 8627 5325f0e1791b
child 8633 deade38ffbbd
equal deleted inserted replaced
8630:24b59a62acce 8631:e88744fa0985
   532 
   532 
   533 			assert.equal(r1.state, "ready");
   533 			assert.equal(r1.state, "ready");
   534 			--for k, v in ipairs(l1) do print(k,v) end
   534 			--for k, v in ipairs(l1) do print(k,v) end
   535 		end);
   535 		end);
   536 
   536 
       
   537 		it("should support multiple done() calls", function ()
       
   538 			local processed_item;
       
   539 			local wait, done;
       
   540 			local rf = spy.new(function (item)
       
   541 				wait, done = async.waiter(4);
       
   542 				wait();
       
   543 				processed_item = item;
       
   544 			end);
       
   545 			local r = async.runner(rf, mock_watchers());
       
   546 			r:run("test");
       
   547 			for i = 1, 3 do
       
   548 				done();
       
   549 				assert.equal(r.state, "waiting");
       
   550 				assert.is_nil(processed_item);
       
   551 			end
       
   552 			done();
       
   553 			assert.equal(r.state, "ready");
       
   554 			assert.equal(processed_item, "test");
       
   555 			assert.spy(r.watchers.error).was_not.called();
       
   556 		end);
       
   557 
       
   558 		it("should not allow done() to be called more than specified", function ()
       
   559 			local processed_item;
       
   560 			local wait, done;
       
   561 			local rf = spy.new(function (item)
       
   562 				wait, done = async.waiter(4);
       
   563 				wait();
       
   564 				processed_item = item;
       
   565 			end);
       
   566 			local r = async.runner(rf, mock_watchers());
       
   567 			r:run("test");
       
   568 			for i = 1, 4 do
       
   569 				done();
       
   570 			end
       
   571 			assert.has_error(done);;
       
   572 			assert.equal(r.state, "ready");
       
   573 			assert.equal(processed_item, "test");
       
   574 			assert.spy(r.watchers.error).was_not.called();
       
   575 		end);
       
   576 
   537 		it("should allow done() to be called before wait()", function ()
   577 		it("should allow done() to be called before wait()", function ()
   538 			local processed_item;
   578 			local processed_item;
   539 			local rf = spy.new(function (item)
   579 			local rf = spy.new(function (item)
   540 				local wait, done = async.waiter();
   580 				local wait, done = async.waiter();
   541 				done();
   581 				done();