예제 #1
0
        public IDisposable SeedData(SuiteDbContext data)
        {
            var persons = Fixture.Build <Person>().FromFactory(() =>
            {
                var p = new Person("Name");
                p.RegisterAddress(Fixture.Create <Address>());
                return(p);
            }).CreateMany <Person>(100).ToList();

            data.Set <Person>().AddRange(persons);
            data.SaveChanges();
            return(new CleanupResource(data));
        }
예제 #2
0
        public void Initialise(HttpConfiguration config)
        {
            var builder = new ContainerBuilder();

            //Controller
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            //builder.RegisterControllers(Assembly.GetExecutingAssembly());

            //builder.RegisterFilterProvider();
            builder.Register <SuiteDbContext>(b =>
            {
                var context = new SuiteDbContext();
                return(context);
            }).InstancePerLifetimeScope();

            //Repository
            builder.RegisterAssemblyTypes(Assembly.Load("SuiteSolution.Core")).
            Where(_ => _.Name.EndsWith("Repository")).
            AsImplementedInterfaces().
            InstancePerLifetimeScope();

            builder.RegisterGeneric(typeof(GenericRepository <>)).As(typeof(IGenericRepository <>)).InstancePerDependency();

            //Service
            builder.RegisterAssemblyTypes(Assembly.Load("SuiteSolution.Service")).
            Where(_ => _.Name.EndsWith("Service")).
            AsImplementedInterfaces().
            InstancePerLifetimeScope();
            builder.RegisterGeneric(typeof(Service <,>)).As(typeof(IService <>)).InstancePerDependency();
            //builder.RegisterType<ProductExportService>().As<IProductExportService>().InstancePerRequest();

            //builder.RegisterType<TestService>().As<ITestService>().InstancePerRequest();



            var container = builder.Build();

            var resolver = new AutofacWebApiDependencyResolver(container);

            // Set the dependency resolver for Web API.
            GlobalConfiguration.Configuration.DependencyResolver = resolver;

            // Set MVC DI resolver to use our Autofac container
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            //config.DependencyResolver = resolver;
        }
예제 #3
0
        protected TestWithSqlite(ITestOutputHelper testOutputHelper)
        {
            _testOutputHelper = testOutputHelper;
            _fixture          = new Fixture();
            _fixture.Behaviors.Add(new OmitOnRecursionBehavior());
            _fixture.Customize(new AutoMoqCustomization());

            var optionsBuilder = new DbContextOptionsBuilder <SuiteDbContext>();

            _connection = new SqliteConnection(_connectionString);
            _connection.Open();
            var dbContextOptions = optionsBuilder.UseSqlite(_connection)
                                   .UseLoggerFactory(new LoggerFactory(new[] { new UnitTestLoggerProvider(_testOutputHelper) }))
                                   .EnableSensitiveDataLogging()
                                   .Options;

            SuiteDbContext = new SuiteDbContext(dbContextOptions);
            SuiteDbContext.ChangeTracker.QueryTrackingBehavior    = QueryTrackingBehavior.NoTracking;
            SuiteDbContext.ChangeTracker.AutoDetectChangesEnabled = false;
            SuiteDbContext.Database.EnsureCreated();
        }
예제 #4
0
 public CleanupResource(SuiteDbContext dbContext)
 {
     _dbContext = dbContext;
 }