Example #1
0
        public void InjectUsesArgBindings()
        {
            var test = new InjectTestClass();

            Assert.Null(test.Longs);
            _kernel.Inject(test);
            Assert.Equal(null, test.String);
            Assert.Equal(0, test.Long);
            Assert.NotNull(test.Longs);
            Assert.Equal(0, test.Longs.Count);

            _kernel.Bind <long>().ToConstant(5);
            _kernel.Inject(test);
            Assert.Equal(null, test.String);
            Assert.Equal(5, test.Long);
            Assert.NotNull(test.Longs);
            Assert.True(test.Longs.SequenceEqual(new long[] { 5 }));

            var argKernel = _kernel.Get <IGetKernel>(BindArg.Typed("test"));

            argKernel.Inject(test);
            Assert.Equal("test", test.String);
            Assert.Equal(5, test.Long);
            Assert.NotNull(test.Longs);
            Assert.True(test.Longs.SequenceEqual(new long[] { 5 }));
        }
Example #2
0
        public void InjectUpgradesMethodWhenNewBindingAvailable()
        {
            var test = new InjectTestClass();

            Assert.Null(test.Longs);
            _kernel.Inject(test);
            Assert.Equal(null, test.String);
            Assert.Equal(0, test.Long);
            Assert.NotNull(test.Longs);
            Assert.Equal(0, test.Longs.Count);

            _kernel.Bind <long>().ToConstant(5);
            _kernel.Inject(test);
            Assert.Equal(null, test.String);
            Assert.Equal(5, test.Long);
            Assert.NotNull(test.Longs);
            Assert.True(test.Longs.SequenceEqual(new long[] { 5 }));

            _kernel.Bind <string>().ToConstant("test");
            _kernel.Inject(test);
            Assert.Equal("test", test.String);
            Assert.Equal(5, test.Long);
            Assert.NotNull(test.Longs);
            Assert.True(test.Longs.SequenceEqual(new long[] { 5 }));
        }
Example #3
0
        public void CanInjectNonGetObject()
        {
            var test = new InjectTestClass();

            Assert.Null(test.Longs);
            _kernel.Inject(test);
            Assert.NotNull(test.Longs);
            Assert.Equal(0, test.Longs.Count);
            Assert.Equal(0, test.Long);
            Assert.Equal(null, test.String);
        }
Example #4
0
        public void InjectUsesBestMethod()
        {
            _kernel.Bind <long>().ToConstant(5);
            var test = new InjectTestClass();

            Assert.Null(test.Longs);
            _kernel.Inject(test);
            Assert.Equal(null, test.String);
            Assert.Equal(5, test.Long);
            Assert.NotNull(test.Longs);
            Assert.True(test.Longs.SequenceEqual(new long[] { 5 }));
        }
Example #5
0
        public void InjectUsesBinding()
        {
            var list = new List <long>()
            {
                1, 2, 3, 4
            };

            _kernel.Bind <List <long> >().ToConstant(list);
            var test = new InjectTestClass();

            Assert.Null(test.Longs);
            _kernel.Inject(test);
            Assert.True(ReferenceEquals(test.Longs, list));
            Assert.Equal(0, test.Long);
            Assert.Equal(null, test.String);
        }
Example #6
0
        public void InjectGetsAlways()
        {
            _kernel.Bind <long>().ToConstant(5);
            var test = new InjectTestClass();

            Assert.Null(test.Longs);
            _kernel.Inject(test);
            Assert.Equal(null, test.String);
            Assert.Equal(5, test.Long);
            Assert.NotNull(test.Longs);
            Assert.True(test.Longs.SequenceEqual(new long[] { 5 }));

            _kernel.Bind <long>().ToConstant(10);
            _kernel.Inject(test);
            Assert.Equal(null, test.String);
            Assert.Equal(10, test.Long);
            Assert.Equal(2, test.Longs.Count);
            Assert.True(new HashSet <long> {
                5, 10
            }.SetEquals(test.Longs));
        }