public void Test_GetTypes_ShouldNotReturnInterface()
        {
            //---------------Set up test pack-------------------
            AppDomainTypeSource typeSource = new AppDomainTypeSource();
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var bos = typeSource.GetTypes();

            //---------------Test Result -----------------------
            Assert.IsNotNull(bos);
            Assert.GreaterOrEqual(bos.Count(), 5);
            bos.ShouldContain(typeof(FakeBoShouldBeLoaded).ToTypeWrapper());
            bos.ShouldNotContain(typeof(IFakeBoInterfaceShouldNotBeLoaded).ToTypeWrapper(), "Interface should not be loaded");
        }
        public void Test_GetTypes_ShouldReturnAllTypesImplementingIBoInterface()
        {
            //---------------Set up test pack-------------------
            AppDomainTypeSource typeSource = new AppDomainTypeSource();
            var expectedBos = TypesImplementingInterface <IBusinessObject>();
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var bos = typeSource.GetTypes();

            //---------------Test Result -----------------------
            Assert.IsNotNull(bos);
            bos.ItemsShouldBeEqual(expectedBos);
        }
        public void TestAccept_Validate_WhenAllClassDefsLoaded_ShouldBeTrue()
        {
            //---------------Set up test pack-------------------
            Func <TypeWrapper, bool> whereClause = type
                                                   => (type.Namespace == "Habanero.Smooth.Test.ValidFakeBOs");
            AppDomainTypeSource  source = new AppDomainTypeSource(whereClause);
            AllClassesAutoMapper allClassesAutoMapper = new AllClassesAutoMapper(source);
            ClassDefCol          classDefCol          = allClassesAutoMapper.Map();
            ClassDefValidator    validator            = new ClassDefValidator(new DefClassFactory());

            //---------------Assert Precondition----------------
            Assert.Greater(classDefCol.Count, 0);
            //---------------Execute Test ----------------------
            validator.ValidateClassDefs(classDefCol);
            //---------------Test Result -----------------------
            Assert.IsNotNull(classDefCol);
            //Should Validate without Error if it gets here then it has validated
        }
        public void Test_GetTypes_WhenHasWhereClause_ShouldReturnItemsMatchingWhereClause()
        {
            //---------------Set up test pack-------------------
            TypeWrapper boToBeExcluded           = typeof(FakeBOTwoPropsAttributePK).ToTypeWrapper();
            Func <TypeWrapper, bool> whereClause = type => type.Name != boToBeExcluded.Name;
            AppDomainTypeSource      typeSource  = new AppDomainTypeSource(whereClause);
            var expectedBos = TypesImplementingInterface <IBusinessObject>().Where(whereClause);

            //---------------Assert Precondition----------------
            expectedBos.ShouldNotContain(boToBeExcluded);
            //---------------Execute Test ----------------------
            var bos = typeSource.GetTypes();

            //---------------Test Result -----------------------
            Assert.IsNotNull(bos);
            bos.ItemsShouldBeEqual(expectedBos);
            bos.ShouldNotContain(wrapper => wrapper.Name == boToBeExcluded.Name);
        }
 public void TestAccept_Validate_WhenAllClassDefsLoaded_ShouldBeTrue()
 {
     //---------------Set up test pack-------------------
     Func<TypeWrapper, bool> whereClause = type
             => (type.Namespace == "Habanero.Smooth.Test.ValidFakeBOs");
     AppDomainTypeSource source = new AppDomainTypeSource(whereClause);
     AllClassesAutoMapper allClassesAutoMapper = new AllClassesAutoMapper(source);
     ClassDefCol classDefCol = allClassesAutoMapper.Map();
     ClassDefValidator validator = new ClassDefValidator(new DefClassFactory());
     //---------------Assert Precondition----------------
     Assert.Greater(classDefCol.Count, 0);
     //---------------Execute Test ----------------------
     validator.ValidateClassDefs(classDefCol);
     //---------------Test Result -----------------------
     Assert.IsNotNull(classDefCol);
     //Should Validate without Error if it gets here then it has validated
 }