Exemplo n.º 1
0
        public void DontLogAttributeTest()
        {
            var c    = new TestDontLogAttribute();
            var line = Line(c);
            var loggedValuesCount = line.Split(defaultConfig.delimiter).Length;
            var propertyCount     = c.GetType().GetProperties().Length;
            var dontLogCount      =
                c.GetType()
                .GetProperties()
                .Where(x => Attribute.IsDefined(x, typeof(DontLogAttribute)))
                .Count();

            Assert.AreEqual(propertyCount - dontLogCount, loggedValuesCount);
        }
Exemplo n.º 2
0
        public void DontLogAttributeExcludesLogging()
        {
            var t                 = typeof(TestDontLogAttribute);
            var header            = Header(t);
            var shouldNotBeLogged = PublicFieldAndProperties(t)
                                    .Where(x => Attribute.IsDefined(
                                               element: x,
                                               attributeType: typeof(DontLogAttribute)
                                               )
                                           );
            var headerWords = header.Split(defaultConfig.delimiter);

            foreach (var m in shouldNotBeLogged)
            {
                Assert.IsFalse(
                    condition: headerWords.Contains(m.Name),
                    message: $"{headerWords} should not contain {m.Name}"
                    );
                if (m.TryConvertToPropertyOrFieldType(out Type nestedType))
                {
                    if (!nestedType.CustomIsPrimitive())
                    {
                        foreach (var mn in PublicFieldAndProperties((m as PropertyInfo).PropertyType))
                        {
                            Assert.IsFalse(
                                condition: headerWords.Contains(mn.Name),
                                message: $"{headerWords} should not contain {mn.Name}"
                                );
                        }
                    }
                }
            }
            var ins = new TestDontLogAttribute();

            Console.WriteLine(header);
        }