diff --git a/OpenIddict.sln b/OpenIddict.sln
index 51813536..b5b18322 100644
--- a/OpenIddict.sln
+++ b/OpenIddict.sln
@@ -19,6 +19,16 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenIddict.Core", "src\Open
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenIddict.Mvc", "src\OpenIddict.Mvc\OpenIddict.Mvc.xproj", "{6EB5B6A9-4ED8-401D-A673-FD513F256AAE}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{5FC71D6A-A994-4F62-977F-88A7D25379D7}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenIddict.Core.Tests", "test\OpenIddict.Core.Tests\OpenIddict.Core.Tests.xproj", "{A892B3DE-1A02-48D6-993B-DD3DFCAC84C7}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenIddict.EntityFramework.Tests", "test\OpenIddict.EntityFramework.Tests\OpenIddict.EntityFramework.Tests.xproj", "{7831F17A-DF0B-42EC-841B-065A9B5BD786}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenIddict.Mvc.Tests", "test\OpenIddict.Mvc.Tests\OpenIddict.Mvc.Tests.xproj", "{8B4B0CCC-711B-4F9D-9DE6-DD32BDD3BCCA}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "OpenIddict.Tests", "test\OpenIddict.Tests\OpenIddict.Tests.xproj", "{3E2FBDB3-DC82-4E97-8EBC-CC8B279110FF}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -49,6 +59,22 @@ Global
{6EB5B6A9-4ED8-401D-A673-FD513F256AAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6EB5B6A9-4ED8-401D-A673-FD513F256AAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6EB5B6A9-4ED8-401D-A673-FD513F256AAE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A892B3DE-1A02-48D6-993B-DD3DFCAC84C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A892B3DE-1A02-48D6-993B-DD3DFCAC84C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A892B3DE-1A02-48D6-993B-DD3DFCAC84C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A892B3DE-1A02-48D6-993B-DD3DFCAC84C7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7831F17A-DF0B-42EC-841B-065A9B5BD786}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7831F17A-DF0B-42EC-841B-065A9B5BD786}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7831F17A-DF0B-42EC-841B-065A9B5BD786}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7831F17A-DF0B-42EC-841B-065A9B5BD786}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8B4B0CCC-711B-4F9D-9DE6-DD32BDD3BCCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8B4B0CCC-711B-4F9D-9DE6-DD32BDD3BCCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8B4B0CCC-711B-4F9D-9DE6-DD32BDD3BCCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8B4B0CCC-711B-4F9D-9DE6-DD32BDD3BCCA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E2FBDB3-DC82-4E97-8EBC-CC8B279110FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3E2FBDB3-DC82-4E97-8EBC-CC8B279110FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E2FBDB3-DC82-4E97-8EBC-CC8B279110FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3E2FBDB3-DC82-4E97-8EBC-CC8B279110FF}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -60,5 +86,9 @@ Global
{D2450929-ED0E-420D-B475-327924F9701C} = {D544447C-D701-46BB-9A5B-C76C612A596B}
{E60CF8CA-6313-4359-BE43-AFCBB927EA30} = {D544447C-D701-46BB-9A5B-C76C612A596B}
{6EB5B6A9-4ED8-401D-A673-FD513F256AAE} = {D544447C-D701-46BB-9A5B-C76C612A596B}
+ {A892B3DE-1A02-48D6-993B-DD3DFCAC84C7} = {5FC71D6A-A994-4F62-977F-88A7D25379D7}
+ {7831F17A-DF0B-42EC-841B-065A9B5BD786} = {5FC71D6A-A994-4F62-977F-88A7D25379D7}
+ {8B4B0CCC-711B-4F9D-9DE6-DD32BDD3BCCA} = {5FC71D6A-A994-4F62-977F-88A7D25379D7}
+ {3E2FBDB3-DC82-4E97-8EBC-CC8B279110FF} = {5FC71D6A-A994-4F62-977F-88A7D25379D7}
EndGlobalSection
EndGlobal
diff --git a/test/OpenIddict.Core.Tests/OpenIddict.Core.Tests.xproj b/test/OpenIddict.Core.Tests/OpenIddict.Core.Tests.xproj
new file mode 100644
index 00000000..fa2dafca
--- /dev/null
+++ b/test/OpenIddict.Core.Tests/OpenIddict.Core.Tests.xproj
@@ -0,0 +1,18 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ a892b3de-1a02-48d6-993b-dd3dfcac84c7
+ OpenIddict.Core.Tests
+ .\obj
+ .\bin\
+
+
+ 2.0
+
+
+
diff --git a/test/OpenIddict.Core.Tests/Placeholder.cs b/test/OpenIddict.Core.Tests/Placeholder.cs
new file mode 100644
index 00000000..7aacac8a
--- /dev/null
+++ b/test/OpenIddict.Core.Tests/Placeholder.cs
@@ -0,0 +1,3 @@
+namespace OpenIddict.Core.Tests {
+ public class Placeholder { }
+}
diff --git a/test/OpenIddict.Core.Tests/project.json b/test/OpenIddict.Core.Tests/project.json
new file mode 100644
index 00000000..ea3e3ebb
--- /dev/null
+++ b/test/OpenIddict.Core.Tests/project.json
@@ -0,0 +1,36 @@
+{
+ "buildOptions": {
+ "warningsAsErrors": true
+ },
+
+ "dependencies": {
+ "dotnet-test-xunit": "2.2.0-preview2-build1029",
+ "Microsoft.AspNetCore.TestHost": "1.0.0",
+ "Microsoft.Extensions.Caching.Memory": "1.0.0",
+ "Microsoft.Extensions.Logging.Debug": "1.0.0",
+ "Moq": "4.6.38-alpha",
+ "OpenIddict.Core": { "target": "project" },
+ "xunit": "2.2.0-beta2-build3300"
+ },
+
+ "frameworks": {
+ "netcoreapp1.0": {
+ "dependencies": {
+ "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" }
+ },
+
+ "imports": [
+ "dnxcore50",
+ "portable-net451+win8"
+ ]
+ },
+
+ "net451": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1"
+ }
+ }
+ },
+
+ "testRunner": "xunit"
+}
diff --git a/test/OpenIddict.EntityFramework.Tests/OpenIddict.EntityFramework.Tests.xproj b/test/OpenIddict.EntityFramework.Tests/OpenIddict.EntityFramework.Tests.xproj
new file mode 100644
index 00000000..95b75f22
--- /dev/null
+++ b/test/OpenIddict.EntityFramework.Tests/OpenIddict.EntityFramework.Tests.xproj
@@ -0,0 +1,21 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ 7831f17a-df0b-42ec-841b-065a9b5bd786
+ OpenIddict.EntityFramework.Tests
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+
+ 2.0
+
+
+
diff --git a/test/OpenIddict.EntityFramework.Tests/Placeholder.cs b/test/OpenIddict.EntityFramework.Tests/Placeholder.cs
new file mode 100644
index 00000000..8786e412
--- /dev/null
+++ b/test/OpenIddict.EntityFramework.Tests/Placeholder.cs
@@ -0,0 +1,3 @@
+namespace OpenIddict.EntityFramework.Tests {
+ public class Placeholder { }
+}
diff --git a/test/OpenIddict.EntityFramework.Tests/project.json b/test/OpenIddict.EntityFramework.Tests/project.json
new file mode 100644
index 00000000..c2bfcfb7
--- /dev/null
+++ b/test/OpenIddict.EntityFramework.Tests/project.json
@@ -0,0 +1,36 @@
+{
+ "buildOptions": {
+ "warningsAsErrors": true
+ },
+
+ "dependencies": {
+ "dotnet-test-xunit": "2.2.0-preview2-build1029",
+ "Microsoft.AspNetCore.TestHost": "1.0.0",
+ "Microsoft.Extensions.Caching.Memory": "1.0.0",
+ "Microsoft.Extensions.Logging.Debug": "1.0.0",
+ "Moq": "4.6.38-alpha",
+ "OpenIddict.EntityFramework": { "target": "project" },
+ "xunit": "2.2.0-beta2-build3300"
+ },
+
+ "frameworks": {
+ "netcoreapp1.0": {
+ "dependencies": {
+ "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" }
+ },
+
+ "imports": [
+ "dnxcore50",
+ "portable-net451+win8"
+ ]
+ },
+
+ "net451": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1"
+ }
+ }
+ },
+
+ "testRunner": "xunit"
+}
diff --git a/test/OpenIddict.Mvc.Tests/OpenIddict.Mvc.Tests.xproj b/test/OpenIddict.Mvc.Tests/OpenIddict.Mvc.Tests.xproj
new file mode 100644
index 00000000..870bf75d
--- /dev/null
+++ b/test/OpenIddict.Mvc.Tests/OpenIddict.Mvc.Tests.xproj
@@ -0,0 +1,21 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ 8b4b0ccc-711b-4f9d-9de6-dd32bdd3bcca
+ OpenIddict.Mvc.Tests
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+
+ 2.0
+
+
+
diff --git a/test/OpenIddict.Mvc.Tests/Placeholder.cs b/test/OpenIddict.Mvc.Tests/Placeholder.cs
new file mode 100644
index 00000000..dbaa88c0
--- /dev/null
+++ b/test/OpenIddict.Mvc.Tests/Placeholder.cs
@@ -0,0 +1,3 @@
+namespace OpenIddict.Mvc.Tests {
+ public class Placeholder { }
+}
diff --git a/test/OpenIddict.Mvc.Tests/project.json b/test/OpenIddict.Mvc.Tests/project.json
new file mode 100644
index 00000000..531f4ba3
--- /dev/null
+++ b/test/OpenIddict.Mvc.Tests/project.json
@@ -0,0 +1,36 @@
+{
+ "buildOptions": {
+ "warningsAsErrors": true
+ },
+
+ "dependencies": {
+ "dotnet-test-xunit": "2.2.0-preview2-build1029",
+ "Microsoft.AspNetCore.TestHost": "1.0.0",
+ "Microsoft.Extensions.Caching.Memory": "1.0.0",
+ "Microsoft.Extensions.Logging.Debug": "1.0.0",
+ "Moq": "4.6.38-alpha",
+ "OpenIddict.Mvc": { "target": "project" },
+ "xunit": "2.2.0-beta2-build3300"
+ },
+
+ "frameworks": {
+ "netcoreapp1.0": {
+ "dependencies": {
+ "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" }
+ },
+
+ "imports": [
+ "dnxcore50",
+ "portable-net451+win8"
+ ]
+ },
+
+ "net451": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1"
+ }
+ }
+ },
+
+ "testRunner": "xunit"
+}
diff --git a/test/OpenIddict.Tests/OpenIddict.Tests.xproj b/test/OpenIddict.Tests/OpenIddict.Tests.xproj
new file mode 100644
index 00000000..83034985
--- /dev/null
+++ b/test/OpenIddict.Tests/OpenIddict.Tests.xproj
@@ -0,0 +1,21 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ 3e2fbdb3-dc82-4e97-8ebc-cc8b279110ff
+ OpenIddict.Tests
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+
+ 2.0
+
+
+
diff --git a/test/OpenIddict.Tests/Placeholder.cs b/test/OpenIddict.Tests/Placeholder.cs
new file mode 100644
index 00000000..3c107643
--- /dev/null
+++ b/test/OpenIddict.Tests/Placeholder.cs
@@ -0,0 +1,3 @@
+namespace OpenIddict.Tests {
+ public class Placeholder { }
+}
diff --git a/test/OpenIddict.Tests/project.json b/test/OpenIddict.Tests/project.json
new file mode 100644
index 00000000..81267ca2
--- /dev/null
+++ b/test/OpenIddict.Tests/project.json
@@ -0,0 +1,36 @@
+{
+ "buildOptions": {
+ "warningsAsErrors": true
+ },
+
+ "dependencies": {
+ "dotnet-test-xunit": "2.2.0-preview2-build1029",
+ "Microsoft.AspNetCore.TestHost": "1.0.0",
+ "Microsoft.Extensions.Caching.Memory": "1.0.0",
+ "Microsoft.Extensions.Logging.Debug": "1.0.0",
+ "Moq": "4.6.38-alpha",
+ "OpenIddict": { "target": "project" },
+ "xunit": "2.2.0-beta2-build3300"
+ },
+
+ "frameworks": {
+ "netcoreapp1.0": {
+ "dependencies": {
+ "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" }
+ },
+
+ "imports": [
+ "dnxcore50",
+ "portable-net451+win8"
+ ]
+ },
+
+ "net451": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1"
+ }
+ }
+ },
+
+ "testRunner": "xunit"
+}