public void Discover_throws_TypeDiscoveryException_on_registrar_error() { using (var container = new UnityContainer()) { void RegistrationAction(IUnityContainer c) => throw new Exception("Failed!"); container.RegisterInstance((Action <IUnityContainer>)RegistrationAction); var discoverer = new IocRegistrarTypeDiscoverer(); Assert.That( () => discoverer.Discover(container), Throws.Exception.TypeOf <TypeDiscoveryException>()); } }
public void Discover_runs_and_resolves_the_CallTrackingRegistrar_Register_method() { using (var container = new UnityContainer()) { var callCount = 0; void RegistrationAction(IUnityContainer c) => callCount++; container.RegisterInstance((Action <IUnityContainer>)RegistrationAction); var discoverer = new IocRegistrarTypeDiscoverer(); discoverer.Discover(container); Assert.That(CallTrackingRegistrar.RegisterCallCount, Is.GreaterThan(0)); } }
public void Discover_runs_and_resolves_the_ActionInvokingRegistrar_Register_method() { using (var container = new UnityContainer()) { var callCount = 0; void RegistrationAction(IUnityContainer c) { callCount++; c.RegisterType <TestingNestedClass>(); } container.RegisterInstance((Action <IUnityContainer>)RegistrationAction); var discoverer = new IocRegistrarTypeDiscoverer(); discoverer.Discover(container); Assert.That(callCount, Is.EqualTo(1)); Assert.That( container.Registrations.Any(r => r.RegisteredType == typeof(TestingNestedClass)), Is.True, $"Expected the registration action to be called and have registered the {typeof(TestingNestedClass).FullName} type."); } }