public void RegisterType_passes_constructor_selector([Frozen] ISelectsConstructor ctorSelector, RegistrationHelper sut) { // Act sut.RegisterType(typeof(SampleServiceImplementationOne)); // Assert var matchingReg = (TypeRegistration)sut.GetRegistrations().FirstOrDefault(x => x is TypeRegistration); Assert.That(matchingReg.ConstructorSelector, Is.SameAs(ctorSelector)); }
public void RegisterType_nongeneric_can_create_an_open_generic_type_registration(RegistrationHelper sut) { // Act sut.RegisterType(typeof(GenericService <>)); // Assert var registrations = sut.GetRegistrations(); Assert.That(registrations, Has.Some.InstanceOf <TypeRegistration>()); var matchingReg = registrations.FirstOrDefault(x => x is TypeRegistration); Assert.That(matchingReg.ServiceType, Is.EqualTo(typeof(GenericService <>))); }
public void RegisterType_generic_can_create_a_type_registration(RegistrationHelper sut) { // Act sut.RegisterType <SampleServiceImplementationOne>(); // Assert var registrations = sut.GetRegistrations(); Assert.That(registrations, Has.Some.InstanceOf <TypeRegistration>()); var matchingReg = registrations.FirstOrDefault(x => x is TypeRegistration); Assert.That(matchingReg.ServiceType, Is.EqualTo(typeof(SampleServiceImplementationOne))); }
public void RegisterFactory_can_create_a_generic_factory_registration(RegistrationHelper sut) { // Act sut.RegisterFactory(() => new SampleServiceImplementationOne()); // Assert var registrations = sut.GetRegistrations(); Assert.That(registrations, Has.Some.InstanceOf <FactoryRegistration <SampleServiceImplementationOne> >()); var matchingReg = registrations.FirstOrDefault(x => x is FactoryRegistration <SampleServiceImplementationOne>); Assert.That(matchingReg.ServiceType, Is.EqualTo(typeof(SampleServiceImplementationOne))); }
/// <summary> /// Adds new component registrations by use of a helper type. Registrations are added within a callback which /// uses functionality from the helper. /// </summary> /// <seealso cref="T:CSF.FlexDi.Builders.IRegistrationHelper" /> /// <param name="registrationActions">A callback which may use the functionality of the helper type.</param> public void AddRegistrations(Action <IRegistrationHelper> registrationActions) { if (registrationActions == null) { throw new ArgumentNullException(nameof(registrationActions)); } AssertNotDisposed(); var helper = new RegistrationHelper(constructorSelector); registrationActions(helper); AddRegistrations(helper.GetRegistrations()); }
public void RegisterInstance_uses_inferred_type(RegistrationHelper sut, SampleServiceImplementationOne instance) { // Act ISampleService regInstance = instance; sut.RegisterInstance(regInstance); // Assert var registrations = sut.GetRegistrations(); Assert.That(registrations, Has.Some.InstanceOf <InstanceRegistration>()); var matchingReg = registrations.FirstOrDefault(x => x is InstanceRegistration); Assert.That(matchingReg.ServiceType, Is.EqualTo(typeof(ISampleService))); }
public void RegisterFactoryAs_marks_the_registration_as_cacheable(IContainer innerContainer, RegistrationHelper registrationHelper) { // Arrange var sut = new ObjectContainerWithInnerContainerReplacementSupport(); sut.ReplaceInnerContainer(innerContainer); Mock.Get(innerContainer) .Setup(x => x.AddRegistrations(It.IsAny <Action <IRegistrationHelper> >())) .Callback((Action <IRegistrationHelper> action) => action(registrationHelper)); // Act sut.RegisterFactoryAs <ISampleService>(() => new SampleServiceImplementationOne()); // Assert var registration = registrationHelper.GetRegistrations().Single(); Assert.That(registration.Cacheable, Is.True); }