示例#1
0
        public void TestDirectInheritanceAcrossAssemblyBoundariesIsIdentifiedByIsSubclassOf()
        {
            var testDir = TestContext.CurrentContext.TestDirectory;

            var scanner = AssemblyScanner.Create(testDir + "/Assets");

            scanner.Scan();

            var assemblies = scanner.Assemblies;

            var lib = from assembly
                      in assemblies
                      where assembly.Name == "CleanIoc.Sample.Library"
                      select assembly;

            var simpleRegistryQuery = from type
                                      in lib.FirstOrDefault().TypeDefinitions
                                      where type.Name == "MySimpleRegistry"
                                      select type;

            var core = from assembly
                       in assemblies
                       where assembly.Name == "CleanIoc.Core"
                       select assembly;

            var registryQuery = from definition
                                in core.FirstOrDefault().TypeDefinitions
                                where definition.Name == "Registry"
                                select definition;

            var simpleRegistry = simpleRegistryQuery.FirstOrDefault();
            var registry       = registryQuery.FirstOrDefault();

            Assert.That(simpleRegistry.IsSubclassOf(registry));
        }
示例#2
0
        public void TestThatMySimpleRegistryImplementsIRegistry()
        {
            var testDir = TestContext.CurrentContext.TestDirectory;

            var scanner = AssemblyScanner.Create(testDir + "/Assets");

            scanner.Scan();

            var assemblies = scanner.Assemblies;

            var core = from assembly
                       in assemblies
                       where assembly.Name == "CleanIoc.Core"
                       select assembly;

            var iregistryQuery = from definition
                                 in core.FirstOrDefault().TypeDefinitions
                                 where definition.Name == "IRegistry"
                                 select definition;

            var iregistry = iregistryQuery.FirstOrDefault();

            var lib = from assembly
                      in assemblies
                      where assembly.Name == "CleanIoc.Sample.Library"
                      select assembly;

            var simpleRegistry = from type
                                 in lib.FirstOrDefault().TypeDefinitions
                                 where type.Name == "MySimpleRegistry"
                                 select type;

            Assert.That(simpleRegistry.FirstOrDefault(), Is.Not.Null);
            Assert.That(simpleRegistry.FirstOrDefault().ImplementsInterface(iregistry));
        }
示例#3
0
        public void TestThatRegistryImplementsIRegistry()
        {
            var testDir = TestContext.CurrentContext.TestDirectory;

            var scanner = AssemblyScanner.Create(testDir + "/Assets");

            scanner.Scan();

            var assemblies = scanner.Assemblies;

            var core = from assembly
                       in assemblies
                       where assembly.Name == "CleanIoc.Core"
                       select assembly;

            var definitions = core.FirstOrDefault().TypeDefinitions;

            Assert.That(definitions, Is.Not.Empty);

            var registryQuery = from definition
                                in definitions
                                where definition.Name == "Registry"
                                select definition;

            var registry = registryQuery.FirstOrDefault();

            Assert.That(registry, Is.Not.Null);

            var implementations = from implementation
                                  in registry.InterfaceImplementations
                                  where implementation.Name == "IRegistry"
                                  select implementation;

            Assert.That(implementations.FirstOrDefault(), Is.Not.Null);
        }
示例#4
0
        public void TestThatIRegistryShouldBeMarkedAsAnInterface()
        {
            var testDir = TestContext.CurrentContext.TestDirectory;

            var scanner = AssemblyScanner.Create(testDir + "/Assets");

            scanner.Scan();

            var assemblies = scanner.Assemblies;

            var core = from assembly
                       in assemblies
                       where assembly.Name == "CleanIoc.Core"
                       select assembly;

            var definitions = core.FirstOrDefault().TypeDefinitions;

            Assert.That(definitions, Is.Not.Empty);

            var iregistryQuery = from definition
                                 in definitions
                                 where definition.Name == "IRegistry"
                                 select definition;

            var iregistry = iregistryQuery.FirstOrDefault();

            Assert.That(iregistry, Is.Not.Null);
            Assert.That(iregistry.IsInterface);
        }
示例#5
0
        public void TestScannerFindsSomeAssemblies()
        {
            var dir = TestContext.CurrentContext.TestDirectory;

            var scanner = AssemblyScanner.Create(dir + "/Assets");

            scanner.Scan();

            var assemblies = scanner.Assemblies;

            Assert.That(assemblies, Is.Not.Null);
            Assert.That(assemblies, Has.Count.EqualTo(4));
        }
示例#6
0
        public void Load()
        {
            var scanner = AssemblyScanner.Create(basePath);

            scanner.Scan();

            var assemblies = from assembly
                             in scanner.Assemblies
                             where (from type
                                    in assembly.TypeDefinitions
                                    where type.MatchesReflectionType(typeof(IRegistry))
                                    select type).Any()
                             select assembly;

            foreach (var assembly in assemblies)
            {
                Assembly.LoadFrom(assembly.FilePath);
            }
        }
示例#7
0
        public void TestDummyAssemblyContainsSomeAssemblyReferences()
        {
            var testDir = TestContext.CurrentContext.TestDirectory;

            var scanner = AssemblyScanner.Create(testDir + "/Assets");

            scanner.Scan();

            var assemblies = scanner.Assemblies;

            var core = from assembly
                       in assemblies
                       where assembly.Name == "CleanIoc.Core"
                       select assembly;

            var references = core.FirstOrDefault().AssemblyReferences;

            Assert.That(references, Is.Not.Null);
            Assert.That(references, Is.Not.Empty);
        }
示例#8
0
        public void TestScannerFindsTheDummyAssembly()
        {
            var testDir = TestContext.CurrentContext.TestDirectory;

            var scanner = AssemblyScanner.Create(testDir + "/Assets");

            scanner.Scan();

            var assemblies = scanner.Assemblies;

            Assert.That(assemblies, Is.Not.Null);
            Assert.That(assemblies, Has.Count.EqualTo(4));

            var core = from assembly
                       in assemblies
                       where assembly.Name == "CleanIoc.Core"
                       select assembly;

            Assert.That(core.FirstOrDefault(), Is.Not.Null);
        }