public void AddFilter_OnAlreadyInclude_Fail()
            {
                var harvester = new ProjectionHarvester();

                harvester.Include <A>(x => x.X);
                harvester.AddFilter <A>(x => null);
            }
            public void Include_OnAlreadyInclude_Fail()
            {
                var harvester = new ProjectionHarvester();

                harvester.Exclude <A>(x => x.X);
                harvester.Include <A>(x => x.X);
            }
            public void Include_OnAlreadyInclude_Fail()
            {
                var harvester = new ProjectionHarvester();

                harvester.Exclude <A>(x => x.X);
                var ex = Assert.Throws <ArgumentException>(() => harvester.Include <A>(x => x.X));

                Assert.AreEqual("Type A has already been configured as an excluder.", ex.Message);
            }
            public void Include_Fieldsarr_WorksForTypesAndSubtypes()
            {
                var harvester = new ProjectionHarvester();

                harvester.Include <B>(x => x.Name, x => x.Age);

                IFieldHarvester fh = (IFieldHarvester)harvester;

                Assert.IsFalse(fh.CanHandleType(typeof(A)));
                Assert.IsTrue(fh.CanHandleType(typeof(B)));
                var fields = fh.GetFields(typeof(B)).Select(x => x.SanitizedName);

                CollectionAssert.AreEquivalent(new[] { "Name", "Age" }, fields);

                Assert.IsFalse(fh.CanHandleType(typeof(C)));
            }
 public void Include_OnAlreadyInclude_Fail()
 {
     var harvester = new ProjectionHarvester();
     harvester.Exclude<A>(x => x.X);
     harvester.Include<A>(x => x.X);
 }
            public void Include_Fieldsarr_WorksForTypesAndSubtypes()
            {
                var harvester = new ProjectionHarvester();
                harvester.Include<B>(x => x.Name, x => x.Age);

                IFieldHarvester fh = (IFieldHarvester)harvester;
                Assert.IsFalse(fh.CanHandleType(typeof(A)));
                Assert.IsTrue(fh.CanHandleType(typeof(B)));
                var fields = fh.GetFields(typeof(B)).Select(x => x.SanitizedName);
                CollectionAssert.AreEquivalent(new[] { "Name", "Age" }, fields);

                Assert.IsFalse(fh.CanHandleType(typeof(C)));
            }
 public void AddFilter_OnAlreadyInclude_Fail()
 {
     var harvester = new ProjectionHarvester();
     harvester.Include<A>(x => x.X);
     harvester.AddFilter<A>(x => null);
 }