Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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 <>)));
        }
Esempio n. 3
0
        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)));
        }
Esempio n. 4
0
        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)));
        }
Esempio n. 5
0
        /// <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());
        }
Esempio n. 6
0
        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)));
        }
Esempio n. 7
0
        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);
        }