Ejemplo n.º 1
0
        public void Test_IsInjectedInto_Creates_Same_Injection_As_InjectedInto()
        {
            Sample    s = new Sample();
            const int i = 10;

            IBinding <ISample> sampleBinding = from value in LindiMethods.Bind <ISample>()
                                               select s;

            IBinding <int> intBinding = from value in LindiMethods.Bind <int>()
                                        select i;

            IInjectValuesInto <INeedSampleAndInt> injector = LindiMethods.Inject()
                                                             .Where(value => LindiMethods.InjectedInto(value) as INeedSampleAndInt)
                                                             .Select(value =>
            {
                value.Sample = sampleBinding.Resolve();
                value.Int    = intBinding.Resolve();
            });

            IInjectValuesInto <INeedSampleAndInt> otherInjector = LindiMethods.Inject()
                                                                  .Where(value => LindiMethods.IsInjectedInto <INeedSampleAndInt>())
                                                                  .Select(value =>
            {
                value.Sample = sampleBinding.Resolve();
                value.Int    = intBinding.Resolve();
            });

            Assert.Same(injector.GetType(), otherInjector.GetType());
        }
Ejemplo n.º 2
0
        public void Test_Multiple_Values_Are_Able_To_Be_Injected()
        {
            Sample    s = new Sample();
            const int i = 10;

            IBinding <ISample> sampleBinding = from value in LindiMethods.Bind <ISample>()
                                               select s;

            IBinding <int> intBinding = from value in LindiMethods.Bind <int>()
                                        select i;

            IInjectValuesInto <INeedSampleAndInt> injector = LindiMethods.Inject()
                                                             .Where(value => LindiMethods.InjectedInto(value) as INeedSampleAndInt)
                                                             .Select(value =>
            {
                value.Sample = sampleBinding.Resolve();
                value.Int    = intBinding.Resolve();
            });

            NeedSample needsSample = new NeedSample();

            injector.Inject(needsSample);

            Assert.Same(s, needsSample.Sample);
            Assert.Equal(i, needsSample.Int);
        }
Ejemplo n.º 3
0
        public async void Test_Binding_Is_Awaitable()
        {
            var binding = from value in LindiMethods.Bind <ISample>()
                          select new Sample();

            var v = await binding;

            Assert.NotNull(v);
            Assert.IsType <Sample>(v);
        }
Ejemplo n.º 4
0
        public void Test_Where_Without_Select_Returns_Incomplete_Injection()
        {
            Sample s = new Sample();

            IInjectValuesInto <INeedSample> binding = LindiMethods.Inject()
                                                      .Where(v => LindiMethods.InjectedInto(v) as INeedSample);
            NeedSample needSample = new NeedSample();

            Assert.Throws <BindingResolutionException>(() =>
            {
                binding.Inject(needSample);
            });
        }
Ejemplo n.º 5
0
        public void Test_Where_Is_Able_To_Inject_Values_Into_Type()
        {
            Sample             s             = new Sample();
            IBinding <ISample> sampleBinding = from value in LindiMethods.Bind <ISample>()
                                               select s;

            IInjectValuesInto <INeedSample> binding = LindiMethods.Inject()
                                                      .Where(v => LindiMethods.InjectedInto(v) as INeedSample)
                                                      .Select(value =>
            {
                value.Sample = sampleBinding.Resolve();
            });

            NeedSample needSample = new NeedSample();

            binding.Inject(needSample);

            Assert.Same(s, needSample.Sample);
        }