Beispiel #1
0
        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;
                }
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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));
        }