diff --git a/.travis.yml b/.travis.yml
index 234e836e7e..b8a1d74643 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,7 +6,7 @@ services:
before_script:
- psql -c 'create database JsonApiDotNetCoreExample;' -U postgres
mono: none
-dotnet: 1.0.4 # https://www.microsoft.com/net/download/linux
+dotnet: 2.0.3 # https://www.microsoft.com/net/download/linux
branches:
only:
- master
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 725d8335be..09ab6390d4 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -6,7 +6,7 @@
"isShellCommand": true,
"args": [],
"options": {
- "cwd": "${workspaceRoot}/src/Examples/JsonApiDotNetCoreExample"
+ "cwd": "${workspaceRoot}/src/JsonApiDotNetCore"
},
"tasks": [
{
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000000..d3e19546db
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,26 @@
+
+
+
+ netstandard2.0
+ 2.0.1
+ 2.0.1
+ 2.0.0
+ 2.0.0
+ 4.4.0
+
+
+
+
+ netcoreapp2.0
+ 2.0.0
+ 2.0.0
+ 3.2.6
+ 2.0.1
+ 15.3.0-preview-20170427-09
+ 1.1.2
+ 2.3.0-beta3-build3705
+ 15.0.3
+ 4.7.99
+
+
+
\ No newline at end of file
diff --git a/JsonApiDotnetCore.sln b/JsonApiDotnetCore.sln
index b4ff89b0aa..a144223671 100644
--- a/JsonApiDotnetCore.sln
+++ b/JsonApiDotnetCore.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26228.9
+VisualStudioVersion = 15.0.26730.10
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JsonApiDotNetCore", "src\JsonApiDotNetCore\JsonApiDotNetCore.csproj", "{C0EC9E70-EB2E-436F-9D94-FA16FA774123}"
EndProject
@@ -18,15 +18,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
README.md = README.md
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NoEntityFrameworkExample", "src\Examples\NoEntityFrameworkExample\NoEntityFrameworkExample.csproj", "{570165EC-62B5-4684-A139-8D2A30DD4475}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoEntityFrameworkExample", "src\Examples\NoEntityFrameworkExample\NoEntityFrameworkExample.csproj", "{570165EC-62B5-4684-A139-8D2A30DD4475}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NoEntityFrameworkTests", "test\NoEntityFrameworkTests\NoEntityFrameworkTests.csproj", "{73DA578D-A63F-4956-83ED-6D7102E09140}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoEntityFrameworkTests", "test\NoEntityFrameworkTests\NoEntityFrameworkTests.csproj", "{73DA578D-A63F-4956-83ED-6D7102E09140}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "test\UnitTests\UnitTests.csproj", "{6D4BD85A-A262-44C6-8572-FE3A30410BF3}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests", "test\UnitTests\UnitTests.csproj", "{6D4BD85A-A262-44C6-8572-FE3A30410BF3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{026FBC6C-AF76-4568-9B87-EC73457899FD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReportsExample", "src\Examples\ReportsExample\ReportsExample.csproj", "{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReportsExample", "src\Examples\ReportsExample\ReportsExample.csproj", "{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -88,28 +88,28 @@ Global
{73DA578D-A63F-4956-83ED-6D7102E09140}.Release|x86.Build.0 = Release|Any CPU
{6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|x64.ActiveCfg = Debug|x64
- {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|x64.Build.0 = Debug|x64
- {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|x86.ActiveCfg = Debug|x86
- {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|x86.Build.0 = Debug|x86
+ {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|x64.Build.0 = Debug|Any CPU
+ {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Debug|x86.Build.0 = Debug|Any CPU
{6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|Any CPU.Build.0 = Release|Any CPU
- {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x64.ActiveCfg = Release|x64
- {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x64.Build.0 = Release|x64
- {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x86.ActiveCfg = Release|x86
- {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x86.Build.0 = Release|x86
+ {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x64.ActiveCfg = Release|Any CPU
+ {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x64.Build.0 = Release|Any CPU
+ {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x86.ActiveCfg = Release|Any CPU
+ {6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x86.Build.0 = Release|Any CPU
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x64.ActiveCfg = Debug|x64
- {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x64.Build.0 = Debug|x64
- {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x86.ActiveCfg = Debug|x86
- {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x86.Build.0 = Debug|x86
+ {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x64.Build.0 = Debug|Any CPU
+ {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x86.Build.0 = Debug|Any CPU
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|Any CPU.Build.0 = Release|Any CPU
- {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x64.ActiveCfg = Release|x64
- {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x64.Build.0 = Release|x64
- {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x86.ActiveCfg = Release|x86
- {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x86.Build.0 = Release|x86
+ {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x64.ActiveCfg = Release|Any CPU
+ {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x64.Build.0 = Release|Any CPU
+ {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x86.ActiveCfg = Release|Any CPU
+ {FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -124,4 +124,7 @@ Global
{026FBC6C-AF76-4568-9B87-EC73457899FD} = {7A2B7ADD-ECB5-4D00-AA6A-D45BD11C97CF}
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D} = {026FBC6C-AF76-4568-9B87-EC73457899FD}
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {A2421882-8F0A-4905-928F-B550B192F9A4}
+ EndGlobalSection
EndGlobal
diff --git a/src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj b/src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj
index 03ac91d4ae..dcbf2a2841 100755
--- a/src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj
+++ b/src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj
@@ -1,13 +1,11 @@
- netcoreapp1.0
+ $(NetCoreAppVersion)
true
JsonApiDotNetCoreExample
Exe
JsonApiDotNetCoreExample
- 1.1.1
- $(PackageTargetFallback);dotnet5.6;portable-net45+win8
@@ -15,23 +13,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/src/Examples/JsonApiDotNetCoreExample/Program.cs b/src/Examples/JsonApiDotNetCoreExample/Program.cs
index 16f0ad10a1..e4e3fe355e 100644
--- a/src/Examples/JsonApiDotNetCoreExample/Program.cs
+++ b/src/Examples/JsonApiDotNetCoreExample/Program.cs
@@ -1,6 +1,5 @@
-using System.IO;
+using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
-using Microsoft.Extensions.Configuration;
namespace JsonApiDotNetCoreExample
{
@@ -8,19 +7,12 @@ public class Program
{
public static void Main(string[] args)
{
- var config = new ConfigurationBuilder()
- .AddCommandLine(args)
- .AddEnvironmentVariables(prefix: "ASPNETCORE_")
- .Build();
+ BuildWebHost(args).Run();
+ }
- var host = new WebHostBuilder()
- .UseConfiguration(config)
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
+ public static IWebHost BuildWebHost(string[] args) =>
+ WebHost.CreateDefaultBuilder(args)
.UseStartup()
.Build();
-
- host.Run();
- }
}
}
diff --git a/src/Examples/JsonApiDotNetCoreExample/Startup.cs b/src/Examples/JsonApiDotNetCoreExample/Startup.cs
index 4a4f591967..1388004a55 100644
--- a/src/Examples/JsonApiDotNetCoreExample/Startup.cs
+++ b/src/Examples/JsonApiDotNetCoreExample/Startup.cs
@@ -6,8 +6,6 @@
using JsonApiDotNetCoreExample.Data;
using Microsoft.EntityFrameworkCore;
using JsonApiDotNetCore.Extensions;
-using DotNetCoreDocs.Configuration;
-using DotNetCoreDocs.Middleware;
using System;
namespace JsonApiDotNetCoreExample
@@ -20,7 +18,7 @@ public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
- .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
@@ -30,8 +28,7 @@ public Startup(IHostingEnvironment env)
public virtual IServiceProvider ConfigureServices(IServiceCollection services)
{
var loggerFactory = new LoggerFactory();
- loggerFactory
- .AddConsole(LogLevel.Trace);
+ loggerFactory.AddConsole(LogLevel.Trace);
services.AddSingleton(loggerFactory);
services.AddDbContext(options =>
@@ -46,8 +43,6 @@ public virtual IServiceProvider ConfigureServices(IServiceCollection services)
opt.IncludeTotalRecordCount = true;
});
- services.AddDocumentationConfiguration(Config);
-
var provider = services.BuildServiceProvider();
var appContext = provider.GetRequiredService();
if(appContext == null)
@@ -67,14 +62,9 @@ public virtual void Configure(
loggerFactory.AddConsole(Config.GetSection("Logging"));
loggerFactory.AddDebug();
- app.UseDocs();
-
app.UseJsonApi();
}
- public string GetDbConnectionString()
- {
- return Config["Data:DefaultConnection"];
- }
+ public string GetDbConnectionString() => Config["Data:DefaultConnection"];
}
}
\ No newline at end of file
diff --git a/src/Examples/JsonApiDotNetCoreExample/appsettings.json b/src/Examples/JsonApiDotNetCoreExample/appsettings.json
index bd84450b47..ceb4a1ed73 100755
--- a/src/Examples/JsonApiDotNetCoreExample/appsettings.json
+++ b/src/Examples/JsonApiDotNetCoreExample/appsettings.json
@@ -1,6 +1,7 @@
{
"Data": {
- "DefaultConnection": "Host=localhost;Port=5432;Database=JsonApiDotNetCoreExample;User ID=postgres;Password=password"
+ "DefaultConnection":
+ "Host=localhost;Port=5432;Database=JsonApiDotNetCoreExample;User ID=postgres;Password=password"
},
"Logging": {
"IncludeScopes": false,
@@ -9,10 +10,5 @@
"System": "Trace",
"Microsoft": "Trace"
}
- },
- "DocsConfiguration": {
- "BaseAddress": "http://localhost:5000",
- "RequestsDirectory": "../../src/JsonApiDotNetCoreExample/_data",
- "DocumentationRoute": "/docs"
}
}
diff --git a/src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj b/src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj
index f2e6d5ec82..afaf0e7cff 100755
--- a/src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj
+++ b/src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj
@@ -1,9 +1,7 @@
- netcoreapp1.0
- 1.1.1
- $(PackageTargetFallback);dotnet5.6;portable-net45+win8
+ $(NetCoreAppVersion)
@@ -16,11 +14,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/Examples/NoEntityFrameworkExample/Program.cs b/src/Examples/NoEntityFrameworkExample/Program.cs
index 5606e8e9f4..76f3020c52 100755
--- a/src/Examples/NoEntityFrameworkExample/Program.cs
+++ b/src/Examples/NoEntityFrameworkExample/Program.cs
@@ -1,4 +1,4 @@
-using System.IO;
+using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
namespace NoEntityFrameworkExample
@@ -7,14 +7,12 @@ public class Program
{
public static void Main(string[] args)
{
- var host = new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIISIntegration()
+ BuildWebHost(args).Run();
+ }
+
+ public static IWebHost BuildWebHost(string[] args) =>
+ WebHost.CreateDefaultBuilder(args)
.UseStartup()
.Build();
-
- host.Run();
- }
}
}
diff --git a/src/Examples/NoEntityFrameworkExample/Startup.cs b/src/Examples/NoEntityFrameworkExample/Startup.cs
index fdea4fc582..81f743aa5f 100755
--- a/src/Examples/NoEntityFrameworkExample/Startup.cs
+++ b/src/Examples/NoEntityFrameworkExample/Startup.cs
@@ -18,7 +18,7 @@ public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
- .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
+ .AddJsonFile("appsettings.json", optional: false, reloadOnChange: false)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
diff --git a/src/Examples/ReportsExample/Program.cs b/src/Examples/ReportsExample/Program.cs
index 41d4c37780..f3ce6c81b0 100644
--- a/src/Examples/ReportsExample/Program.cs
+++ b/src/Examples/ReportsExample/Program.cs
@@ -1,4 +1,4 @@
-using System.IO;
+using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
namespace ReportsExample
@@ -7,14 +7,12 @@ public class Program
{
public static void Main(string[] args)
{
- var host = new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIISIntegration()
+ BuildWebHost(args).Run();
+ }
+
+ public static IWebHost BuildWebHost(string[] args) =>
+ WebHost.CreateDefaultBuilder(args)
.UseStartup()
.Build();
-
- host.Run();
- }
}
}
diff --git a/src/Examples/ReportsExample/Properties/launchSettings.json b/src/Examples/ReportsExample/Properties/launchSettings.json
new file mode 100644
index 0000000000..2b84e5d5e8
--- /dev/null
+++ b/src/Examples/ReportsExample/Properties/launchSettings.json
@@ -0,0 +1,27 @@
+{
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:55653/",
+ "sslPort": 0
+ }
+ },
+ "profiles": {
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "ReportsExample": {
+ "commandName": "Project",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ },
+ "applicationUrl": "http://localhost:55654/"
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Examples/ReportsExample/ReportsExample.csproj b/src/Examples/ReportsExample/ReportsExample.csproj
index f50935681a..2131c545a4 100644
--- a/src/Examples/ReportsExample/ReportsExample.csproj
+++ b/src/Examples/ReportsExample/ReportsExample.csproj
@@ -1,9 +1,7 @@
- netcoreapp1.0
- 1.1.1
- $(PackageTargetFallback);dotnet5.6;portable-net45+win8
+ $(NetCoreAppVersion)
@@ -15,11 +13,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/Examples/ReportsExample/Startup.cs b/src/Examples/ReportsExample/Startup.cs
index 39d740da84..fed3707789 100644
--- a/src/Examples/ReportsExample/Startup.cs
+++ b/src/Examples/ReportsExample/Startup.cs
@@ -21,7 +21,7 @@ public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
- .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
diff --git a/src/JsonApiDotNetCore/Internal/JsonApiRouteHandler.cs b/src/JsonApiDotNetCore/Internal/JsonApiRouteHandler.cs
index 3099959ef6..6675fc2879 100644
--- a/src/JsonApiDotNetCore/Internal/JsonApiRouteHandler.cs
+++ b/src/JsonApiDotNetCore/Internal/JsonApiRouteHandler.cs
@@ -51,13 +51,13 @@ public Task RouteAsync(RouteContext context)
var candidates = _actionSelector.SelectCandidates(context);
if (candidates == null || candidates.Count == 0)
{
- return TaskCache.CompletedTask;
+ return Task.CompletedTask;
}
var actionDescriptor = _actionSelector.SelectBestCandidate(context, candidates);
if (actionDescriptor == null)
{
- return TaskCache.CompletedTask;
+ return Task.CompletedTask;
}
context.Handler = (c) =>
@@ -78,7 +78,7 @@ public Task RouteAsync(RouteContext context)
return invoker.InvokeAsync();
};
- return TaskCache.CompletedTask;
+ return Task.CompletedTask;
}
}
}
diff --git a/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj b/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj
index c2a21cb7f1..9ebddb4512 100755
--- a/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj
+++ b/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj
@@ -1,10 +1,9 @@
- 2.1.10
- netstandard1.6
+ 2.2.0
+ $(NetStandardVersion)
JsonApiDotNetCore
JsonApiDotNetCore
- $(PackageTargetFallback);dnxcore50;portable-net45+win8
jsonapi;dotnet core;emberjs;ember
@@ -15,10 +14,10 @@
https://github.com/json-api-dotnet/JsonApiDotNetCore
-
-
-
-
-
+
+
+
+
+
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/CamelCasedModelsControllerTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/CamelCasedModelsControllerTests.cs
index f41c5941b8..b76293adba 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/CamelCasedModelsControllerTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/CamelCasedModelsControllerTests.cs
@@ -4,29 +4,27 @@
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
+using JsonApiDotNetCore.Serialization;
+using JsonApiDotNetCore.Services;
using JsonApiDotNetCoreExample;
using JsonApiDotNetCoreExample.Data;
using JsonApiDotNetCoreExample.Models;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.TestHost;
using Newtonsoft.Json;
using Xunit;
-using JsonApiDotNetCore.Services;
-using JsonApiDotNetCore.Serialization;
-using Microsoft.AspNetCore.TestHost;
-using Microsoft.AspNetCore.Hosting;
namespace JsonApiDotNetCoreExampleTests.Acceptance
{
[Collection("WebHostCollection")]
public class CamelCasedModelsControllerTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private AppDbContext _context;
private IJsonApiContext _jsonApiContext;
private Faker _faker;
- public CamelCasedModelsControllerTests(DocsFixture fixture)
+ public CamelCasedModelsControllerTests(TestFixture fixture)
{
_fixture = fixture;
_context = fixture.GetService();
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/CustomControllerTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/CustomControllerTests.cs
index 2d1c5623e3..9b28ee48de 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/CustomControllerTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/CustomControllerTests.cs
@@ -2,16 +2,14 @@
using System.Net.Http;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.TestHost;
-using Xunit;
using JsonApiDotNetCoreExample;
using JsonApiDotNetCoreExample.Data;
using JsonApiDotNetCoreExample.Models;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.TestHost;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
+using Xunit;
using Person = JsonApiDotNetCoreExample.Models.Person;
namespace JsonApiDotNetCoreExampleTests.Acceptance.Extensibility
@@ -19,11 +17,11 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Extensibility
[Collection("WebHostCollection")]
public class CustomControllerTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private Faker _todoItemFaker;
private Faker _personFaker;
- public CustomControllerTests(DocsFixture fixture)
+ public CustomControllerTests(TestFixture fixture)
{
_fixture = fixture;
_todoItemFaker = new Faker()
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/RepositoryOverrideTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/RepositoryOverrideTests.cs
index 847d6eefff..2813151ad3 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/RepositoryOverrideTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/RepositoryOverrideTests.cs
@@ -1,27 +1,25 @@
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.TestHost;
-using Xunit;
-using JsonApiDotNetCoreExample.Data;
-using JsonApiDotNetCoreExampleTests.Startups;
-using JsonApiDotNetCoreExample.Models;
-using JsonApiDotNetCoreExampleTests.Services;
using JsonApiDotNetCore.Serialization;
using JsonApiDotNetCore.Services;
-using DotNetCoreDocs;
using JsonApiDotNetCoreExample;
-using DotNetCoreDocs.Writers;
+using JsonApiDotNetCoreExample.Data;
+using JsonApiDotNetCoreExample.Models;
+using JsonApiDotNetCoreExampleTests.Services;
+using JsonApiDotNetCoreExampleTests.Startups;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.TestHost;
+using Xunit;
namespace JsonApiDotNetCoreExampleTests.Acceptance.Extensibility
{
[Collection("WebHostCollection")]
public class RepositoryOverrideTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
- public RepositoryOverrideTests(DocsFixture fixture)
+ public RepositoryOverrideTests(TestFixture fixture)
{
_fixture = fixture;
}
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/RequestMetaTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/RequestMetaTests.cs
index bc017fa3dc..9420ea6891 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/RequestMetaTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Extensibility/RequestMetaTests.cs
@@ -5,9 +5,7 @@
using Microsoft.AspNetCore.TestHost;
using Xunit;
using JsonApiDotNetCoreExample.Models;
-using DotNetCoreDocs;
using JsonApiDotNetCoreExample;
-using DotNetCoreDocs.Writers;
using Newtonsoft.Json;
using JsonApiDotNetCore.Models;
using System.Collections;
@@ -18,9 +16,9 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Extensibility
[Collection("WebHostCollection")]
public class RequestMetaTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
- public RequestMetaTests(DocsFixture fixture)
+ public RequestMetaTests(TestFixture fixture)
{
_fixture = fixture;
}
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/AttributeFilterTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/AttributeFilterTests.cs
index 42c3f0b1f1..740a61193c 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/AttributeFilterTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/AttributeFilterTests.cs
@@ -1,31 +1,29 @@
-using System.Net;
+using System.Linq;
+using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
+using Bogus;
+using JsonApiDotNetCore.Models;
+using JsonApiDotNetCore.Serialization;
using JsonApiDotNetCoreExample;
+using JsonApiDotNetCoreExample.Data;
+using JsonApiDotNetCoreExample.Models;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
+using Newtonsoft.Json;
using Xunit;
-using JsonApiDotNetCoreExample.Data;
-using Bogus;
-using JsonApiDotNetCoreExample.Models;
-using JsonApiDotNetCore.Serialization;
-using System.Linq;
using Person = JsonApiDotNetCoreExample.Models.Person;
-using Newtonsoft.Json;
-using JsonApiDotNetCore.Models;
namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
{
[Collection("WebHostCollection")]
public class AttributeFilterTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private Faker _todoItemFaker;
private readonly Faker _personFaker;
- public AttributeFilterTests(DocsFixture fixture)
+ public AttributeFilterTests(TestFixture fixture)
{
_fixture = fixture;
_todoItemFaker = new Faker()
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/ContentNegotiation.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/ContentNegotiation.cs
index 8fba782c8c..8f76735ee9 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/ContentNegotiation.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/ContentNegotiation.cs
@@ -2,9 +2,6 @@
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Models;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCoreExample;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
@@ -15,8 +12,8 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
[Collection("WebHostCollection")]
public class ContentNegotiation
{
- private DocsFixture _fixture;
- public ContentNegotiation(DocsFixture fixture)
+ private TestFixture _fixture;
+ public ContentNegotiation(TestFixture fixture)
{
_fixture = fixture;
}
@@ -29,7 +26,6 @@ public async Task Server_Sends_Correct_ContentType_Header()
.UseStartup();
var httpMethod = new HttpMethod("GET");
var route = "/api/v1/todo-items";
- var description = new RequestProperties("Server Sends Correct Content Type Header");
var server = new TestServer(builder);
var client = server.CreateClient();
var request = new HttpRequestMessage(httpMethod, route);
@@ -50,7 +46,6 @@ public async Task Server_Responds_415_With_MediaType_Parameters()
.UseStartup();
var httpMethod = new HttpMethod("GET");
var route = "/api/v1/todo-items";
- var description = new RequestProperties("Server responds with 415 if request contains media type parameters");
var server = new TestServer(builder);
var client = server.CreateClient();
var request = new HttpRequestMessage(httpMethod, route);
@@ -73,7 +68,6 @@ public async Task ServerResponds_406_If_RequestAcceptHeader_Contains_MediaTypePa
.UseStartup();
var httpMethod = new HttpMethod("GET");
var route = "/api/v1/todo-items";
- var description = new RequestProperties("Server responds with 406...");
var server = new TestServer(builder);
var client = server.CreateClient();
var acceptHeader = new MediaTypeWithQualityHeaderValue("application/vnd.api+json");
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/CreatingDataTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/CreatingDataTests.cs
index 08db60d635..2f461c4f74 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/CreatingDataTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/CreatingDataTests.cs
@@ -1,35 +1,33 @@
-using System.Net;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCore.Serialization;
using JsonApiDotNetCore.Services;
using JsonApiDotNetCoreExample;
using JsonApiDotNetCoreExample.Data;
using JsonApiDotNetCoreExample.Models;
+using JsonApiDotNetCoreExampleTests.Startups;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
+using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
using Xunit;
-using System.Collections.Generic;
-using System.Linq;
-using Microsoft.EntityFrameworkCore;
-using JsonApiDotNetCoreExampleTests.Startups;
-using System;
namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
{
[Collection("WebHostCollection")]
public class CreatingDataTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private IJsonApiContext _jsonApiContext;
private Faker _todoItemFaker;
- public CreatingDataTests(DocsFixture fixture)
+ public CreatingDataTests(TestFixture fixture)
{
_fixture = fixture;
_jsonApiContext = fixture.GetService();
@@ -274,6 +272,8 @@ public async Task Can_Create_And_Set_HasMany_Relationships()
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = (TodoItemCollection)_fixture.GetService().Deserialize(body);
var newId = deserializedBody.Id;
+
+ context = _fixture.GetService();
var contextCollection = context.TodoItemCollections
.Include(c => c.Owner)
.Include(c => c.TodoItems)
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DeletingDataTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DeletingDataTests.cs
index 46ac64810e..8ddb9a56a1 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DeletingDataTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DeletingDataTests.cs
@@ -3,8 +3,6 @@
using System.Net.Http;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCoreExample;
using JsonApiDotNetCoreExample.Data;
using JsonApiDotNetCoreExample.Models;
@@ -17,11 +15,11 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
[Collection("WebHostCollection")]
public class DeletingDataTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private AppDbContext _context;
private Faker _todoItemFaker;
- public DeletingDataTests(DocsFixture fixture)
+ public DeletingDataTests(TestFixture fixture)
{
_fixture = fixture;
_context = fixture.GetService();
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Included.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Included.cs
index e782f18aa9..5d4a4aa4e2 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Included.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Included.cs
@@ -1,32 +1,31 @@
-using System.Net;
+using System;
+using System.Linq;
+using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
+using Bogus;
+using JsonApiDotNetCore.Models;
using JsonApiDotNetCoreExample;
+using JsonApiDotNetCoreExample.Data;
+using JsonApiDotNetCoreExample.Models;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using Newtonsoft.Json;
using Xunit;
using Person = JsonApiDotNetCoreExample.Models.Person;
-using JsonApiDotNetCore.Models;
-using JsonApiDotNetCoreExample.Data;
-using Bogus;
-using JsonApiDotNetCoreExample.Models;
-using System.Linq;
namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec.DocumentTests
{
[Collection("WebHostCollection")]
public class Included
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private AppDbContext _context;
- private Faker _personFaker;
+ private Bogus.Faker _personFaker;
private Faker _todoItemFaker;
private Faker _todoItemCollectionFaker;
- public Included(DocsFixture fixture)
+ public Included(TestFixture fixture)
{
_fixture = fixture;
_context = fixture.GetService();
@@ -47,8 +46,14 @@ public Included(DocsFixture fixture)
public async Task GET_Included_Contains_SideloadedData_ForManyToOne()
{
// arrange
- var builder = new WebHostBuilder()
- .UseStartup();
+ var person = _personFaker.Generate();
+ var todoItem = _todoItemFaker.Generate();
+ todoItem.Owner = person;
+ _context.TodoItems.RemoveRange(_context.TodoItems);
+ _context.TodoItems.Add(todoItem);
+ _context.SaveChanges();
+
+ var builder = new WebHostBuilder().UseStartup();
var httpMethod = new HttpMethod("GET");
var route = $"/api/v1/todo-items?include=owner";
@@ -59,13 +64,16 @@ public async Task GET_Included_Contains_SideloadedData_ForManyToOne()
// act
var response = await client.SendAsync(request);
- var documents = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());
- var data = documents.Data[0];
// assert
+ var json = await response.Content.ReadAsStringAsync();
+ var documents = JsonConvert.DeserializeObject(json);
+ // we only care about counting the todo-items that have owners
+ var expectedCount = documents.Data.Count(d => d.Relationships["owner"].SingleData != null);
+
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.NotEmpty(documents.Included);
- Assert.Equal(documents.Data.Count, documents.Included.Count);
+ Assert.Equal(expectedCount, documents.Included.Count);
}
[Fact]
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Meta.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Meta.cs
index 4fb7693d4c..5316753245 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Meta.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Meta.cs
@@ -1,27 +1,25 @@
+using System.Collections;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
+using JsonApiDotNetCore.Models;
using JsonApiDotNetCoreExample;
+using JsonApiDotNetCoreExample.Data;
+using JsonApiDotNetCoreExample.Models;
+using JsonApiDotNetCoreExampleTests.Startups;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using Newtonsoft.Json;
using Xunit;
-using JsonApiDotNetCore.Models;
-using JsonApiDotNetCoreExample.Data;
-using JsonApiDotNetCoreExampleTests.Startups;
-using JsonApiDotNetCoreExample.Models;
-using System.Collections;
namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec.DocumentTests
{
[Collection("WebHostCollection")]
public class Meta
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private AppDbContext _context;
- public Meta(DocsFixture fixture)
+ public Meta(TestFixture fixture)
{
_fixture = fixture;
_context = fixture.GetService();
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/PagingTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/PagingTests.cs
index f8d412a153..0aa4ede88b 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/PagingTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/PagingTests.cs
@@ -1,8 +1,6 @@
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCoreExample;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
@@ -20,13 +18,13 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec.DocumentTests
[Collection("WebHostCollection")]
public class PagingTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private AppDbContext _context;
private Faker _personFaker;
private Faker _todoItemFaker;
private Faker _todoItemCollectionFaker;
- public PagingTests(DocsFixture fixture)
+ public PagingTests(TestFixture fixture)
{
_fixture = fixture;
_context = fixture.GetService();
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Relationships.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Relationships.cs
index 76efe6f068..5c0018354d 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Relationships.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DocumentTests/Relationships.cs
@@ -1,8 +1,6 @@
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCoreExample;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
@@ -19,11 +17,11 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec.DocumentTests
[Collection("WebHostCollection")]
public class Relationships
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private AppDbContext _context;
private Faker _todoItemFaker;
- public Relationships(DocsFixture fixture)
+ public Relationships(TestFixture fixture)
{
_fixture = fixture;
_context = fixture.GetService();
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/FetchingDataTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/FetchingDataTests.cs
index fc57326d55..208ec2f72d 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/FetchingDataTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/FetchingDataTests.cs
@@ -3,8 +3,6 @@
using System.Net.Http;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCore.Models;
using JsonApiDotNetCore.Serialization;
using JsonApiDotNetCore.Services;
@@ -22,12 +20,12 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
[Collection("WebHostCollection")]
public class FetchingDataTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private IJsonApiContext _jsonApiContext;
private Faker _todoItemFaker;
private Faker _personFaker;
- public FetchingDataTests(DocsFixture fixture)
+ public FetchingDataTests(TestFixture fixture)
{
_fixture = fixture;
_jsonApiContext = fixture.GetService();
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/FetchingRelationshipsTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/FetchingRelationshipsTests.cs
index 6825f98751..ea805c515f 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/FetchingRelationshipsTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/FetchingRelationshipsTests.cs
@@ -3,8 +3,6 @@
using System.Net.Http;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCore.Services;
using JsonApiDotNetCoreExample;
using JsonApiDotNetCoreExample.Data;
@@ -12,16 +10,17 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using Xunit;
+
namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
{
[Collection("WebHostCollection")]
public class FetchingRelationshipsTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private IJsonApiContext _jsonApiContext;
private Faker _todoItemFaker;
- public FetchingRelationshipsTests(DocsFixture fixture)
+ public FetchingRelationshipsTests(TestFixture fixture)
{
_fixture = fixture;
_jsonApiContext = fixture.GetService();
@@ -67,7 +66,11 @@ public async Task Request_ForRelationshipLink_ThatDoesNotExist_Returns_404()
{
// arrange
var context = _fixture.GetService();
- var todoItem = context.TodoItems.First();
+
+ var todoItem = _todoItemFaker.Generate();
+ context.TodoItems.Add(todoItem);
+ await context.SaveChangesAsync();
+
var todoItemId = todoItem.Id;
context.TodoItems.Remove(todoItem);
await context.SaveChangesAsync();
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/PagingTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/PagingTests.cs
index ea99cb7d59..02dbd019e0 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/PagingTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/PagingTests.cs
@@ -1,33 +1,22 @@
-using System.Collections.Generic;
-using System;
using System.Linq;
using System.Net;
-using System.Net.Http;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Models;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCore.Serialization;
-using JsonApiDotNetCore.Services;
using JsonApiDotNetCoreExample;
-using JsonApiDotNetCoreExample.Data;
using JsonApiDotNetCoreExample.Models;
using Xunit;
using Person = JsonApiDotNetCoreExample.Models.Person;
-namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
-{
- public class PagingTests : TestFixture
- {
+namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec {
+ public class PagingTests : TestFixture {
private readonly Faker _todoItemFaker = new Faker()
- .RuleFor(t => t.Description, f => f.Lorem.Sentence())
- .RuleFor(t => t.Ordinal, f => f.Random.Number())
- .RuleFor(t => t.CreatedDate, f => f.Date.Past());
+ .RuleFor(t => t.Description, f => f.Lorem.Sentence())
+ .RuleFor(t => t.Ordinal, f => f.Random.Number())
+ .RuleFor(t => t.CreatedDate, f => f.Date.Past());
[Fact]
- public async Task Can_Paginate_TodoItems()
- {
+ public async Task Can_Paginate_TodoItems() {
// Arrange
const int expectedEntitiesPerPage = 2;
var totalCount = expectedEntitiesPerPage * 2;
@@ -56,8 +45,7 @@ public async Task Can_Paginate_TodoItems()
}
[Fact]
- public async Task Can_Paginate_TodoItems_From_Start()
- {
+ public async Task Can_Paginate_TodoItems_From_Start() {
// Arrange
const int expectedEntitiesPerPage = 2;
var totalCount = expectedEntitiesPerPage * 2;
@@ -91,8 +79,7 @@ public async Task Can_Paginate_TodoItems_From_Start()
}
[Fact]
- public async Task Can_Paginate_TodoItems_From_End()
- {
+ public async Task Can_Paginate_TodoItems_From_End() {
// Arrange
const int expectedEntitiesPerPage = 2;
var totalCount = expectedEntitiesPerPage * 2;
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/QueryParameters.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/QueryParameters.cs
index a67b380838..c5a02cb6b7 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/QueryParameters.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/QueryParameters.cs
@@ -1,23 +1,20 @@
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Models;
-using DotNetCoreDocs.Writers;
+using JsonApiDotNetCore.Internal;
using JsonApiDotNetCoreExample;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using Newtonsoft.Json;
using Xunit;
-using JsonApiDotNetCore.Internal;
namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
{
[Collection("WebHostCollection")]
public class QueryParameters
{
- private DocsFixture _fixture;
- public QueryParameters(DocsFixture fixture)
+ private TestFixture _fixture;
+ public QueryParameters(TestFixture fixture)
{
_fixture = fixture;
}
@@ -32,7 +29,6 @@ public async Task Server_Returns_400_ForUnknownQueryParam()
.UseStartup();
var httpMethod = new HttpMethod("GET");
var route = $"/api/v1/todo-items?{queryKey}={queryValue}";
- var description = new RequestProperties("Server Returns 400 For Unknown Query Params");
var server = new TestServer(builder);
var client = server.CreateClient();
var request = new HttpRequestMessage(httpMethod, route);
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/SparseFieldSetTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/SparseFieldSetTests.cs
index d23eda4cc8..8c5c6b5249 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/SparseFieldSetTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/SparseFieldSetTests.cs
@@ -1,21 +1,19 @@
using System;
using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
using System.Threading.Tasks;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
+using JsonApiDotNetCore.Extensions;
+using JsonApiDotNetCore.Models;
using JsonApiDotNetCoreExample;
-using Xunit;
-using Microsoft.EntityFrameworkCore;
using JsonApiDotNetCoreExample.Data;
-using JsonApiDotNetCore.Extensions;
using JsonApiDotNetCoreExample.Models;
-using System.Linq;
+using JsonApiDotNetCoreExampleTests.Helpers.Extensions;
using Microsoft.AspNetCore.Hosting;
-using System.Net.Http;
using Microsoft.AspNetCore.TestHost;
+using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
-using JsonApiDotNetCore.Models;
-using JsonApiDotNetCoreExampleTests.Helpers.Extensions;
+using Xunit;
using StringExtensions = JsonApiDotNetCoreExampleTests.Helpers.Extensions.StringExtensions;
namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
@@ -23,10 +21,10 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
[Collection("WebHostCollection")]
public class SparseFieldSetTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private readonly AppDbContext _dbContext;
- public SparseFieldSetTests(DocsFixture fixture)
+ public SparseFieldSetTests(TestFixture fixture)
{
_fixture = fixture;
_dbContext = fixture.GetService();
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/UpdatingDataTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/UpdatingDataTests.cs
index 5e8c0f3634..d39f69a855 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/UpdatingDataTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/UpdatingDataTests.cs
@@ -5,8 +5,6 @@
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCoreExample;
using JsonApiDotNetCoreExample.Data;
using JsonApiDotNetCoreExample.Models;
@@ -22,12 +20,12 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
[Collection("WebHostCollection")]
public class UpdatingDataTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private AppDbContext _context;
private Faker _todoItemFaker;
private Faker _personFaker;
- public UpdatingDataTests(DocsFixture fixture)
+ public UpdatingDataTests(TestFixture fixture)
{
_fixture = fixture;
_context = fixture.GetService();
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/UpdatingRelationshipsTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/UpdatingRelationshipsTests.cs
index 39cb4dbdd0..5cc3772497 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/UpdatingRelationshipsTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/UpdatingRelationshipsTests.cs
@@ -5,8 +5,6 @@
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCoreExample;
using JsonApiDotNetCoreExample.Data;
using JsonApiDotNetCoreExample.Models;
@@ -22,12 +20,12 @@ namespace JsonApiDotNetCoreExampleTests.Acceptance.Spec
[Collection("WebHostCollection")]
public class UpdatingRelationshipsTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private AppDbContext _context;
- private Faker _personFaker;
+ private Bogus.Faker _personFaker;
private Faker _todoItemFaker;
- public UpdatingRelationshipsTests(DocsFixture fixture)
+ public UpdatingRelationshipsTests(TestFixture fixture)
{
_fixture = fixture;
_context = fixture.GetService();
@@ -79,6 +77,7 @@ public async Task Can_Update_ToMany_Relationship_ThroughLink()
// Act
var response = await client.SendAsync(request);
+ _context = _fixture.GetService();
var personsTodoItems = _context.People.Include(p => p.TodoItems).Single(p => p.Id == person.Id).TodoItems;
// Assert
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/TestFixture.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/TestFixture.cs
index 0379eae91d..d7ec6868b9 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/TestFixture.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/TestFixture.cs
@@ -5,11 +5,10 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using JsonApiDotNetCore.Services;
-using Newtonsoft.Json;
namespace JsonApiDotNetCoreExampleTests.Acceptance
{
- public class TestFixture where TStartup : class
+ public class TestFixture : IDisposable where TStartup : class
{
private readonly TestServer _server;
private IServiceProvider _services;
@@ -33,5 +32,25 @@ public TestFixture()
public IJsonApiDeSerializer DeSerializer { get; private set; }
public IJsonApiContext JsonApiContext { get; private set; }
public T GetService() => (T)_services.GetService(typeof(T));
+
+ private bool disposedValue = false;
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!disposedValue)
+ {
+ if (disposing)
+ {
+ Client.Dispose();
+ _server.Dispose();
+ }
+
+ disposedValue = true;
+ }
+ }
+
+ public void Dispose()
+ {
+ Dispose(true);
+ }
}
}
\ No newline at end of file
diff --git a/test/JsonApiDotNetCoreExampleTests/Acceptance/TodoItemsControllerTests.cs b/test/JsonApiDotNetCoreExampleTests/Acceptance/TodoItemsControllerTests.cs
index 4bf4ce68ad..657e282cb8 100644
--- a/test/JsonApiDotNetCoreExampleTests/Acceptance/TodoItemsControllerTests.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Acceptance/TodoItemsControllerTests.cs
@@ -1,33 +1,30 @@
using System.Collections.Generic;
+using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Bogus;
-using DotNetCoreDocs;
-using DotNetCoreDocs.Models;
-using DotNetCoreDocs.Writers;
+using JsonApiDotNetCore.Serialization;
+using JsonApiDotNetCore.Services;
using JsonApiDotNetCoreExample;
using JsonApiDotNetCoreExample.Data;
using JsonApiDotNetCoreExample.Models;
-using Person = JsonApiDotNetCoreExample.Models.Person;
using Newtonsoft.Json;
using Xunit;
-using JsonApiDotNetCore.Services;
-using JsonApiDotNetCore.Serialization;
-using System.Linq;
+using Person = JsonApiDotNetCoreExample.Models.Person;
namespace JsonApiDotNetCoreExampleTests.Acceptance
{
[Collection("WebHostCollection")]
public class TodoItemControllerTests
{
- private DocsFixture _fixture;
+ private TestFixture _fixture;
private AppDbContext _context;
private IJsonApiContext _jsonApiContext;
private Faker _todoItemFaker;
- public TodoItemControllerTests(DocsFixture fixture)
+ public TodoItemControllerTests(TestFixture fixture)
{
_fixture = fixture;
_context = fixture.GetService();
@@ -51,11 +48,10 @@ public async Task Can_Get_TodoItems()
var httpMethod = new HttpMethod("GET");
var route = "/api/v1/todo-items";
-
- var description = new RequestProperties("Get TodoItems");
+ var request = new HttpRequestMessage(httpMethod, route);
// Act
- var response = await _fixture.MakeRequest(description, httpMethod, route);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = _fixture.GetService().DeserializeList(body);
@@ -78,13 +74,10 @@ public async Task Can_Filter_TodoItems()
var httpMethod = new HttpMethod("GET");
var route = $"/api/v1/todo-items?filter[ordinal]={todoItem.Ordinal}";
-
- var description = new RequestProperties("Filter TodoItems By Attribute", new Dictionary {
- { "?filter[...]=", "Filter on attribute" }
- });
-
+ var request = new HttpRequestMessage(httpMethod, route);
+
// Act
- var response = await _fixture.MakeRequest(description, httpMethod, route);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = _fixture.GetService().DeserializeList(body);
@@ -108,13 +101,10 @@ public async Task Can_Filter_TodoItems_Using_Like_Operator()
var httpMethod = new HttpMethod("GET");
var route = $"/api/v1/todo-items?filter[description]=like:{substring}";
-
- var description = new RequestProperties("Filter TodoItems Where Attribute Like", new Dictionary {
- { "?filter[...]=", "Filter on attribute" }
- });
+ var request = new HttpRequestMessage(httpMethod, route);
// Act
- var response = await _fixture.MakeRequest(description, httpMethod, route);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = _fixture.GetService().DeserializeList(body);
@@ -146,13 +136,10 @@ public async Task Can_Sort_TodoItems_By_Ordinal_Ascending()
var httpMethod = new HttpMethod("GET");
var route = $"/api/v1/todo-items?sort=ordinal";
-
- var description = new RequestProperties("Sort TodoItems Ascending", new Dictionary {
- { "?sort=attr", "Sort on attribute" }
- });
+ var request = new HttpRequestMessage(httpMethod, route);
// Act
- var response = await _fixture.MakeRequest(description, httpMethod, route);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = _fixture.GetService().DeserializeList(body);
@@ -188,13 +175,10 @@ public async Task Can_Sort_TodoItems_By_Ordinal_Descending()
var httpMethod = new HttpMethod("GET");
var route = $"/api/v1/todo-items?sort=-ordinal";
-
- var description = new RequestProperties("Sort TodoItems Descending", new Dictionary {
- { "?sort=-attr", "Sort on attribute" }
- });
+ var request = new HttpRequestMessage(httpMethod, route);
// Act
- var response = await _fixture.MakeRequest(description, httpMethod, route);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = _fixture.GetService().DeserializeList(body);
@@ -222,13 +206,10 @@ public async Task Can_Get_TodoItem_ById()
var httpMethod = new HttpMethod("GET");
var route = $"/api/v1/todo-items/{todoItem.Id}";
-
- var description = new RequestProperties("Get TodoItem By Id", new Dictionary {
- { "/todo-items/{id}", "TodoItem Id" }
- });
+ var request = new HttpRequestMessage(httpMethod, route);
// Act
- var response = await _fixture.MakeRequest(description, httpMethod, route);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = (TodoItem)_fixture.GetService().Deserialize(body);
@@ -238,7 +219,7 @@ public async Task Can_Get_TodoItem_ById()
Assert.Equal(todoItem.Description, deserializedBody.Description);
Assert.Equal(todoItem.Ordinal, deserializedBody.Ordinal);
Assert.Equal(todoItem.CreatedDate.ToString("G"), deserializedBody.CreatedDate.ToString("G"));
- Assert.Equal(null, deserializedBody.AchievedDate);
+ Assert.Null(deserializedBody.AchievedDate);
}
[Fact]
@@ -253,14 +234,10 @@ public async Task Can_Get_TodoItem_WithOwner()
var httpMethod = new HttpMethod("GET");
var route = $"/api/v1/todo-items/{todoItem.Id}?include=owner";
-
- var description = new RequestProperties("Get TodoItem By Id", new Dictionary {
- { "/todo-items/{id}", "TodoItem Id" },
- { "?include={relationship}", "Included Relationship" }
- });
+ var request = new HttpRequestMessage(httpMethod, route);
// Act
- var response = await _fixture.MakeRequest(description, httpMethod, route);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = (TodoItem)_fixture.GetService().Deserialize(body);
@@ -271,7 +248,7 @@ public async Task Can_Get_TodoItem_WithOwner()
Assert.Equal(todoItem.Description, deserializedBody.Description);
Assert.Equal(todoItem.Ordinal, deserializedBody.Ordinal);
Assert.Equal(todoItem.CreatedDate.ToString("G"), deserializedBody.CreatedDate.ToString("G"));
- Assert.Equal(null, deserializedBody.AchievedDate);
+ Assert.Null(deserializedBody.AchievedDate);
}
[Fact]
@@ -315,10 +292,8 @@ public async Task Can_Post_TodoItem()
request.Content = new StringContent(JsonConvert.SerializeObject(content));
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");
- var description = new RequestProperties("Post TodoItem");
-
// Act
- var response = await _fixture.MakeRequest(description, request);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = (TodoItem)_fixture.GetService().Deserialize(body);
@@ -326,7 +301,7 @@ public async Task Can_Post_TodoItem()
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
Assert.Equal(todoItem.Description, deserializedBody.Description);
Assert.Equal(todoItem.CreatedDate.ToString("G"), deserializedBody.CreatedDate.ToString("G"));
- Assert.Equal(null, deserializedBody.AchievedDate);
+ Assert.Null(deserializedBody.AchievedDate);
}
[Fact]
@@ -364,11 +339,9 @@ public async Task Can_Patch_TodoItem()
var request = new HttpRequestMessage(httpMethod, route);
request.Content = new StringContent(JsonConvert.SerializeObject(content));
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");
-
- var description = new RequestProperties("Patch TodoItem");
-
+
// Act
- var response = await _fixture.MakeRequest(description, request);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = (TodoItem)_fixture.GetService().Deserialize(body);
@@ -377,7 +350,7 @@ public async Task Can_Patch_TodoItem()
Assert.Equal(newTodoItem.Description, deserializedBody.Description);
Assert.Equal(newTodoItem.Ordinal, deserializedBody.Ordinal);
Assert.Equal(newTodoItem.CreatedDate.ToString("G"), deserializedBody.CreatedDate.ToString("G"));
- Assert.Equal(null, deserializedBody.AchievedDate);
+ Assert.Null(deserializedBody.AchievedDate);
}
[Fact]
@@ -419,10 +392,8 @@ public async Task Can_Patch_TodoItemWithNullable()
request.Content = new StringContent(JsonConvert.SerializeObject(content));
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");
- var description = new RequestProperties("Patch TodoItem");
-
// Act
- var response = await _fixture.MakeRequest(description, request);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = (TodoItem)_fixture.GetService().Deserialize(body);
@@ -472,10 +443,8 @@ public async Task Can_Patch_TodoItemWithNullValue()
request.Content = new StringContent(JsonConvert.SerializeObject(content));
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");
- var description = new RequestProperties("Patch TodoItem");
-
// Act
- var response = await _fixture.MakeRequest(description, request);
+ var response = await _fixture.Client.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();
var deserializedBody = (TodoItem)_fixture.GetService().Deserialize(body);
@@ -484,7 +453,7 @@ public async Task Can_Patch_TodoItemWithNullValue()
Assert.Equal(newTodoItem.Description, deserializedBody.Description);
Assert.Equal(newTodoItem.Ordinal, deserializedBody.Ordinal);
Assert.Equal(newTodoItem.CreatedDate.ToString("G"), deserializedBody.CreatedDate.ToString("G"));
- Assert.Equal(null, deserializedBody.AchievedDate);
+ Assert.Null(deserializedBody.AchievedDate);
}
[Fact]
@@ -507,10 +476,8 @@ public async Task Can_Delete_TodoItem()
request.Content = new StringContent(string.Empty);
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");
- var description = new RequestProperties("Delete TodoItem");
-
// Act
- var response = await _fixture.MakeRequest(description, request);
+ var response = await _fixture.Client.SendAsync(request);
// Assert
Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
diff --git a/test/JsonApiDotNetCoreExampleTests/Helpers/Extensions/IQueryableExtensions.cs b/test/JsonApiDotNetCoreExampleTests/Helpers/Extensions/IQueryableExtensions.cs
index a40dfb4a5a..c774478227 100644
--- a/test/JsonApiDotNetCoreExampleTests/Helpers/Extensions/IQueryableExtensions.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Helpers/Extensions/IQueryableExtensions.cs
@@ -4,12 +4,12 @@
using Microsoft.EntityFrameworkCore.Internal;
using Microsoft.EntityFrameworkCore.Query;
using Microsoft.EntityFrameworkCore.Query.Internal;
+using Microsoft.EntityFrameworkCore.Storage;
using Remotion.Linq.Parsing.Structure;
using Database = Microsoft.EntityFrameworkCore.Storage.Database;
namespace JsonApiDotNetCoreExampleTests.Helpers.Extensions
{
-
public static class IQueryableExtensions
{
private static readonly TypeInfo QueryCompilerTypeInfo = typeof(QueryCompiler).GetTypeInfo();
@@ -22,19 +22,22 @@ public static class IQueryableExtensions
private static readonly FieldInfo DataBaseField = QueryCompilerTypeInfo.DeclaredFields.Single(x => x.Name == "_database");
- private static readonly FieldInfo QueryCompilationContextFactoryField = typeof(Database).GetTypeInfo().DeclaredFields.Single(x => x.Name == "_queryCompilationContextFactory");
+ private static readonly PropertyInfo DatabaseDependenciesField
+ = typeof(Database).GetTypeInfo().DeclaredProperties.Single(x => x.Name == "Dependencies");
public static string ToSql(this IQueryable query) where TEntity : class
{
if (!(query is EntityQueryable) && !(query is InternalDbSet))
+ {
throw new ArgumentException("Invalid query");
+ }
var queryCompiler = (IQueryCompiler)QueryCompilerField.GetValue(query.Provider);
var nodeTypeProvider = (INodeTypeProvider)NodeTypeProviderField.GetValue(queryCompiler);
var parser = (IQueryParser)CreateQueryParserMethod.Invoke(queryCompiler, new object[] { nodeTypeProvider });
var queryModel = parser.GetParsedQuery(query.Expression);
var database = DataBaseField.GetValue(queryCompiler);
- var queryCompilationContextFactory = (IQueryCompilationContextFactory)QueryCompilationContextFactoryField.GetValue(database);
+ var queryCompilationContextFactory = ((DatabaseDependencies)DatabaseDependenciesField.GetValue(database)).QueryCompilationContextFactory;
var queryCompilationContext = queryCompilationContextFactory.Create(false);
var modelVisitor = (RelationalQueryModelVisitor)queryCompilationContext.CreateQueryModelVisitor();
modelVisitor.CreateQueryExecutor(queryModel);
diff --git a/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/AuthorizedStartup.cs b/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/AuthorizedStartup.cs
index b9272e2de7..21cfa0e0dc 100644
--- a/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/AuthorizedStartup.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/AuthorizedStartup.cs
@@ -4,7 +4,6 @@
using JsonApiDotNetCoreExample.Data;
using Microsoft.EntityFrameworkCore;
using JsonApiDotNetCore.Extensions;
-using DotNetCoreDocs.Configuration;
using System;
using JsonApiDotNetCoreExample;
using Moq;
@@ -25,8 +24,7 @@ public override IServiceProvider ConfigureServices(IServiceCollection services)
{
var loggerFactory = new LoggerFactory();
- loggerFactory
- .AddConsole(LogLevel.Trace);
+ loggerFactory.AddConsole();
services.AddSingleton(loggerFactory);
@@ -48,8 +46,6 @@ public override IServiceProvider ConfigureServices(IServiceCollection services)
services.AddSingleton(authServicMock.Object);
services.AddScoped, AuthorizedTodoItemsRepository>();
- services.AddDocumentationConfiguration(Config);
-
return services.BuildServiceProvider();
}
}
diff --git a/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/ClientGeneratedIdsStartup.cs b/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/ClientGeneratedIdsStartup.cs
index 30a8dca6fa..32d8186802 100644
--- a/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/ClientGeneratedIdsStartup.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/ClientGeneratedIdsStartup.cs
@@ -4,7 +4,6 @@
using JsonApiDotNetCoreExample.Data;
using Microsoft.EntityFrameworkCore;
using JsonApiDotNetCore.Extensions;
-using DotNetCoreDocs.Configuration;
using System;
using JsonApiDotNetCoreExample;
@@ -20,8 +19,7 @@ public override IServiceProvider ConfigureServices(IServiceCollection services)
{
var loggerFactory = new LoggerFactory();
- loggerFactory
- .AddConsole(LogLevel.Trace);
+ loggerFactory.AddConsole();
services.AddSingleton(loggerFactory);
@@ -38,8 +36,6 @@ public override IServiceProvider ConfigureServices(IServiceCollection services)
opt.AllowClientGeneratedIds = true;
});
- services.AddDocumentationConfiguration(Config);
-
return services.BuildServiceProvider();
}
}
diff --git a/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/MetaStartup.cs b/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/MetaStartup.cs
index b23fded9ba..0001878a50 100644
--- a/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/MetaStartup.cs
+++ b/test/JsonApiDotNetCoreExampleTests/Helpers/Startups/MetaStartup.cs
@@ -4,7 +4,6 @@
using JsonApiDotNetCoreExample.Data;
using Microsoft.EntityFrameworkCore;
using JsonApiDotNetCore.Extensions;
-using DotNetCoreDocs.Configuration;
using System;
using JsonApiDotNetCoreExample;
using JsonApiDotNetCore.Services;
@@ -39,7 +38,6 @@ public override IServiceProvider ConfigureServices(IServiceCollection services)
opt.IncludeTotalRecordCount = true;
});
- services.AddDocumentationConfiguration(Config);
services.AddScoped();
return services.BuildServiceProvider();
diff --git a/test/JsonApiDotNetCoreExampleTests/JsonApiDotNetCoreExampleTests.csproj b/test/JsonApiDotNetCoreExampleTests/JsonApiDotNetCoreExampleTests.csproj
index 84bca08a77..b22953dc23 100755
--- a/test/JsonApiDotNetCoreExampleTests/JsonApiDotNetCoreExampleTests.csproj
+++ b/test/JsonApiDotNetCoreExampleTests/JsonApiDotNetCoreExampleTests.csproj
@@ -1,15 +1,13 @@
- netcoreapp1.0
+ $(NetCoreAppVersion)
true
JsonApiDotNetCoreExampleTests
Exe
JsonApiDotNetCoreExampleTests
true
true
- 1.1.1
- $(PackageTargetFallback);dotnet5.6;portable-net45+win8
@@ -24,12 +22,13 @@
-
-
-
-
+
+
+
+
+
-
+
diff --git a/test/JsonApiDotNetCoreExampleTests/JsonApiDotNetCoreExampleTests.sln b/test/JsonApiDotNetCoreExampleTests/JsonApiDotNetCoreExampleTests.sln
new file mode 100644
index 0000000000..87d08fd486
--- /dev/null
+++ b/test/JsonApiDotNetCoreExampleTests/JsonApiDotNetCoreExampleTests.sln
@@ -0,0 +1,17 @@
+
+Microsoft Visual Studio Solution File, Format Version 15.00
+# Visual Studio 2017
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JsonApiDotNetCoreExampleTests", "JsonApiDotNetCoreExampleTests.csproj", "{54F94127-E63E-4ADA-9B20-367EC2F6E3D6}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {54F94127-E63E-4ADA-9B20-367EC2F6E3D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {54F94127-E63E-4ADA-9B20-367EC2F6E3D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {54F94127-E63E-4ADA-9B20-367EC2F6E3D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {54F94127-E63E-4ADA-9B20-367EC2F6E3D6}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/test/JsonApiDotNetCoreExampleTests/WebHostCollection.cs b/test/JsonApiDotNetCoreExampleTests/WebHostCollection.cs
index 6cbc0508a9..43a89616df 100644
--- a/test/JsonApiDotNetCoreExampleTests/WebHostCollection.cs
+++ b/test/JsonApiDotNetCoreExampleTests/WebHostCollection.cs
@@ -1,12 +1,11 @@
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
using JsonApiDotNetCoreExample;
+using JsonApiDotNetCoreExampleTests.Acceptance;
using Xunit;
namespace JsonApiDotNetCoreExampleTests
{
[CollectionDefinition("WebHostCollection")]
- public class WebHostCollection
- : ICollectionFixture>
+ public class WebHostCollection
+ : ICollectionFixture>
{ }
}
diff --git a/test/JsonApiDotNetCoreExampleTests/appsettings.json b/test/JsonApiDotNetCoreExampleTests/appsettings.json
index 40ed14033f..7af3457293 100644
--- a/test/JsonApiDotNetCoreExampleTests/appsettings.json
+++ b/test/JsonApiDotNetCoreExampleTests/appsettings.json
@@ -1,18 +1,14 @@
{
"Data": {
- "DefaultConnection": "Host=localhost;Port=5432;Database=JsonApiDotNetCoreExample;User ID=postgres;Password="
+ "DefaultConnection":
+ "Host=localhost;Port=5432;Database=JsonApiDotNetCoreExample;User ID=postgres;Password="
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
- "Default": "Debug",
+ "Default": "Error",
"System": "Information",
"Microsoft": "Information"
}
- },
- "DocsConfiguration": {
- "BaseAddress": "http://localhost:5000",
- "RequestsDirectory": "../../src/JsonApiDotNetCoreExample/_data",
- "DocumentationRoute": "/docs"
}
-}
\ No newline at end of file
+}
diff --git a/test/NoEntityFrameworkTests/Acceptance/Extensibility/NoEntityFrameworkTests.cs b/test/NoEntityFrameworkTests/Acceptance/Extensibility/NoEntityFrameworkTests.cs
index 3a2166a3d3..41a48f2743 100644
--- a/test/NoEntityFrameworkTests/Acceptance/Extensibility/NoEntityFrameworkTests.cs
+++ b/test/NoEntityFrameworkTests/Acceptance/Extensibility/NoEntityFrameworkTests.cs
@@ -1,17 +1,17 @@
-using JsonApiDotNetCore.Serialization;
-using Xunit;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.TestHost;
-using NoEntityFrameworkExample;
+using System;
+using System.Net;
using System.Net.Http;
-using JsonApiDotNetCoreExampleTests.Helpers.Extensions;
+using System.Net.Http.Headers;
using System.Threading.Tasks;
-using System.Net;
-using JsonApiDotNetCoreExample.Models;
+using JsonApiDotNetCore.Serialization;
using JsonApiDotNetCoreExample.Data;
-using System;
+using JsonApiDotNetCoreExample.Models;
+using JsonApiDotNetCoreExampleTests.Helpers.Extensions;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.TestHost;
using Newtonsoft.Json;
-using System.Net.Http.Headers;
+using NoEntityFrameworkExample;
+using Xunit;
namespace NoEntityFrameworkTests.Acceptance.Extensibility
{
diff --git a/test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj b/test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj
index a8a6dd1b50..8daa7dc9af 100644
--- a/test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj
+++ b/test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj
@@ -1,36 +1,31 @@
- netcoreapp1.0
+ $(NetCoreAppVersion)
true
NoEntityFrameworkTests
Exe
NoEntityFrameworkTests
true
true
- 1.1.1
- $(PackageTargetFallback);dotnet5.6;portable-net45+win8
-
PreserveNewest
-
-
-
-
-
-
+
+
+
+
-
+
diff --git a/test/NoEntityFrameworkTests/WebHostCollection.cs b/test/NoEntityFrameworkTests/WebHostCollection.cs
deleted file mode 100644
index 071b1fcf81..0000000000
--- a/test/NoEntityFrameworkTests/WebHostCollection.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using DotNetCoreDocs;
-using DotNetCoreDocs.Writers;
-using JsonApiDotNetCoreExample;
-using Xunit;
-
-namespace NoEntityFrameworkTests
-{
- [CollectionDefinition("WebHostCollection")]
- public class WebHostCollection
- : ICollectionFixture>
- { }
-}
diff --git a/test/NoEntityFrameworkTests/appsettings.json b/test/NoEntityFrameworkTests/appsettings.json
index 40ed14033f..7067b2bee0 100644
--- a/test/NoEntityFrameworkTests/appsettings.json
+++ b/test/NoEntityFrameworkTests/appsettings.json
@@ -1,6 +1,7 @@
{
"Data": {
- "DefaultConnection": "Host=localhost;Port=5432;Database=JsonApiDotNetCoreExample;User ID=postgres;Password="
+ "DefaultConnection":
+ "Host=localhost;Port=5432;Database=JsonApiDotNetCoreExample;User ID=postgres;Password="
},
"Logging": {
"IncludeScopes": false,
@@ -9,10 +10,5 @@
"System": "Information",
"Microsoft": "Information"
}
- },
- "DocsConfiguration": {
- "BaseAddress": "http://localhost:5000",
- "RequestsDirectory": "../../src/JsonApiDotNetCoreExample/_data",
- "DocumentationRoute": "/docs"
}
-}
\ No newline at end of file
+}
diff --git a/test/UnitTests/UnitTests.csproj b/test/UnitTests/UnitTests.csproj
index d29e136490..dcd659d2df 100644
--- a/test/UnitTests/UnitTests.csproj
+++ b/test/UnitTests/UnitTests.csproj
@@ -1,16 +1,16 @@
- netcoreapp1.1
+ $(NetCoreAppVersion)
false
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file