1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- var CountDownLatch = require('../../lib/util/countDownLatch');
- var should = require('should');
- var cbCreator = (function() {
- var count =0;
- return {
- callback: function() {
- count++;
- },
- getCount: function() {
- return count;
- },
- count: count
- };
- })();
- describe('countdown latch test', function() {
- var countDownLatch1;
- var countDownLatch2;
- describe('#count down', function() {
- it('should invoke the callback after the done method was invoked the specified times', function(done) {
- var n = 3, doneCount = 0;
- var cdl = CountDownLatch.createCountDownLatch(n, function() {
- doneCount.should.equal(n);
- done();
- });
- for(var i=0; i<n; i++) {
- doneCount++;
- cdl.done();
- }
- });
- it('should throw exception if pass a negative or zero to the create method', function() {
- (function() {
- CountDownLatch.createCountDownLatch(-1, function() {});
- }).should.throw();
- (function() {
- CountDownLatch.createCountDownLatch(0, function() {});
- }).should.throw();
- });
- it('should throw exception if pass illegal cb to the create method', function() {
- (function() {
- CountDownLatch.createCountDownLatch(1, null);
- }).should.throw();
- });
- it('should throw exception if try to invoke done metho of a latch that has fired cb', function() {
- var n = 3;
- var cdl = CountDownLatch.createCountDownLatch(n, function() {});
- for(var i=0; i<n; i++) {
- cdl.done();
- }
- (function() {
- cdl.done();
- }).should.throw();
- });
- it('should invoke the callback if timeout', function() {
- var n = 3;
- var cdl = CountDownLatch.createCountDownLatch(n, {timeout: 3000}, function(isTimeout) {
- isTimeout.should.equal(true);
- });
- for(var i=0; i<n-1; i++) {
- cdl.done();
- }
- });
- });
- });
|