Skip to content

Commit 5644b06

Browse files
author
Chris Santero
committed
fix failing tests
1 parent e69c407 commit 5644b06

3 files changed

Lines changed: 33 additions & 3 deletions

File tree

JSONAPI.EntityFramework.Tests.TestWebApp/Startup.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ private static HttpConfiguration GetWebApiConfiguration()
6363
new JsonApiConfiguration()
6464
.PluralizeResourceTypesWith(pluralizationService)
6565
.UseEntityFramework()
66+
.RegisterResourceType(typeof(Comment))
67+
.RegisterResourceType(typeof(Post))
68+
.RegisterResourceType(typeof(Tag))
69+
.RegisterResourceType(typeof(User))
70+
.RegisterResourceType(typeof(UserGroup))
6671
.Apply(httpConfig);
6772

6873

JSONAPI.TodoMVC.API/Startup.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
using System.Web.Http;
22
using JSONAPI.Core;
33
using JSONAPI.EntityFramework;
4+
using JSONAPI.TodoMVC.API.Models;
45
using Owin;
5-
using PluralizationService = JSONAPI.EntityFramework.PluralizationService;
6+
using PluralizationService = JSONAPI.Core.PluralizationService;
67

78
namespace JSONAPI.TodoMVC.API
89
{
@@ -17,13 +18,15 @@ public void Configuration(IAppBuilder app)
1718
private static HttpConfiguration GetWebApiConfiguration()
1819
{
1920
var pluralizationService = new PluralizationService();
21+
pluralizationService.AddMapping("todo", "todos");
2022

2123
var httpConfig = new HttpConfiguration();
2224

2325
// Configure JSON API
2426
new JsonApiConfiguration()
2527
.PluralizeResourceTypesWith(pluralizationService)
2628
.UseEntityFramework()
29+
.RegisterResourceType(typeof(Todo))
2730
.Apply(httpConfig);
2831

2932
// Web API routes

JSONAPI/Core/JsonApiConfiguration.cs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using System.Web.Http;
34
using System.Web.Http.Dispatcher;
45
using System.Web.Http.Filters;
@@ -19,6 +20,7 @@ public class JsonApiConfiguration
1920
private bool _enableFiltering;
2021
private bool _enableSorting;
2122
private IPluralizationService _pluralizationService;
23+
private IList<Type> _resourceTypes;
2224

2325
/// <summary>
2426
/// Creates a new configuration
@@ -27,11 +29,11 @@ public JsonApiConfiguration()
2729
{
2830
Builder = new ContainerBuilder();
2931
Builder.RegisterType<JsonApiQueryableAttribute>().SingleInstance();
30-
Builder.RegisterType<ModelManager>().As<IModelManager>().SingleInstance();
3132
Builder.Register(c => new JsonApiFormatter(c.Resolve<IModelManager>())).SingleInstance();
3233

3334
_enableFiltering = true;
3435
_enableSorting = true;
36+
_resourceTypes = new List<Type>();
3537
}
3638

3739
/// <summary>
@@ -65,6 +67,17 @@ public JsonApiConfiguration PluralizeResourceTypesWith(IPluralizationService plu
6567
return this;
6668
}
6769

70+
/// <summary>
71+
///
72+
/// </summary>
73+
/// <param name="type"></param>
74+
/// <returns></returns>
75+
public JsonApiConfiguration RegisterResourceType(Type type)
76+
{
77+
_resourceTypes.Add(type);
78+
return this;
79+
}
80+
6881
/// <summary>
6982
/// Applies the running configuration to an HttpConfiguration instance
7083
/// </summary>
@@ -79,8 +92,17 @@ public void Apply(HttpConfiguration httpConfig)
7992
if (_enableSorting)
8093
Builder.RegisterType<SortingQueryableTransformer>();
8194

95+
Builder.RegisterType<ModelManager>().As<ModelManager>().As<IModelManager>().SingleInstance();
96+
8297
var container = Builder.Build();
8398

99+
// Register our types
100+
var modelManager = container.Resolve<ModelManager>();
101+
foreach (var resourceType in _resourceTypes)
102+
{
103+
modelManager.RegisterResourceType(resourceType);
104+
}
105+
84106
using (var lifetimeScope = container.BeginLifetimeScope())
85107
{
86108
var formatter = lifetimeScope.Resolve<JsonApiFormatter>();

0 commit comments

Comments
 (0)