mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
data int test wip
This commit is contained in:
parent
b74dcdd956
commit
abb1149aec
6 changed files with 39 additions and 15 deletions
|
|
@ -1,3 +1,5 @@
|
|||
# For running pre-build instances of all modules from Hub
|
||||
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
|
|
|
|||
23
docker-compose.tests.data.yml
Normal file
23
docker-compose.tests.data.yml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# For running data integration tests in FilterLists.Data.Tests
|
||||
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
api:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: src/FilterLists.Api/Dockerfile
|
||||
target: test-data
|
||||
depends_on:
|
||||
- mariadb
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: filterlists
|
||||
command:
|
||||
[
|
||||
"mysqld",
|
||||
"--character-set-server=utf8mb4",
|
||||
"--collation-server=utf8mb4_unicode_520_ci"
|
||||
]
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
# For building and running all modules
|
||||
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
|
|
@ -17,6 +19,7 @@ services:
|
|||
build:
|
||||
context: .
|
||||
dockerfile: src/FilterLists.Web/Dockerfile
|
||||
target: final
|
||||
networks:
|
||||
- reverse-proxy
|
||||
depends_on:
|
||||
|
|
@ -28,6 +31,7 @@ services:
|
|||
build:
|
||||
context: .
|
||||
dockerfile: src/FilterLists.Api/Dockerfile
|
||||
target: final
|
||||
networks:
|
||||
- reverse-proxy
|
||||
- api
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ COPY src/FilterLists.Data/. ./FilterLists.Data/
|
|||
COPY src/FilterLists.Services/. ./FilterLists.Services/
|
||||
WORKDIR /src/FilterLists.Api/
|
||||
COPY src/FilterLists.Api/. ./
|
||||
RUN dotnet publish -c Release -o out --no-restore
|
||||
RUN dotnet build -c Release --no-restore
|
||||
RUN dotnet publish -c Release -o out --no-restore --no-build
|
||||
|
||||
# build data tests
|
||||
FROM build AS test-data
|
||||
|
|
@ -34,6 +35,7 @@ COPY tests/FilterLists.Data.Tests/FilterLists.Data.Tests.csproj ./
|
|||
RUN dotnet restore
|
||||
COPY tests/FilterLists.Data.Tests/. ./
|
||||
RUN dotnet build -c Release --no-restore
|
||||
COPY data/. ./data/
|
||||
ENTRYPOINT ["dotnet", "test"]
|
||||
|
||||
# build services tests
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\src\FilterLists.Api\FilterLists.Api.csproj" />
|
||||
<ProjectReference Include="..\..\src\FilterLists.Data\FilterLists.Data.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using FilterLists.Data.Seed.Extensions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
|
@ -8,35 +9,26 @@ namespace FilterLists.Data.Tests
|
|||
{
|
||||
public class SeedFilterListsDbContextTests
|
||||
{
|
||||
private const string CiTestServerConnString = "Server=localhost;Uid=travis;";
|
||||
private const string CiTestDatabaseConnString = CiTestServerConnString + "Database=filterlistsdatatest;";
|
||||
|
||||
/// <summary>
|
||||
/// requires "CREATE USER 'travis'@'localhost';" on non-Travis mysql instance
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public async void SeedOrUpdateAsync_DoesNotThrowException()
|
||||
{
|
||||
var connString = "Server=mariadb;Database=filterlists;Uid=root;Pwd=filterlists;";
|
||||
var options = new DbContextOptionsBuilder<FilterListsDbContext>()
|
||||
.UseMySql(CiTestDatabaseConnString, m => m.MigrationsAssembly("FilterLists.Api"))
|
||||
.UseMySql(connString, m => m.MigrationsAssembly("FilterLists.Api"))
|
||||
.Options;
|
||||
using (var context = new FilterListsDbContext(options))
|
||||
{
|
||||
await context.Database.EnsureDeletedAsync();
|
||||
using (var conn = new MySqlConnection(CiTestServerConnString))
|
||||
using (var conn = new MySqlConnection(connString))
|
||||
{
|
||||
await conn.OpenAsync();
|
||||
var cmd = new MySqlCommand(
|
||||
"CREATE DATABASE filterlistsdatatest CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;",
|
||||
"CREATE DATABASE filterlists CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;",
|
||||
conn);
|
||||
await cmd.ExecuteNonQueryAsync();
|
||||
}
|
||||
|
||||
await context.Database.MigrateAsync();
|
||||
if (Directory.Exists("../../../../../data"))
|
||||
await SeedFilterListsDbContext.SeedOrUpdateAsync(context, "../../../../../data");
|
||||
else
|
||||
await SeedFilterListsDbContext.SeedOrUpdateAsync(context, "../../../../../../../../data");
|
||||
await SeedFilterListsDbContext.SeedOrUpdateAsync(context, "../../../data");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue