public void Should_handle_TypeLoadException_and_find_1_event_listener() { // Arrange var log = new List<string>(); SecurityDoctor.Register(e => log.Add(e.Message)); var throwException = true; const string expectedExceptionMessage = "Could not load type X."; Func<Assembly, Type[]> assemblyTypeProvider = assembly => { if (throwException) { throwException = false; throw new TypeLoadException(expectedExceptionMessage); } return assembly.GetExportedTypes(); }; var scanner = new SecurityEventListenerScanner(true, assemblyTypeProvider); var assemblies = new List<Assembly> { GetType().Assembly, GetType().Assembly }; // Act var types = scanner.Scan(assemblies); // Assert Assert.That(types.Count(), Is.EqualTo(1)); Assert.That(log.Single(), Is.EqualTo(expectedExceptionMessage)); }
public void Should_find_1_event_listener() { // Arrange var scanner = new SecurityEventListenerScanner(); var assemblies = new List<Assembly> { GetType().Assembly }; // Act var types = scanner.Scan(assemblies); // Assert Assert.That(types.Count(), Is.EqualTo(1)); }