| "use strict"; | 
|   | 
| define(['test/test-helpers'], function(testHelpers) { | 
|     var it = testHelpers.itWithFreshLog; | 
|   | 
|     describe("Setting the methodFactory tests:", function() { | 
|   | 
|         it("methodFactory should be called once for each loggable level", function(log) { | 
|             log.methodFactory = jasmine.createSpy("methodFactory"); | 
|   | 
|             log.setLevel("trace"); | 
|             expect(log.methodFactory.calls.length).toEqual(5); | 
|             expect(log.methodFactory.argsForCall[0]).toEqual(["trace", 0, undefined]); | 
|             expect(log.methodFactory.argsForCall[1]).toEqual(["debug", 0, undefined]); | 
|             expect(log.methodFactory.argsForCall[2]).toEqual(["info",  0, undefined]); | 
|             expect(log.methodFactory.argsForCall[3]).toEqual(["warn",  0, undefined]); | 
|             expect(log.methodFactory.argsForCall[4]).toEqual(["error", 0, undefined]); | 
|   | 
|             log.setLevel("error"); | 
|             expect(log.methodFactory.calls.length).toEqual(6); | 
|             expect(log.methodFactory.argsForCall[5]).toEqual(["error", 4, undefined]); | 
|         }); | 
|   | 
|         it("functions returned by methodFactory should be used as logging functions", function(log) { | 
|             var logFunction = function() {}; | 
|             log.methodFactory = function() { return logFunction; }; | 
|             log.setLevel("error"); | 
|   | 
|             expect(log.warn).not.toEqual(logFunction); | 
|             expect(log.error).toEqual(logFunction); | 
|         }); | 
|   | 
|         it("the third argument should be logger's name", function(log) { | 
|             var logger = log.getLogger("newLogger"); | 
|             logger.methodFactory = jasmine.createSpy("methodFactory"); | 
|   | 
|             logger.setLevel("error"); | 
|             expect(logger.methodFactory.argsForCall[0]).toEqual(["error", 4, "newLogger"]); | 
|         }); | 
|   | 
|     }); | 
| }); |