Exemplo n.º 1
0
        public static void Extended(this ILogger logger, LogLevel logLevel, string message, object logProperties,
                                    Exception ex = null, string exceptionTag = null)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            if (ex == null)
            {
                ExtendedWithException(logger, logLevel, message, logProperties, null, 0, 0, null);
            }
            else if (ex.InnerException == null)
            {
                ExtendedWithException(logger, logLevel, message, logProperties, ex, 1, 1, null);
            }
            else
            {
                var allExceptions = ConvertException.ToList(ex);
                if (string.IsNullOrEmpty(exceptionTag))
                {
                    exceptionTag = Guid.NewGuid().ToString();
                }

                for (var index = 0; index < allExceptions.Count; index++)
                {
                    ExtendedWithException(logger, logLevel, message, logProperties,
                                          allExceptions[index], index + 1, allExceptions.Count, exceptionTag);
                }
            }
        }
Exemplo n.º 2
0
        public void ExceptionFingerprintIsPresent()
        {
            Exception ex = new ApplicationException("test 1");

            var fingerprint = ConvertException.ToFingerprint(ex);

            AssertIsHash(fingerprint);
        }
Exemplo n.º 3
0
        public void NullExceptionFingerprintIsEmpty()
        {
            Exception ex = null;

            var fingerprint = ConvertException.ToFingerprint(ex);

            Assert.That(fingerprint, Is.Empty);
        }
Exemplo n.º 4
0
        public void DifferentMessageExceptionsHaveDifferentFingerprint()
        {
            Exception ex1 = new ApplicationException("test 1");
            Exception ex2 = new ApplicationException("test 2");

            var fingerprint1 = ConvertException.ToFingerprint(ex1);
            var fingerprint2 = ConvertException.ToFingerprint(ex2);

            AssertIsHash(fingerprint1);
            AssertIsHash(fingerprint2);
            Assert.That(fingerprint1, Is.Not.EqualTo(fingerprint2));
        }
Exemplo n.º 5
0
        public void IdenticalStacktraceExceptionsHaveSameFingerprint()
        {
            Exception ex1 = PutStackTraceOnException(new ApplicationException("test 1"));
            Exception ex2 = PutStackTraceOnException(new ApplicationException("test 1"));

            var fingerprint1 = ConvertException.ToFingerprint(ex1);
            var fingerprint2 = ConvertException.ToFingerprint(ex2);

            AssertIsHash(fingerprint1);
            AssertIsHash(fingerprint2);
            Assert.That(fingerprint1, Is.EqualTo(fingerprint2));
        }
Exemplo n.º 6
0
        public void IdenticalExceptionsFromDifferentLinesInAMethodHaveADifferentFingerprint()
        {
            Exception ex1 = PutStackTraceOnExceptionGeneric(new ApplicationException("test 1"), false, "Do stuff");
            Exception ex2 = PutStackTraceOnExceptionGeneric(new ApplicationException("test 1"), true, "Do stuff");

            var fingerprint1 = ConvertException.ToFingerprint(ex1);
            var fingerprint2 = ConvertException.ToFingerprint(ex2);

            AssertIsHash(fingerprint1);
            AssertIsHash(fingerprint2);
            Assert.That(fingerprint1, Is.Not.EqualTo(fingerprint2));
        }
 protected override void Append(StringBuilder builder, LogEventInfo logEvent)
 {
     if (logEvent.Exception != null)
     {
         var text = ConvertException.ToFingerprint(logEvent.Exception);
         builder.Append(text);
     }
     else
     {
         base.Append(builder, logEvent);
     }
 }
Exemplo n.º 8
0
 public override void GuardTypeSafety()
 {
     if (Nested == null || Nested.ReturnType == null)
     {
         return;
     }
     if (Nested.ReturnType != typeof(bool))
     {
         throw ConvertException.StaticTypeSafety(typeof(bool), Nested.ReturnType, Nested.ToString());
     }
     Nested.GuardTypeSafety();
 }
Exemplo n.º 9
0
        public void StackTraceIsUsedWhenPresent()
        {
            Exception ex1 = new ApplicationException("test 1");
            Exception ex2 = PutStackTraceOnException(new ApplicationException("test 1"));

            var fingerprint1 = ConvertException.ToFingerprint(ex1);
            var fingerprint2 = ConvertException.ToFingerprint(ex2);

            AssertIsHash(fingerprint1);
            AssertIsHash(fingerprint2);
            Assert.That(fingerprint1, Is.Not.EqualTo(fingerprint2));
        }
Exemplo n.º 10
0
        public void IdenticalMessageExceptionsHaveSameFingerprint()
        {
            Exception ex1 = new ApplicationException("test 1");
            Exception ex2 = new ApplicationException("test 1");

            var fingerprint1 = ConvertException.ToFingerprint(ex1);
            var fingerprint2 = ConvertException.ToFingerprint(ex2);

            AssertIsHash(fingerprint1);
            AssertIsHash(fingerprint2);
            Assert.That(fingerprint1, Is.EqualTo(fingerprint2));
        }
        public void PriceConverterTest()
        {
            var engine = new FileHelperEngine <GodRecord>();

            ConvertException ex =
                Assert.Throws <ConvertException>(
                    () => TestCommon.ReadTest <GodRecord>(engine, "Good", "PriceConverter.txt"));

            Assert.AreEqual(1, ex.LineNumber);
            Assert.AreEqual("PriceList", ex.FieldName);
            Assert.AreEqual(typeof(decimal), ex.FieldType);
            Assert.AreEqual(null, ex.FieldStringValue);
        }
Exemplo n.º 12
0
 public override void GuardTypeSafety()
 {
     if (Lhs == null || Rhs == null || Lhs.ReturnType == null || Rhs.ReturnType == null)
     {
         return;
     }
     if (Lhs.ReturnType != Rhs.ReturnType)
     {
         throw ConvertException.StaticTypeSafety(Lhs.ReturnType, Rhs.ReturnType, Rhs.ToString());
     }
     Lhs.GuardTypeSafety();
     Rhs.GuardTypeSafety();
 }
Exemplo n.º 13
0
 public override void GuardTypeSafety()
 {
     if (Lhs == null || Lhs.ReturnType == null)
     {
         return;
     }
     if (Lhs.ReturnType != typeof(string))
     {
         throw ConvertException.StaticTypeSafety(typeof(bool), Lhs.ReturnType, Lhs.ToString());
     }
     Lhs.GuardTypeSafety();
     if (Rhs == null || Rhs.ReturnType == null)
     {
         return;
     }
     Rhs.GuardTypeSafety();
 }
        public static void Extended(this ILogger logger, LogLevel logLevel, string message, object logProperties, Exception ex = null)
        {
            if (ex == null)
            {
                ExtendedWithException(logger, logLevel, message, logProperties, null, 0, 0, null);
            }
            else if (ex.InnerException == null)
            {
                ExtendedWithException(logger, logLevel, message, logProperties, ex, 1, 1, null);
            }
            else
            {
                var allExceptions = ConvertException.ToList(ex);
                var tag           = Guid.NewGuid().ToString();

                for (var index = 0; index < allExceptions.Count; index++)
                {
                    ExtendedWithException(logger, logLevel, message, logProperties,
                                          allExceptions[index], index + 1, allExceptions.Count, tag);
                }
            }
        }
 public override void GuardTypeSafety()
 {
     if (Condition?.ReturnType == null)
     {
         return;
     }
     if (Then?.ReturnType == null)
     {
         return;
     }
     if (Else?.ReturnType == null)
     {
         return;
     }
     if (Condition.ReturnType != typeof(bool))
     {
         throw ConvertException.StaticTypeSafety(typeof(bool), Condition.ReturnType, Condition.ToString());
     }
     //            if (Rhs.ReturnType != typeof(bool)) throw ConvertException.StaticTypeSafety(typeof(bool), Rhs.ReturnType, Rhs.ToString());
     //            Lhs.GuardTypeSafety();
     //            Rhs.GuardTypeSafety();
 }
Exemplo n.º 16
0
        internal object AssignFromString(ExtractedInfo fieldString, LineInfo line)
        {
            object val;

            switch (mTrimMode)
            {
            case TrimMode.None:
                break;

            case TrimMode.Both:
                fieldString.TrimBoth(mTrimChars);
                break;

            case TrimMode.Left:
                fieldString.TrimStart(mTrimChars);
                break;

            case TrimMode.Right:
                fieldString.TrimEnd(mTrimChars);
                break;
            }

            try
            {
                if (mConvertProvider == null)
                {
                    if (mIsStringField)
                    {
                        val = fieldString.ExtractedString();
                    }
                    else
                    {
                        // Trim it to use Convert.ChangeType
                        fieldString.TrimBoth(WhitespaceChars);

                        if (fieldString.Length == 0)
                        {
                            // Empty stand for null
                            val = GetNullValue();
                        }
                        else
                        {
                            val = Convert.ChangeType(fieldString.ExtractedString(), mFieldType, null);
                        }
                    }
                }

                else
                {
                    if (mConvertProvider.CustomNullHandling == false &&
                        fieldString.HasOnlyThisChars(WhitespaceChars))
                    {
                        val = GetNullValue();
                    }
                    else
                    {
                        var from = fieldString.ExtractedString();
                        val = mConvertProvider.StringToField(from);

                        if (val == null)
                        {
                            val = GetNullValue();
                        }
                    }
                }

                return(val);
            }
            catch (ConvertException ex)
            {
                var e = ConvertException.ReThrowException(ex, mFieldInfo.Name, line.mReader.LineNumber, fieldString.ExtractedFrom + 1);
                throw e;
            }
        }
Exemplo n.º 17
0
 internal static ConvertException ReThrowException(ConvertException ex, string fieldName, int line, int column)
 {
     return new ConvertException(ex.FieldStringValue, ex.mFieldType, fieldName, line, column, ex.mMessageExtra);
 }
Exemplo n.º 18
0
 public override void GuardTypeSafety()
 {
     if (_function.IsParamsFunctions())
     {
         for (int i = 0; i < _nested.Nodes.Count; i++)
         {
             var        argumentType = i < _function.Arguments.Length?_function.Arguments[i].Type:_function.Arguments.Last().Type;
             Expression node         = _nested.Nodes[i];
             if (node == null || node.ReturnType == null ||
                 typeof(object).Equals(argumentType))
             {
                 continue;
             }
             if (_function.Arguments[i].Type.IsInterface)
             {
                 if (!node.ReturnType.GetInterfaces().Contains(argumentType))
                 {
                     throw ConvertException.StaticTypeSafety(argumentType, node.ReturnType,
                                                             node.ToString());
                 }
             }
             else
             {
                 if (node.ReturnType != _function.Arguments[i].Type)
                 {
                     throw ConvertException.StaticTypeSafety(argumentType, node.ReturnType,
                                                             node.ToString());
                 }
             }
             node.GuardTypeSafety();
         }
     }
     else
     {
         for (int i = 0; i < _function.Arguments.Length; i++)
         {
             Expression node = _nested.Nodes[i];
             if (node == null || node.ReturnType == null ||
                 typeof(object).Equals(_function.Arguments[i].Type))
             {
                 continue;
             }
             if (_function.Arguments[i].Type.IsInterface)
             {
                 if (!node.ReturnType.GetInterfaces().Contains(_function.Arguments[i].Type))
                 {
                     throw ConvertException.StaticTypeSafety(_function.Arguments[i].Type, node.ReturnType,
                                                             node.ToString());
                 }
             }
             else if ((_function.Arguments[i].Type != typeof(object) && !node.ReturnType.IsArray && !_function.Arguments[i].Type.IsArray) ||
                      (_function.Arguments[i].Type != typeof(object[]) && node.ReturnType.IsArray && _function.Arguments[i].Type.IsArray)
                      )
             {
                 if (node.ReturnType != _function.Arguments[i].Type)
                 {
                     throw ConvertException.StaticTypeSafety(_function.Arguments[i].Type, node.ReturnType,
                                                             node.ToString());
                 }
             }
             node.GuardTypeSafety();
         }
     }
 }