public void NextInjectedViaProperty()
        {
            var api   = new TestApiB();
            var value = api.Context.GetApiService <ISomeService>().Call();

            Assert.Equal("01", value);

            // Test expression compilation.
            value = api.Context.GetApiService <ISomeService>().Call();
            Assert.Equal("01", value);
        }
Example #2
0
        public void ConfigurationRegistersApiServicesCorrectly()
        {
            var api = new TestApiA();

            Assert.Null(api.Context.GetApiService <IServiceA>());
            Assert.Null(api.Context.GetApiService <IServiceB>());

            var apiB = new TestApiB();

            Assert.Same(apiB.serviceA, apiB.Context.GetApiService <IServiceA>());

            var serviceBInstance  = apiB.Context.GetApiService <ServiceB>();
            var serviceBInterface = apiB.Context.GetApiService <IServiceB>();

            Assert.Equal(serviceBInstance, serviceBInterface);

            // AddService will call services.TryAddTransient
            Assert.Same(serviceBInstance, serviceBInterface);

            var serviceBFirst = serviceBInterface as ServiceB;

            Assert.NotNull(serviceBFirst);
            Assert.Same(apiB.serviceB, serviceBFirst.InnerHandler);
        }