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); }
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); }