コード例 #1
0
        public ApiTestDatabaseFixture()
        {
            var options = new DbContextOptionsBuilder <MyBeerAppContext>()
                          .UseInMemoryDatabase(databaseName: "in-mem-api-test-database")
                          .Options;

            var dbContext = new MyBeerAppContext(options);

            dbContext.Beers.AddRange(BeerData.Beers);
            dbContext.SaveChanges();

            var server = new TestServer(new WebHostBuilder()
                                        .UseEnvironment(EnvironmentName.Development)
                                        .ConfigureTestServices((IServiceCollection serviceCollection) =>
            {
                // Use stubbed database for integration tests
                serviceCollection.AddScoped <MyBeerAppContext>(x => dbContext);
                serviceCollection.AddScoped <IRepository <Beer>, EfRepository <Beer> >();
            })
                                        .UseStartup <MyBeerApp.Api.Startup>());

            var client = server.CreateClient();

            Api = RestService.For <IApiDefinition>(client);
        }
コード例 #2
0
        internal static IApiDefinition GetApiDefinition()
        {
            if (_foundDefinition != null)
            {
                return(_foundDefinition);
            }

            foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
            {
                var foundType = asm.GetTypes().FirstOrDefault(x => typeof(IApiDefinition).IsAssignableFrom(x) && x.IsClass);
                if (foundType != null)
                {
                    try
                    {
                        _foundDefinition = (IApiDefinition)Activator.CreateInstance(foundType);
                        return(_foundDefinition);
                    }
                    catch (Exception)
                    {
                        throw new InvalidOperationException($"Found {foundType.Name} as the API definiion, but it lacks empty constructor");
                    }
                }
            }
            throw new InvalidOperationException("Unable to find any type implementing IApiDefinition");
        }
コード例 #3
0
        public static IDictionary <string, FunctionIntrospection> Generation(IApiDefinition apiDefinition)
        {
            var builder = new Functions(apiDefinition.GetType().Namespace);

            apiDefinition.Build(builder);

            return(builder._introspection);
        }
コード例 #4
0
 public ImageDownloaderFactory(IApiDefinition apiDefinition, IServiceProvider serviceProvider)
 {
     ApiDefinition   = apiDefinition;
     ServiceProvider = serviceProvider;
 }
コード例 #5
0
 public ZeroMqNotificationReader(IApiDefinition apiDefinition)
 {
     _host = apiDefinition.Host;
     _port = apiDefinition.ZeroMqPort;
 }
コード例 #6
0
 public WlItemsRepository(Container container, IApiDefinition apiDefinition)
 {
     Container     = container;
     ApiDefinition = apiDefinition;
 }