public void Evaluate__FromLevel_ToLevel()
        {
            var fromLevel = new SeverityLevel();
            fromLevel.Value = 13;

            var toLevel = new SeverityLevel();
            toLevel.Value = 69;

            SeverityFilter lf = new SeverityFilter();
            lf.From = fromLevel;
            lf.To = toLevel;

            var loggerName = new LoggerName("");

            using (ShimsContext.Create())
            {
                var de = new SquaredInfinity.Diagnostics.Entities.Fakes.ShimDiagnosticEvent();

                lf.Mode = FilterMode.Include;

                //# lower level
                de.SeverityGet = () => new SeverityLevel { Value = 12 };
                Assert.AreEqual(false, lf.Evaluate(de, loggerName));

                //# lower boundary level
                de.SeverityGet = () => new SeverityLevel { Value = 13 };
                Assert.AreEqual(true, lf.Evaluate(de, loggerName));

                //# upper boundary level
                de.SeverityGet = () => new SeverityLevel { Value = 69 };
                Assert.AreEqual(true, lf.Evaluate(de, loggerName));

                //# higher level
                de.SeverityGet = () => new SeverityLevel { Value = 70 };
                Assert.AreEqual(false, lf.Evaluate(de, loggerName));

                lf.Mode = FilterMode.Exclude;

                //# lower level
                de.SeverityGet = () => new SeverityLevel { Value = 12 };
                Assert.AreEqual(true, lf.Evaluate(de, loggerName));

                //# lower boundary level
                de.SeverityGet = () => new SeverityLevel { Value = 13 };
                Assert.AreEqual(false, lf.Evaluate(de, loggerName));

                //# upper boundary level
                de.SeverityGet = () => new SeverityLevel { Value = 69 };
                Assert.AreEqual(false, lf.Evaluate(de, loggerName));

                //# higher level
                de.SeverityGet = () => new SeverityLevel { Value = 70 };
                Assert.AreEqual(true, lf.Evaluate(de, loggerName));
            }
        }
        public void Evaluate__ToLevel_Only()
        {
            var level = new SeverityLevel();
            level.Value = 13;

            SeverityFilter lf = new SeverityFilter();
            lf.To = level;

            var loggerName = new LoggerName("");

            using (ShimsContext.Create())
            {
                var de = new SquaredInfinity.Diagnostics.Entities.Fakes.ShimDiagnosticEvent();

                lf.Mode = FilterMode.Include;

                //# lower level
                de.SeverityGet = () => new SeverityLevel { Value = 12 };
                Assert.AreEqual(true, lf.Evaluate(de, loggerName));

                //# exact level
                de.SeverityGet = () => new SeverityLevel { Value = 13 };
                Assert.AreEqual(true, lf.Evaluate(de, loggerName));

                //# higher level
                de.SeverityGet = () => new SeverityLevel { Value = 14 };
                Assert.AreEqual(false, lf.Evaluate(de, loggerName));

                lf.Mode = FilterMode.Exclude;

                //# lower level
                de.SeverityGet = () => new SeverityLevel { Value = 12 };
                Assert.AreEqual(false, lf.Evaluate(de, loggerName));

                //# exact level
                de.SeverityGet = () => new SeverityLevel { Value = 13 };
                Assert.AreEqual(false, lf.Evaluate(de, loggerName));

                //# higher level
                de.SeverityGet = () => new SeverityLevel { Value = 14 };
                Assert.AreEqual(true, lf.Evaluate(de, loggerName));
            }
        }