forked from JSONAPIdotNET/JSONAPI.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathErrorDocumentFormatterTests.cs
More file actions
48 lines (43 loc) · 2.03 KB
/
Copy pathErrorDocumentFormatterTests.cs
File metadata and controls
48 lines (43 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System.Threading.Tasks;
using JSONAPI.Documents;
using JSONAPI.Json;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using Newtonsoft.Json;
namespace JSONAPI.Tests.Json
{
[TestClass]
public class ErrorDocumentFormatterTests : JsonApiFormatterTestsBase
{
[TestMethod]
public async Task Serialize_ErrorDocument()
{
var error1 = new Mock<IError>(MockBehavior.Strict);
var error2 = new Mock<IError>(MockBehavior.Strict);
var mockErrorFormatter = new Mock<IErrorFormatter>(MockBehavior.Strict);
mockErrorFormatter.Setup(s => s.Serialize(error1.Object, It.IsAny<JsonWriter>()))
.Returns((IError error, JsonWriter writer) =>
{
writer.WriteValue("first error would go here");
return Task.FromResult(0);
});
mockErrorFormatter.Setup(s => s.Serialize(error2.Object, It.IsAny<JsonWriter>()))
.Returns((IError error, JsonWriter writer) =>
{
writer.WriteValue("second error would go here");
return Task.FromResult(0);
});
var mockMetadata = new Mock<IMetadata>(MockBehavior.Strict);
var mockMetadataFormatter = new Mock<IMetadataFormatter>(MockBehavior.Strict);
mockMetadataFormatter.Setup(s => s.Serialize(mockMetadata.Object, It.IsAny<JsonWriter>()))
.Returns((IMetadata metadata, JsonWriter writer) =>
{
writer.WriteValue("metadata goes here");
return Task.FromResult(0);
});
IErrorDocument document = new ErrorDocument(new[] { error1.Object, error2.Object }, mockMetadata.Object);
var formatter = new ErrorDocumentFormatter(mockErrorFormatter.Object, mockMetadataFormatter.Object);
await AssertSerializeOutput(formatter, document, "Json/Fixtures/ErrorDocumentFormatter/Serialize_ErrorDocument.json");
}
}
}