Skip to content

Commit 46ab118

Browse files
Deseralization errors
- Add simple unit tests for facets & autocompletes response
1 parent 8410f78 commit 46ab118

File tree

3 files changed

+51
-2
lines changed

3 files changed

+51
-2
lines changed

APIs/src/EpiServer.ContentGraph/Api/Result/ContentGraphHits.cs

-2
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,6 @@ private void GetJArray<TReturn>(object jObject, string key, Dictionary<string, I
8484
case "JArray":
8585
keyValues.Add(key, ((JArray)jObject).ToObject<IEnumerable<TReturn>>());
8686
break;
87-
case "JProperty":
88-
break;
8987
default:
9088
break;
9189
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using Xunit;
2+
using Newtonsoft.Json;
3+
using EPiServer.ContentGraph.Api.Result;
4+
5+
namespace EpiServer.ContentGraph.UnitTests.DeserializationTets
6+
{
7+
public class DynamicAutoCompleteResponseTests
8+
{
9+
const string response = "{\"data\":{\"Object\":{\"autocomplete\":{\"Categories\":{\"ProviderName\":[\"Sample Category\"]},\"WebsiteUrl\":[\"http://example.com/\",\"https://test.com/\"]},\"total\":2}},\"extensions\":{\"correlationId\":\"866380417b4f1fb0\",\"cost\":72,\"costSummary\":[\"CompanyBlock(72)=basicFilter(1)*2+autocomplete(2)*35\"]}}";
10+
[Fact]
11+
public void nested_aotucompletes_should_convert_successfully()
12+
{
13+
var results = JsonSerializer.CreateDefault().Deserialize<ContentGraphResult<object>>(new JsonTextReader(new StringReader(response)));
14+
var autoCompletesDict = results.Content.AutoComplete;
15+
Assert.True(autoCompletesDict.Count.Equals(2));
16+
17+
Assert.NotNull(autoCompletesDict["Categories.ProviderName"]);
18+
Assert.True(autoCompletesDict["Categories.ProviderName"].Count().Equals(1));
19+
20+
Assert.NotNull(autoCompletesDict["WebsiteUrl"]);
21+
Assert.True(autoCompletesDict["WebsiteUrl"].Count().Equals(2));
22+
}
23+
}
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using Xunit;
2+
using Newtonsoft.Json;
3+
using EPiServer.ContentGraph.Api.Result;
4+
5+
namespace EpiServer.ContentGraph.UnitTests.DeserializationTets
6+
{
7+
public class DynamicFacetsResponseTests
8+
{
9+
const string response = "{\"data\":{\"Object\":{\"items\":[{\"Name\":\"Coreware\"}],\"facets\":{\"Categories\":{\"Id\":[{\"name\":\"100\",\"count\":3}],\"Language\":{\"Name\":[{\"name\":\"en\",\"count\":3}]}},\"Name\":[{\"name\":\"Farfetch\",\"count\":3},{\"name\":\"Geta\",\"count\":3}]},\"total\":1154}},\"extensions\":{\"correlationId\":\"8662284c0889108a\",\"cost\":62,\"costSummary\":[\"CompanyBlock(62)=basicFilter(1)*2+facets(2)*30\"]}}";
10+
[Fact]
11+
public void nested_facets_response_should_convert_successfully()
12+
{
13+
var results = JsonSerializer.CreateDefault().Deserialize<ContentGraphResult<object>>(new JsonTextReader(new StringReader(response)));
14+
var facetsDict = results.Content.Facets;
15+
Assert.True(facetsDict.Count.Equals(3));
16+
17+
Assert.NotNull(facetsDict["Categories.Id"]);
18+
Assert.True(facetsDict["Categories.Id"].Count().Equals(1));
19+
20+
Assert.NotNull(facetsDict["Categories.Language.Name"]);
21+
Assert.True(facetsDict["Categories.Language.Name"].Count().Equals(1));
22+
23+
Assert.NotNull(facetsDict["Name"]);
24+
Assert.True(facetsDict["Name"].Count().Equals(2));
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)