Skip to content

Commit 05f0ad9

Browse files
committed
test: resource definition discovery test
1 parent dc0c75a commit 05f0ad9

File tree

2 files changed

+31
-6
lines changed

2 files changed

+31
-6
lines changed

src/JsonApiDotNetCore/Builders/JsonApiApplicationBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public void ConfigureServices(Type dbContextType)
124124
if (dbContextType != null)
125125
{
126126
var contextResolverType = typeof(DbContextResolver<>).MakeGenericType(dbContextType);
127-
_services.AddScoped(typeof(IDbContextResolver), contextResolverType);
127+
_services.TryAddScoped(typeof(IDbContextResolver), contextResolverType);
128128
}
129129
else
130130
{

test/DiscoveryTests/ServiceDiscoveryFacadeTests.cs

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,12 @@ public ServiceDiscoveryFacadeTests()
5858
[Fact]
5959
public void AddAssembly_Adds_All_Resources_To_Graph()
6060
{
61-
// Arrange, act
61+
// Arrange
6262
IServiceDiscoveryFacade facade = new ServiceDiscoveryFacade(_services, _resourceGraphBuilder);
6363
facade.AddAssembly(typeof(Person).Assembly);
6464
facade.DiscoverResources();
6565

66-
// Assert
66+
// Act
6767
var resourceGraph = _resourceGraphBuilder.Build();
6868
var personResource = resourceGraph.GetResourceContext(typeof(Person));
6969
var articleResource = resourceGraph.GetResourceContext(typeof(Article));
@@ -75,8 +75,10 @@ public void AddAssembly_Adds_All_Resources_To_Graph()
7575
[Fact]
7676
public void AddCurrentAssembly_Adds_Resources_To_Graph()
7777
{
78-
// Arrange, act
78+
// Arrange
7979
IServiceDiscoveryFacade facade = new ServiceDiscoveryFacade(_services, _resourceGraphBuilder);
80+
81+
// Act
8082
facade.AddCurrentAssembly();
8183
facade.DiscoverResources();
8284

@@ -89,8 +91,10 @@ public void AddCurrentAssembly_Adds_Resources_To_Graph()
8991
[Fact]
9092
public void AddCurrentAssembly_Adds_Services_To_Container()
9193
{
92-
// Arrange, act
94+
// Arrange
9395
IServiceDiscoveryFacade facade = new ServiceDiscoveryFacade(_services, _resourceGraphBuilder);
96+
97+
// Act
9498
facade.AddCurrentAssembly();
9599
facade.DiscoverServices();
96100

@@ -103,8 +107,10 @@ public void AddCurrentAssembly_Adds_Services_To_Container()
103107
[Fact]
104108
public void AddCurrentAssembly_Adds_Repositories_To_Container()
105109
{
106-
// Arrange, act
110+
// Arrange
107111
IServiceDiscoveryFacade facade = new ServiceDiscoveryFacade(_services, _resourceGraphBuilder);
112+
113+
// Act
108114
facade.AddCurrentAssembly();
109115
facade.DiscoverServices();
110116

@@ -113,6 +119,20 @@ public void AddCurrentAssembly_Adds_Repositories_To_Container()
113119
Assert.IsType<TestModelRepository>(services.GetService<IResourceRepository<TestModel>>());
114120
}
115121

122+
[Fact]
123+
public void AddCurrentAssembly_Adds_ResourceDefinitions_To_Container()
124+
{
125+
// Arrange
126+
IServiceDiscoveryFacade facade = new ServiceDiscoveryFacade(_services, _resourceGraphBuilder);
127+
128+
// Act
129+
facade.AddCurrentAssembly();
130+
facade.DiscoverServices();
131+
132+
// Assert
133+
var services = _services.BuildServiceProvider();
134+
Assert.IsType<TestModelResourceDefinition>(services.GetService<ResourceDefinition<TestModel>>());
135+
}
116136
public sealed class TestModel : Identifiable { }
117137

118138
public class TestModelService : JsonApiResourceService<TestModel>
@@ -147,5 +167,10 @@ public TestModelRepository(
147167
: base(targetedFields, _dbContextResolver, resourceGraph, genericServiceFactory, resourceFactory, constraintProviders, loggerFactory)
148168
{ }
149169
}
170+
171+
public class TestModelResourceDefinition : ResourceDefinition<TestModel>
172+
{
173+
public TestModelResourceDefinition(IResourceGraph resourceGraph) : base(resourceGraph) { }
174+
}
150175
}
151176
}

0 commit comments

Comments
 (0)