コード例 #1
0
        public void Configure_Thows_If_Writter_Is_Null_Test()
        {
            HttpExceptionWritter writter = null;
            ExceptionDefaults defaults = new ExceptionDefaults();

            // Assert
            Assert.Throws<ArgumentNullException>(() => { ExceptionHandler.Configure(writter, defaults); });
        }
コード例 #2
0
        private static void SetUpExceptionHandler()
        {
            var defaults = new ExceptionDefaults
            {
                Token           = Constants.ExceptionLogToken,
                ApplicationName = Constants.Name,
                Host            = Constants.Name,

                // NOTE: Possible to pass URI by startup arguments.
                RemoteLogUri = new Uri(Constants.RemoteLogUri, UriKind.Absolute)
            };

            ExceptionHandler.Configure(new ClientHttpExceptionWritter(), defaults, null);
        }
コード例 #3
0
 public static void Configure(ExceptionWritterBase writter, EverywhereConfigurationSection section, IEnumerable<Type> appenders)
 {
     if (section == null)
     {
         throw new ArgumentNullException("section");
     }
     var parameters = new ExceptionDefaults
     {
         ApplicationName = section.ApplicationName,
         Host = section.Host,
         Token = section.Token,
         RemoteLogUri = new Uri(section.RemoteLogUri)
     };
     Configure(writter, parameters, appenders);
 }
コード例 #4
0
        public void Log_Test()
        {
            // Arrange
            ExceptionDefaults parameters = new ExceptionDefaults
                                               {
                                                   ApplicationName = "Test-Application",
                                                   Host = "HttpErrorLogTest",
                                                   Token = "Test-Token",
                                                   RemoteLogUri = new Uri("http://www.faulthub.org/")

                                               };
            TestableHttpExceptionWritter writter = new TestableHttpExceptionWritter();
            ExceptionHandler.Configure(writter, parameters, null);
            HttpErrorLog log = new HttpErrorLog(new HybridDictionary());

            // Act
            string id = log.Log(new Error(new Exception("Test-Error")));

            // Assert
            Assert.True(new Guid(id) != Guid.Empty, id);
        }
コード例 #5
0
        public void HandleError_Test()
        {
            // Arange
            HttpErrorHandler handler = new HttpErrorHandler();
            ExceptionDefaults defaults = new ExceptionDefaults
                                             {
                                                 ApplicationName = "ApplicationName",
                                                 Host = "Host",
                                                 Token = "Token"
                                             };

            Mock<ExceptionWritterBase> writterMock = new Mock<ExceptionWritterBase>();
            writterMock.Setup(x => x.Write(defaults.Token, It.IsAny<ErrorInfo>())).Verifiable();

            ExceptionHandler.Configure(writterMock.Object, defaults, null);

            // Act
            bool result = handler.HandleError(new Exception("Test-Exception"));

            // Assert
            Assert.False(result);
            writterMock.Verify();
        }
コード例 #6
0
        public void Should_Call_Completed_Event_Test()
        {
            // Arrange
            ExceptionDefaults parameters = new ExceptionDefaults
            {
                Token = "Test-Token",
                RemoteLogUri = "http://localhost:11079/error/log"
            };

            bool completed = false;
            TestableExceptionWritter writter = new TestableExceptionWritter();
            writter.Completed += (s, e) =>
            {
                completed = true;
            };

            ExceptionHandler.Configure(writter, parameters);

            // Act
            ExceptionHandler.Report(new Exception(), null);

            // Assert
            Assert.True(completed);
        }
コード例 #7
0
        public void Should_Report_If_Enabled_Test()
        {
            // Arrange
            ExceptionDefaults parameters = new ExceptionDefaults
                                               {
                                                   Token = "Test-Token",
                                                   RemoteLogUri = "http://localhost:11079/error/log"
                                               };
            TestableExceptionWritter writter = new TestableExceptionWritter();

            ExceptionHandler.Configure(writter, parameters);

            // Act
            ExceptionHandler.Report(new Exception(), null);

            // Assert
            Assert.NotNull(writter.Error);
        }
コード例 #8
0
        public void Should_Not_Report_If_Disabled_Test()
        {
            // Arrange
            ExceptionDefaults parameters = new ExceptionDefaults
                                               {
                                                   RemoteLogUri = "http://localhost:11079/error/log"
                                               };
            TestableExceptionWritter writter = new TestableExceptionWritter();

            ExceptionHandler.IsEnabled = false;
            ExceptionHandler.Configure(writter, parameters);

            // Act
            ExceptionHandler.Report(new Exception(), null);

            // Reset to default
            ExceptionHandler.IsEnabled = true;

            // Assert
            Assert.Null(writter.Error);
        }
コード例 #9
0
 public static void Configure(ExceptionWritterBase writter, ExceptionDefaults parameters, IEnumerable<Type> appenders)
 {
     if (writter == null)
     {
         throw new ArgumentNullException("writter");
     }
     if (parameters == null)
     {
         throw new ArgumentNullException("parameters");
     }
     _appenders = appenders;
     if (_appenders == null)
     {
         _appenders = AllAppenders();
     }
     var httpWriter = writter as HttpExceptionWritterBase;
     if (httpWriter != null && httpWriter.RequestUri == null)
     {
         httpWriter.RequestUri = parameters.RemoteLogUri;
     }
     _writter = writter;
     _parameters = parameters;
     _writter.Completed += Writter_Completed;
 }
コード例 #10
0
 private static void ValidateParameters(ExceptionDefaults parameters)
 {
     if (parameters.RemoteLogUri == null)
     {
         throw new ArgumentNullException("parameters", "RemoteLogUri is required");
     }
     if (string.IsNullOrWhiteSpace(parameters.ApplicationName))
     {
         parameters.ApplicationName = "NOT-SET";
     }
     if (string.IsNullOrWhiteSpace(parameters.Host))
     {
         parameters.Host = "NOT_SET";
     }
 }