Exemple #1
0
        public void CanGetRegistrarTypesWithEmptyAssembliesCollection()
        {
            var sweeper = new ServiceLocationAssemblyScanner();

            Assert.IsFalse(sweeper.HasNewAssemblies);

            var types = sweeper.GetRegistrarTypes().ToList();

            Assert.IsFalse(sweeper.HasNewAssemblies);

            Assert.AreEqual(0, types.Count());
        }
Exemple #2
0
        public void CanAddNewAssembly()
        {
            var sweeper    = new ServiceLocationAssemblyScanner();
            var assemblies = AppDomain.CurrentDomain.GetAssemblies().ToList();
            var temp       = assemblies.First();

            Assert.IsFalse(sweeper.HasNewAssemblies);

            sweeper.AddAssembly(temp);

            Assert.IsTrue(sweeper.HasNewAssemblies);
            Assert.AreEqual(1, sweeper._assemblies.Count);
        }
Exemple #3
0
        public void NoNewRegistrarsIfNoNewAssemblies()
        {
            bool getRegistrarsCalled = false;
            var  sweeper             = new ServiceLocationAssemblyScanner();

            sweeper.GetRegistrarTypes = () => { getRegistrarsCalled = false;
                                                return(new List <Type>()); };

            var regs = sweeper.GetRegistrars();

            Assert.IsFalse(getRegistrarsCalled);
            Assert.AreEqual(0, regs.Count());
        }
Exemple #4
0
        public void CanGetOnlyRegistrars()
        {
            var sweeper    = new ServiceLocationAssemblyScanner();
            var assemblies = AppDomain.CurrentDomain.GetAssemblies().ToList();

            assemblies.Remove(this.GetType().Assembly);
            assemblies.ForEach(sweeper.AddAssembly);
            Assert.IsTrue(sweeper.HasNewAssemblies);

            var registrars = sweeper.GetRegistrars();

            Assert.IsFalse(sweeper.HasNewAssemblies);
            Assert.AreEqual(1, registrars.Count());
        }
Exemple #5
0
        public void CanGetRegistrarTypes()
        {
            var sweeper = new ServiceLocationAssemblyScanner();

            Assert.IsFalse(sweeper.HasNewAssemblies);

            sweeper.AddAssembly(this.GetType().Assembly);
            Assert.IsTrue(sweeper.HasNewAssemblies);

            var types = sweeper.GetRegistrarTypes().ToList();

            Assert.IsTrue(sweeper.HasNewAssemblies);
            Assert.AreEqual(2, types.Count());
            Assert.IsTrue(types.Contains(typeof(TestRegistrar)));
            Assert.IsTrue(types.Contains(typeof(OtherTestRegistrar)));
        }
Exemple #6
0
        public void CanGetRegistrarTypesWithAssemblyThatHasNoRegistrars()
        {
            var sweeper = new ServiceLocationAssemblyScanner();

            Assert.IsFalse(sweeper.HasNewAssemblies);
            var assemblies = AppDomain.CurrentDomain.GetAssemblies().ToList();
            var temp       = assemblies.First();

            sweeper.AddAssembly(temp);
            Assert.IsTrue(sweeper.HasNewAssemblies);

            var types = sweeper.GetRegistrarTypes().ToList();

            Assert.IsTrue(sweeper.HasNewAssemblies);

            Assert.AreEqual(0, types.Count());
        }
Exemple #7
0
        public void NewRegistrarsIfNewAssembliesPresent()
        {
            bool getRegistrarsCalled = false;
            var  sweeper             = new ServiceLocationAssemblyScanner();

            sweeper.HasNewAssemblies  = true;
            sweeper.GetRegistrarTypes = () =>
            {
                getRegistrarsCalled = true;
                return(new List <Type>()
                {
                    typeof(TestRegistrar)
                });
            };

            var regs = sweeper.GetRegistrars().ToList();

            Assert.IsTrue(getRegistrarsCalled);
            Assert.AreEqual(1, regs.Count());
            Assert.IsTrue(regs.First() is TestRegistrar);
        }
Exemple #8
0
        public void ExistingRegistrarIsOverwritenWhenNewAssemblyFoundThatContainsIt()
        {
            bool getRegistrarsCalled = false;
            var  sweeper             = new ServiceLocationAssemblyScanner();

            sweeper._registrars.Add(typeof(TestRegistrar));
            sweeper.HasNewAssemblies  = true;
            sweeper.GetRegistrarTypes = () =>
            {
                getRegistrarsCalled = true;
                return(new List <Type>()
                {
                    typeof(TestRegistrar)
                });
            };

            var regs = sweeper.GetRegistrars().ToList();

            Assert.IsTrue(getRegistrarsCalled);
            Assert.AreEqual(1, regs.Count());
            Assert.IsTrue(regs.First() is TestRegistrar);
            Assert.AreEqual(1, sweeper._registrars.Count);
            Assert.AreEqual(typeof(TestRegistrar), sweeper._registrars.First());
        }