Skip to content

Commit

Permalink
Switch to using SQL Server instead of SQLite in the tests (#242)
Browse files Browse the repository at this point in the history
More fully-featured, e.g. TPC creates a sequence by convention.
  • Loading branch information
roji authored Jan 3, 2024
1 parent 636259d commit 884929c
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 15 deletions.
2 changes: 1 addition & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.6" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="$(EFCoreVersion)" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(EFCoreVersion)" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(EFCoreVersion)" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Specification.Tests" Version="$(EFCoreVersion)" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="$(MicrosoftExtensionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsVersion)" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<PackageReference Include="xunit.runner.visualstudio" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Specification.Tests" />
<PackageReference Include="Microsoft.Extensions.Configuration" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
Expand Down
14 changes: 9 additions & 5 deletions EFCore.NamingConventions.Test/NameRewritingConventionTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure;
using Microsoft.EntityFrameworkCore.Sqlite.Diagnostics.Internal;
using Microsoft.EntityFrameworkCore.SqlServer.Diagnostics.Internal;
using Microsoft.EntityFrameworkCore.TestUtilities;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
Expand Down Expand Up @@ -334,6 +334,10 @@ public void TPC()
var childStoreObjectIdentifier = StoreObjectIdentifier.Create(childEntityType, StoreObjectType.Table)!.Value;
Assert.Equal("PK_parent", primaryKey.GetName(parentStoreObjectIdentifier));
Assert.Equal("PK_child", primaryKey.GetName(childStoreObjectIdentifier));

// We don't currently rewrite the name of the sequence added by convention, #13
var sequence = Assert.Single(model.GetSequences());
Assert.Equal("ParentSequence", sequence.Name);
}

[Fact]
Expand Down Expand Up @@ -635,14 +639,14 @@ private IEntityType BuildEntityType(Action<ModelBuilder> builderAction, CultureI

private IModel BuildModel(Action<ModelBuilder> builderAction, CultureInfo? culture = null)
{
var conventionSet = SqliteTestHelpers
var conventionSet = SqlServerTestHelpers
.Instance
.CreateContextServices()
.GetRequiredService<IConventionSetBuilder>()
.CreateConventionSet();

var optionsBuilder = new DbContextOptionsBuilder();
SqliteTestHelpers.Instance.UseProviderOptions(optionsBuilder);
SqlServerTestHelpers.Instance.UseProviderOptions(optionsBuilder);
optionsBuilder.UseSnakeCaseNamingConvention(culture);
var plugin = new NamingConventionSetPlugin(optionsBuilder.Options);
plugin.ModifyConventions(conventionSet);
Expand All @@ -651,11 +655,11 @@ private IModel BuildModel(Action<ModelBuilder> builderAction, CultureInfo? cultu
builderAction(modelBuilder);
var model = modelBuilder.FinalizeModel();

var contextServices = SqliteTestHelpers.Instance.CreateContextServices();
var contextServices = SqlServerTestHelpers.Instance.CreateContextServices();
var modelRuntimeInitializer = contextServices.GetRequiredService<IModelRuntimeInitializer>();

model = modelRuntimeInitializer.Initialize(
model, designTime: false, new TestLogger<DbLoggerCategory.Model.Validation, SqliteLoggingDefinitions>());
model, designTime: false, new TestLogger<DbLoggerCategory.Model.Validation, SqlServerLoggingDefinitions>());

return model;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
using Microsoft.Data.Sqlite;
using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.EntityFrameworkCore.Sqlite.Diagnostics.Internal;
using Microsoft.EntityFrameworkCore.SqlServer.Diagnostics.Internal;
using Microsoft.Extensions.DependencyInjection;

// ReSharper disable once CheckNamespace
namespace Microsoft.EntityFrameworkCore.TestUtilities;

public class SqliteTestHelpers : TestHelpers
public class SqlServerTestHelpers : TestHelpers
{
protected SqliteTestHelpers()
protected SqlServerTestHelpers()
{
}

public static SqliteTestHelpers Instance { get; } = new();
public static SqlServerTestHelpers Instance { get; } = new();

public override IServiceCollection AddProviderServices(IServiceCollection services)
=> services.AddEntityFrameworkSqlite();
=> services.AddEntityFrameworkSqlServer();

public override DbContextOptionsBuilder UseProviderOptions(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseSqlite(new SqliteConnection("Data Source=:memory:"));
=> optionsBuilder.UseSqlServer(new SqlConnection("Data Source=foo"));

#pragma warning disable EF1001
public override LoggingDefinitions LoggingDefinitions { get; } = new SqliteLoggingDefinitions();
public override LoggingDefinitions LoggingDefinitions { get; } = new SqlServerLoggingDefinitions();
#pragma warning restore EF1001
}

0 comments on commit 884929c

Please sign in to comment.