(function() {

    var defur = require('../../../src/defur');
    var assert = require('chai').assert;

    suite('defur:', function() {
        var services = null;

        setup(function() {
            services = {};
        });

        test('`defur` is a function', function() {
            assert.isFunction(defur);
        });

        test('`defur` defers execution of definition', function() {
            defur('foo', services, function() {
                throw new Error('This should be deferred.');
            });

            assert.throws(function() {
                services.foo;
            });
        });

        test('`defur` creates the service only once', function() {
            defur('foo', services, function() {
                return {};
            });

            assert.strictEqual(services.foo, services.foo);
        });

        test('`defur` works with multiple service containers', function() {
            var otherServices = {};

            defur('foo', services, function() {
                return {};
            });
            defur('foo', otherServices, function() {
                return {};
            });

            assert.notEqual(services.foo, otherServices.foo);
        });

    });

})();

@@ -845,32 +845,346 @@
 );%0A        %7D);%0A%0A
+        test('%60defur%60 services don%5C't collide', function() %7B%0A            defur('foo', services, function() %7B%0A                return %7B%7D;%0A            %7D);%0A            defur('bar', services, function() %7B%0A                return %7B%7D;%0A            %7D);%0A%0A            assert.notEqual(services.foo, services.bar);%0A        %7D);%0A%0A
         test('%60d

Add test to cover container collisions