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

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

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

                selective.AddFilter <A>(x => x.Where(y => y.SanitizedName != "X" && y.SanitizedName != "Y"));

                Asserts(selective);
            }
            public void Exclude_OnAlreadyFilter_Fail()
            {
                var harvester = new ProjectionHarvester();

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

                Assert.AreEqual("Type A has already been configured as a filter.", ex.Message);
            }
 public void Exclude_OnAlreadyFilter_Fail()
 {
     var harvester = new ProjectionHarvester();
     harvester.AddFilter<A>(x => null);
     harvester.Exclude<A>(x => x.X);
 }
            public void AddFilter_WorksForTypesAndSubtypes()
            {
                var selective = new ProjectionHarvester();
                selective.AddFilter<A>(x => x.Where(y => y.SanitizedName != "X" && y.SanitizedName != "Y"));

                Asserts(selective);
            }
 public void AddFilter_OnAlreadyInclude_Success()
 {
     var harvester = new ProjectionHarvester();
     harvester.AddFilter<A>(x => null);
     harvester.AddFilter<A>(x => null);
 }