Beispiel #1
0
        public async Task Regularly_ShouldDisposeScope(Overload overload)
        {
            var accessor = new AmbientDbContextAccessor <TestDbContext>();

            Assert.Null(DbContextScope <TestDbContext> .CurrentOrDefault);
            Assert.Throws <InvalidOperationException>(() => accessor.CurrentDbContext);

            await this.Execute(overload, this.Provider, async (scope, ct) =>
            {
                if (this.IsAsync(overload))
                {
                    await Task.Delay(TimeSpan.FromTicks(1));
                }

                return(true);
            });

            Assert.Null(DbContextScope <TestDbContext> .CurrentOrDefault);
            Assert.Throws <InvalidOperationException>(() => accessor.CurrentDbContext);
        }
Beispiel #2
0
        public async Task Regularly_ShouldCreateScope(Overload overload)
        {
            var accessor = new AmbientDbContextAccessor <TestDbContext>();

            await this.Execute(overload, this.Provider, async (scope, ct) =>
            {
                Assert.NotNull(DbContextScope <TestDbContext> .CurrentOrDefault);
                Assert.Equal(DbContextScope <TestDbContext> .CurrentDbContext, accessor.CurrentDbContext);

                if (this.IsAsync(overload))
                {
                    await Task.Delay(TimeSpan.FromTicks(1));
                }

                Assert.NotNull(DbContextScope <TestDbContext> .CurrentOrDefault);
                Assert.Equal(DbContextScope <TestDbContext> .CurrentDbContext, accessor.CurrentDbContext);

                return(true);
            });
        }