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()); }
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); }
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()); }
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()); }
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))); }
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()); }
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); }
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()); }