Skip to content

Commit 9e6a7c8

Browse files
committed
added tests for DefaultIncludeExpressionExtractor / fixed ugly typo
1 parent 1387b28 commit 9e6a7c8

5 files changed

Lines changed: 61 additions & 3 deletions

File tree

JSONAPI.Autofac/JsonApiAutofacModule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ protected override void Load(ContainerBuilder builder)
166166

167167
// Misc
168168
builder.RegisterType<DefaultSortExpressionExtractor>().As<ISortExpressionExtractor>().SingleInstance();
169-
builder.RegisterType<DefauktIncludeExpressionExtractor>().As<IIncludeExpressionExtractor>().SingleInstance();
169+
builder.RegisterType<DefaultIncludeExpressionExtractor>().As<IIncludeExpressionExtractor>().SingleInstance();
170170
}
171171
}
172172
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
using System.Net.Http;
2+
using FluentAssertions;
3+
using JSONAPI.Http;
4+
using Microsoft.VisualStudio.TestTools.UnitTesting;
5+
6+
namespace JSONAPI.Tests.Http
7+
{
8+
[TestClass]
9+
public class DefaultIncludeExpressionExtractorTests
10+
{
11+
[TestMethod]
12+
public void ExtractsSingleIncludeExpressionFromUri()
13+
{
14+
// Arrange
15+
const string uri = "http://api.example.com/dummies?include=boss";
16+
var request = new HttpRequestMessage(HttpMethod.Get, uri);
17+
18+
// Act
19+
var extractor = new DefaultIncludeExpressionExtractor();
20+
var inclExpressions = extractor.ExtractIncludeExpressions(request);
21+
22+
// Assert
23+
inclExpressions.Should().BeEquivalentTo("boss");
24+
}
25+
26+
27+
[TestMethod]
28+
public void ExtractsMultipleIncludeExpressionsFromUri()
29+
{
30+
// Arrange
31+
const string uri = "http://api.example.com/dummies?include=boss,office-address";
32+
var request = new HttpRequestMessage(HttpMethod.Get, uri);
33+
34+
// Act
35+
var extractor = new DefaultIncludeExpressionExtractor();
36+
var inclExpressions = extractor.ExtractIncludeExpressions(request);
37+
38+
// Assert
39+
inclExpressions.Should().BeEquivalentTo("boss", "office-address");
40+
}
41+
42+
[TestMethod]
43+
public void ExtractsNothingWhenThereIsNoIncludeParam()
44+
{
45+
// Arrange
46+
const string uri = "http://api.example.com/dummies";
47+
var request = new HttpRequestMessage(HttpMethod.Get, uri);
48+
49+
// Act
50+
var extractor = new DefaultIncludeExpressionExtractor();
51+
var inclExpression = extractor.ExtractIncludeExpressions(request);
52+
53+
// Assert
54+
inclExpression.Length.Should().Be(0);
55+
}
56+
}
57+
}

JSONAPI.Tests/JSONAPI.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
<Compile Include="Core\ResourceTypeRegistryTests.cs" />
9292
<Compile Include="Extensions\TypeExtensionsTests.cs" />
9393
<Compile Include="Http\BaseUrlServiceTest.cs" />
94+
<Compile Include="Http\DefaultIncludeExpressionExtractorTests.cs" />
9495
<Compile Include="Http\DefaultSortExpressionExtractorTests.cs" />
9596
<Compile Include="Json\JsonApiFormatterTests.cs" />
9697
<Compile Include="Models\Author.cs" />

JSONAPI/Http/DefauktIncludeExpressionExtractor.cs renamed to JSONAPI/Http/DefaultIncludeExpressionExtractor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace JSONAPI.Http
66
/// <summary>
77
/// Default implementation of <see cref="IIncludeExpressionExtractor" />
88
/// </summary>
9-
public class DefauktIncludeExpressionExtractor: IIncludeExpressionExtractor
9+
public class DefaultIncludeExpressionExtractor: IIncludeExpressionExtractor
1010
{
1111
private const string IncludeQueryParamKey = "include";
1212

JSONAPI/JSONAPI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<Compile Include="Core\ResourceTypeRelationship.cs" />
9191
<Compile Include="Core\ToManyResourceTypeRelationship.cs" />
9292
<Compile Include="Core\ToOneResourceTypeRelationship.cs" />
93-
<Compile Include="Http\DefauktIncludeExpressionExtractor.cs" />
93+
<Compile Include="Http\DefaultIncludeExpressionExtractor.cs" />
9494
<Compile Include="Http\DefaultSortExpressionExtractor.cs" />
9595
<Compile Include="Http\DocumentMaterializerLocator.cs" />
9696
<Compile Include="Http\IDocumentMaterializerLocator.cs" />

0 commit comments

Comments
 (0)