Skip to content

Commit

Permalink
Removes the DbContext specimen builder (#25)
Browse files Browse the repository at this point in the history
* Removes the DbContext specimen builder

* Adds custom dbcontext constructor tests for sqlite customization
  • Loading branch information
aivascu committed Mar 8, 2020
1 parent e06885f commit f818139
Show file tree
Hide file tree
Showing 9 changed files with 98 additions and 215 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace EntityFrameworkCore.AutoFixture.Tests.Common.Persistence
{
public class TestConfigurationOptions
{
public string SomeValue { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using EntityFrameworkCore.AutoFixture.Tests.Common.Persistence.Configuration;
using EntityFrameworkCore.AutoFixture.Tests.Common.Persistence.Entities;
using Microsoft.EntityFrameworkCore;

namespace EntityFrameworkCore.AutoFixture.Tests.Common.Persistence
{
public class TestCustomDbContext : DbContext
{
public TestCustomDbContext()
{
}

public TestCustomDbContext(
DbContextOptions<TestCustomDbContext> options,
ConfigurationOptions configurationOptions)
: base(options)
{
this.ConfigurationOptions = configurationOptions;
}

public ConfigurationOptions ConfigurationOptions { get; }

public DbSet<Customer> Customers { get; set; }
public DbSet<Item> Items { get; set; }
public DbSet<Order> Orders { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfiguration(new CustomerConfiguration());
modelBuilder.ApplyConfiguration(new ItemConfiguration());
modelBuilder.ApplyConfiguration(new OrderConfiguration());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,14 @@ public TestDbContext(DbContextOptions<TestDbContext> options)

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfiguration(new CustomerConfiguration());
modelBuilder.ApplyConfiguration(new ItemConfiguration());
modelBuilder.ApplyConfiguration(new OrderConfiguration());
}
}

public class ConfigurationOptions
{
public string SomeValue { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,6 @@ namespace EntityFrameworkCore.AutoFixture.Tests.Core
{
public class DbContextCustomizationTests
{
[Theory]
[AutoData]
public void Customize_ShouldAddContextBuilderToFixture(
Fixture fixture,
DbContextCustomization customization)
{
fixture.Customize(customization);

fixture.Customizations.Should()
.ContainSingle(x => x.GetType() == typeof(DbContextSpecimenBuilder));
}

[Theory]
[AutoData]
public void Customize_ShouldAddOptionsBuilderToFixture(
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Threading.Tasks;
using AutoFixture;
using AutoFixture.Kernel;
using AutoFixture.Xunit2;
using EntityFrameworkCore.AutoFixture.InMemory;
using EntityFrameworkCore.AutoFixture.Tests.Common.Attributes;
Expand All @@ -15,9 +16,17 @@ public class InMemoryCustomizationTests
{
[Theory]
[AutoData]
public void SaveChanges_ShouldCreateCustomerRecord(Fixture fixture, InMemoryContextCustomization customization)
public void SaveChanges_ShouldCreateCustomerRecord(
InMemoryContextCustomization customization,
Fixture fixture)
{
fixture.Customize(customization);
fixture.Customize(
new CompositeCustomization(
customization,
new ConstructorCustomization(
typeof(TestDbContext),
new GreedyConstructorQuery())));

using var context = fixture.Create<TestDbContext>();
context.Database.EnsureCreated();

Expand All @@ -29,7 +38,7 @@ public void SaveChanges_ShouldCreateCustomerRecord(Fixture fixture, InMemoryCont

[Theory]
[AutoDomainDataWithInMemoryContext]
public async Task SaveChangesAsync_ShouldCreateCustomerRecord(TestDbContext context)
public async Task SaveChangesAsync_ShouldCreateCustomerRecord([Greedy] TestDbContext context)
{
using (context)
{
Expand All @@ -44,11 +53,13 @@ public async Task SaveChangesAsync_ShouldCreateCustomerRecord(TestDbContext cont

[Theory]
[AutoData]
public void Customize_ShouldAddOptionsBuilderToFixture(Fixture fixture, InMemoryContextCustomization customization)
public void Customize_ShouldAddOptionsBuilderToFixture(InMemoryContextCustomization customization,
Fixture fixture)
{
fixture.Customize(customization);

fixture.Customizations.Should().ContainSingle(x => x.GetType() == typeof(InMemoryOptionsSpecimenBuilder));
fixture.Customizations.Should()
.ContainSingle(x => x.GetType() == typeof(InMemoryOptionsSpecimenBuilder));
}

[Theory]
Expand All @@ -59,5 +70,21 @@ public void Customize_ForNullFixture_ShouldThrow(InMemoryContextCustomization cu

act.Should().ThrowExactly<ArgumentNullException>();
}

[Theory]
[AutoDomainDataWithInMemoryContext]
public void Customize_ForCustomDbContext_ShouldReturnContextInstance([Greedy] TestCustomDbContext context)
{
context.Should().NotBeNull()
.And.BeOfType<TestCustomDbContext>();
}

[Theory]
[AutoDomainDataWithInMemoryContext]
public void Customize_ForCustomDbContext_ProvideValueForOtherParameters(
[Greedy] TestCustomDbContext context)
{
context.ConfigurationOptions.Should().NotBeNull();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@ public class SqliteCustomizationTests
{
[Theory]
[AutoDomainDataWithSqliteContext]
public void Customize_ShouldProvideSqliteContext([Frozen] SqliteConnection connection, TestDbContext context, Item item, Customer customer)
public void Customize_ShouldProvideSqliteContext(
[Frozen] SqliteConnection connection,
[Greedy] TestDbContext context,
Item item, Customer customer)
{
using (connection)
using (context)
Expand Down Expand Up @@ -60,5 +63,21 @@ public void Customize_ForNullFixture_ShouldThrow(SqliteContextCustomization cust

act.Should().ThrowExactly<ArgumentNullException>();
}

[Theory]
[AutoDomainDataWithSqliteContext]
public void Customize_ForCustomDbContext_ShouldReturnContextInstance([Greedy] TestCustomDbContext context)
{
context.Should().NotBeNull()
.And.BeOfType<TestCustomDbContext>();
}

[Theory]
[AutoDomainDataWithSqliteContext]
public void Customize_ForCustomDbContext_ProvideValueForOtherParameters(
[Greedy] TestCustomDbContext context)
{
context.ConfigurationOptions.Should().NotBeNull();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ public virtual void Customize(IFixture fixture)
throw new ArgumentNullException(nameof(fixture));
}

fixture.Customizations.Add(new DbContextSpecimenBuilder());
fixture.Customizations.Add(new DbContextOptionsSpecimenBuilder());
}
}
Expand Down

This file was deleted.

0 comments on commit f818139

Please sign in to comment.