forked from DevExpress/DevExtreme.AspNet.Data
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSerializeTestsEx.cs
More file actions
52 lines (45 loc) · 2.78 KB
/
SerializeTestsEx.cs
File metadata and controls
52 lines (45 loc) · 2.78 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
49
50
51
52
#if NEWTONSOFT_TESTS
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Xunit;
namespace DevExtreme.AspNet.Data.Tests {
public class SerializeTestsEx {
[Fact]
public void SerializeEmptyOptions() {
Assert.Equal(@"{""RequireTotalCount"":false,""RequireGroupCount"":false,""IsCountQuery"":false,""IsSummaryQuery"":false,""Skip"":0,""Take"":0,""Sort"":null,""Group"":null,""Filter"":null,""TotalSummary"":null,""GroupSummary"":null,""Select"":null,""PreSelect"":null,""RemoteSelect"":null,""RemoteGrouping"":null,""ExpandLinqSumType"":null,""PrimaryKey"":null,""DefaultSort"":null,""StringToLower"":null,""PaginateViaPrimaryKey"":null,""SortByPrimaryKey"":null,""AllowAsyncOverSync"":false}",
JsonConvert.SerializeObject(new DataSourceLoadOptionsBase()));
}
[Fact]
public void SerializeDeserializeConvertersAffectedOptions() {
var loadOptionsStrGroup = @"""Group"":[{""GroupInterval"":""100"",""IsExpanded"":null,""Selector"":""freight"",""Desc"":false}]";
var loadOptionsStrFilter = @"""Filter"":[[""orderDate"","">="",""2011-12-13T14:15:16""],""and"",[""orderDate"",""<"",""2011-12-13T14:15:17""]]";
var loadOptions = new DataSourceLoadOptionsBase() {
Group = new GroupingInfo[] {
new GroupingInfo() {
GroupInterval = "100",
Selector = "freight"
}
},
Filter = new List<object>() {
new List<object>() { "orderDate", ">=", new DateTime(2011, 12, 13, 14, 15, 16) },
"and",
new List<object>() { "orderDate", "<", new DateTime(2011, 12, 13, 14, 15, 17) }
}
};
var loadOptionsSerialized = JsonConvert.SerializeObject(loadOptions);
Assert.Contains($"{loadOptionsStrGroup},{loadOptionsStrFilter}", loadOptionsSerialized);
var loadOptionsDeserialized = JsonConvert.DeserializeObject<DataSourceLoadOptionsBase>(loadOptionsSerialized);
Assert.Equal(loadOptions.Group[0].GroupInterval, loadOptionsDeserialized.Group[0].GroupInterval);
Assert.Equal(loadOptions.Group[0].Selector, loadOptionsDeserialized.Group[0].Selector);
Assert.Equal(loadOptions.Filter.Count, loadOptionsDeserialized.Filter.Count);
var filter0Orig = (IList<object>)loadOptions.Filter[0];
var filter0NTSF = (JArray)loadOptionsDeserialized.Filter[0];
Assert.Equal(filter0Orig[0], ((JValue)filter0NTSF[0]).Value);
Assert.Equal(filter0Orig[1], ((JValue)filter0NTSF[1]).Value);
Assert.Equal(filter0Orig[2], ((JValue)filter0NTSF[2]).Value);
}
}
}
#endif