anchor.diff:      property Level: TSvLogLevel read GetLevel write SetLevel;
     end;
   
  +  TSvMockLogger = class(TSvBaseLogger)
  +  private
  +    FLogLevel: TSvLogLevel;
  +  protected
  +    function GetLevel: TSvLogLevel; override;
  +    procedure SetLevel(const Value: TSvLogLevel); override;
  +  public
  +    procedure Log(ALevel: TSvLogLevel; const AMessage: string; AException: Exception = nil); override;
  +  end;
  +
   
   function Logger(): ISvLogger;
   
   procedure CreateLogger(var ALogger: ISvLogger);
  +procedure CreateMockLogger;
   
   implementation
   
  
positive.code: procedure CreateLogger(var ALogger: ISvLogger);
  begin
    FLogger := ALogger;
  end;
  
  { TSvBaseLogger }
  
negative.code:   Log(TSvLogLevel.Warn, AMessage, AException);
  end;
  
  { TSvMockLogger }
  
  function TSvMockLogger.GetLevel: TSvLogLevel;
  begin
    Result := FLogLevel;
  end;
  
  procedure TSvMockLogger.Log(ALevel: TSvLogLevel; const AMessage: string; AException: Exception);
  begin
    Writeln(Trim(AMessage));
  end;
  
  procedure TSvMockLogger.SetLevel(const Value: TSvLogLevel);
  begin
    FLogLevel := Value;
  end;
  
  end.
  