Skip to content

Commit d217336

Browse files
committed
test(post): failing test when creating Guid id entities
1 parent e53fd07 commit d217336

File tree

1 file changed

+48
-1
lines changed

1 file changed

+48
-1
lines changed

test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/CreatingDataTests.cs

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using JsonApiDotNetCore.Serialization;
99
using JsonApiDotNetCore.Services;
1010
using JsonApiDotNetCoreExample;
11+
using JsonApiDotNetCoreExample.Data;
1112
using JsonApiDotNetCoreExample.Models;
1213
using Microsoft.AspNetCore.Hosting;
1314
using Microsoft.AspNetCore.TestHost;
@@ -27,11 +28,57 @@ public CreatingDataTests(DocsFixture<Startup, JsonDocWriter> fixture)
2728
{
2829
_fixture = fixture;
2930
_jsonApiContext = fixture.GetService<IJsonApiContext>();
30-
_todoItemFaker = new Faker<TodoItem>()
31+
_todoItemFaker = new Faker<TodoItem>()
3132
.RuleFor(t => t.Description, f => f.Lorem.Sentence())
3233
.RuleFor(t => t.Ordinal, f => f.Random.Number());
3334
}
3435

36+
[Fact]
37+
public async Task Can_Create_Guid_Identifiable_Entities()
38+
{
39+
// arrange
40+
var builder = new WebHostBuilder()
41+
.UseStartup<Startup>();
42+
var httpMethod = new HttpMethod("POST");
43+
var server = new TestServer(builder);
44+
var client = server.CreateClient();
45+
46+
var context = _fixture.GetService<AppDbContext>();
47+
48+
var owner = new JsonApiDotNetCoreExample.Models.Person();
49+
context.People.Add(owner);
50+
await context.SaveChangesAsync();
51+
52+
var route = "/api/v1/todo-item-collections";
53+
var request = new HttpRequestMessage(httpMethod, route);
54+
var content = new
55+
{
56+
data = new
57+
{
58+
type = "todo-item-collections"
59+
},
60+
relationships = new
61+
{
62+
owner = new
63+
{
64+
data = new
65+
{
66+
type = "people",
67+
id = owner.Id.ToString()
68+
}
69+
}
70+
}
71+
};
72+
request.Content = new StringContent(JsonConvert.SerializeObject(content));
73+
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");
74+
75+
// act
76+
var response = await client.SendAsync(request);
77+
78+
// assert
79+
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
80+
}
81+
3582
[Fact]
3683
public async Task Request_With_ClientGeneratedId_Returns_403()
3784
{

0 commit comments

Comments
 (0)