protected Type CreateGeneratedTypeWithoutMixins(Type targetType)
 {
     using (MixinConfiguration.BuildNew().ForClass(targetType).Clear().EnterScope())
     {
         return(TypeGenerationHelper.ForceTypeGeneration(targetType));
     }
 }
 protected T CreateGeneratedTypeInstanceWithoutMixins <T> ()
 {
     using (MixinConfiguration.BuildNew().ForClass <T>().Clear().EnterScope())
     {
         return(TypeGenerationHelper.ForceTypeGenerationAndCreateInstance <T>());
     }
 }
        public void FindMixedTypes_NoMixedTypes()
        {
            var generatedType            = TypeGenerationHelper.ForceTypeGeneration(typeof(object));
            var typeDiscoveryServiceStub = CreateTypeDiscoveryServiceStub(generatedType);

            var finder = new MixedTypeFinder(typeDiscoveryServiceStub);
            var result = finder.FindMixedTypes(_configuration).ToArray();

            Assert.That(result, Is.Empty);
        }
Esempio n. 4
0
        public void FilterExcludesGeneratedAssemblies()
        {
            var service =
                (AssemblyFinderTypeDiscoveryService)
                PrivateInvoke.InvokeNonPublicStaticMethod(typeof(DeclarativeConfigurationBuilder), "GetTypeDiscoveryService");

            var assemblyFinder = GetAssemblyFinder(service);
            var filter         = ((FilteringAssemblyLoader)assemblyFinder.AssemblyLoader).Filter;

            Assembly generatedAssembly = TypeGenerationHelper.ForceTypeGeneration(typeof(object)).Assembly;

            Assert.That(filter.ShouldConsiderAssembly(generatedAssembly.GetName()), Is.False);
        }
Esempio n. 5
0
        public void BuildDefault_DoesNotLockPersistedFile()
        {
            TypeGenerationHelper.ForceTypeGeneration(typeof(object));
            string[] paths = TypeGenerationHelper.Pipeline.CodeManager.FlushCodeToDisk();

            try
            {
                DeclarativeConfigurationBuilder.BuildDefaultConfiguration();
            }
            finally
            {
                var path = paths[0];
                File.Delete(path);
                File.Delete(path.Replace(".dll", ".pdb"));
            }
        }