Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="services"></param>
        /// <param name="builderAction"></param>
        /// <returns></returns>
        public static IServiceCollection AddScorpioDbContext <TDbContext>(this IServiceCollection services,
                                                                          Action <IScorpioDbContextOptionsBuilder <TDbContext> > builderAction)
            where TDbContext : ScorpioDbContext <TDbContext>
        {
            services.AddMemoryCache().AddLogging();
            var options = new ScorpioDbContextOptionsBuilder <TDbContext>(services);

            builderAction?.Invoke(options);
            services.TryAddTransient(serviceProvider => DbContextOptionsFactory.Create(serviceProvider, options));
            services.AddTransient <DbContextOptions>(p => p.GetRequiredService <DbContextOptions <TDbContext> >());
            services.AddTransient <TDbContext>();
            new EfCoreRepositoryRegistrar <TDbContext>(options).RegisterRepositories();
            return(services);
        }
Exemple #2
0
        public async Task Write_Should_Save_Employee(Employee employee)
        {
            var options = DbContextOptionsFactory.Create(nameof(Write_Should_Save_Employee));

            using (var context = new EmployeeManagerContext(options))
            {
                var sut = new EmployeeWriter(context);

                await sut.Write(employee);
            }

            using (var context = new EmployeeManagerContext(options))
            {
                var employeeStoraged = await context.Employees.FindAsync(employee.Id);

                employeeStoraged.Should().NotBeNull();
            }
        }
Exemple #3
0
        public async Task Remove_Should_Delete_Employee(Employee employee)
        {
            var options = DbContextOptionsFactory.Create(nameof(Remove_Should_Delete_Employee));

            using (var context = new EmployeeManagerContext(options))
            {
                context.Add(employee);
                await context.SaveChangesAsync();
            }

            using (var context = new EmployeeManagerContext(options))
            {
                var sut = new EmployeeWriter(context);

                await sut.Remove(employee);

                employee.DeletedAt.Should().NotBeNull();
            }
        }
Exemple #4
0
        public async Task Any_When_EmailAddress_Exists_Should_Return_True(
            Employee employee)
        {
            var options = DbContextOptionsFactory.Create(nameof(Any_When_EmailAddress_Exists_Should_Return_True));

            using (var context = new EmployeeManagerContext(options))
            {
                context.Add(employee);
                await context.SaveChangesAsync();
            }

            using (var context = new EmployeeManagerContext(options))
            {
                var sut = new EmployeeReader(context);

                var actual = await sut.Any(employee.Email.Address);

                actual.Should().BeTrue();
            }
        }
Exemple #5
0
        public async Task Read_When_EmployeeId_Exists_Should_Return_Employee(Employee employee)
        {
            var options = DbContextOptionsFactory.Create(nameof(Read_When_EmployeeId_Exists_Should_Return_Employee));

            using (var context = new EmployeeManagerContext(options))
            {
                context.Add(employee);
                await context.SaveChangesAsync();
            }

            using (var context = new EmployeeManagerContext(options))
            {
                var sut = new EmployeeReader(context);

                var actual = await sut.Read(employee.Id);

                actual.Should().NotBeNull();
                actual.Value.Id.Should().Be(employee.Id);
            }
        }
Exemple #6
0
        public async Task Any_When_EmailAddress_Does_Not_Exist_Should_Return_False(
            Employee employee,
            string someEmployeeEmail)
        {
            var options = DbContextOptionsFactory.Create(nameof(Any_When_EmailAddress_Does_Not_Exist_Should_Return_False));

            using (var context = new EmployeeManagerContext(options))
            {
                context.Add(employee);
                await context.SaveChangesAsync();
            }

            using (var context = new EmployeeManagerContext(options))
            {
                var sut = new EmployeeReader(context);

                var actual = await sut.Any(someEmployeeEmail);

                actual.Should().BeFalse();
            }
        }
Exemple #7
0
        public async Task Read_When_EmployeeId_Does_Not_Exist_Should_Return_Maybe_None(
            Employee employee,
            int someEmployeeId)
        {
            var options = DbContextOptionsFactory.Create(nameof(Read_When_EmployeeId_Does_Not_Exist_Should_Return_Maybe_None));

            using (var context = new EmployeeManagerContext(options))
            {
                context.Add(employee);
                await context.SaveChangesAsync();
            }

            using (var context = new EmployeeManagerContext(options))
            {
                var sut = new EmployeeReader(context);

                var actual = await sut.Read(someEmployeeId);

                actual.Should().Be(Maybe <Employee> .None);
            }
        }
Exemple #8
0
        public async Task Read_Should_Paginated_Employees(List <Employee> employees)
        {
            const int pageIndex = 1;
            const int pageSize  = 1;

            var options = DbContextOptionsFactory.Create(nameof(Read_Should_Paginated_Employees));

            using (var context = new EmployeeManagerContext(options))
            {
                context.AddRange(employees);
                await context.SaveChangesAsync();
            }

            using (var context = new EmployeeManagerContext(options))
            {
                var sut = new EmployeeReader(context);

                var actual = await sut.Read(pageIndex, pageSize);

                actual.Count.Should().Be(pageSize);
            }
        }
Exemple #9
0
 public TestCreationDbContext CreateDbContext(string[] args)
 {
     return(new TestCreationDbContext(DbContextOptionsFactory.Create <TestCreationDbContext>()));
 }
Exemple #10
0
 public UserManagementDbContext CreateDbContext(string[] args)
 {
     return(new UserManagementDbContext(DbContextOptionsFactory.Create <UserManagementDbContext>()));
 }