public async Task when_replicate() { var dbContextFactory = new DbContextFactory(); await SeedDataInDatabase(dbContextFactory, new CancellationToken()); try { var cancellationToken = new CancellationToken(_isReplicationCanceled); using (PluralsightContext dbContext = await dbContextFactory.Create(cancellationToken)) { var entityFactory = new EntityFactory(); var sut = new ChannelsReplicator(dbContext, entityFactory); _result = await sut.Replicate(_channelsToReplicate, cancellationToken); } } catch (Exception e) { if (_expectingException) { _exception = e; } else { throw; } } }
private async Task SeedDataInDatabase(DbContextFactory dbContextFactory, CancellationToken cancellationToken) { using (PluralsightContext dbContext = await dbContextFactory.Create(cancellationToken)) { await dbContext.Channels.AddRangeAsync(_channelsDbRecords, cancellationToken); await dbContext.SaveChangesAsync(cancellationToken); } }
public async Task <PluralsightContext> Create(CancellationToken cancellationToken) { var session = new Mock <ISession>(MockBehavior.Strict); session.Setup(_ => _.CurrentUser).Returns("in-memory-unit-test"); if (_dbContextOptions != null) { return(new PluralsightContext(_dbContextOptions, session.Object)); } _dbContextOptions = await CreateInMemoryContextOptions(cancellationToken); var context = new PluralsightContext(_dbContextOptions, session.Object); await context.Database.EnsureCreatedAsync(cancellationToken); return(context); }
public static ChannelsReplicator CreateChannelsReplicator(IConfiguration configuration) { string postgreSqlConnString = configuration.GetPostgreSqlConnString(); ILoggerFactory serilogFactory = new LoggerFactory().AddSerilog(); DbContextOptions <PluralsightContext> options = new DbContextOptionsBuilder <PluralsightContext>().UseNpgsql(postgreSqlConnString) .UseLoggerFactory(serilogFactory) .Options; var session = new WindowsSession(); var pluralsightContext = new PluralsightContext(options, session); var entityFactory = new EntityFactory(); return(new ChannelsReplicator(pluralsightContext, entityFactory)); }