Skip to content

Commit c4cc81e

Browse files
authored
Merge pull request #293 from bobbyangers/dev-rangers-json
Example Proposal to remove depenency on Newtonsoft.Json
2 parents e57c484 + e086474 commit c4cc81e

File tree

141 files changed

+930
-1068
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+930
-1068
lines changed

.tests/GoogleApi.Test/AppSettings.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
using Newtonsoft.Json;
1+
using System.Text.Json.Serialization;
22

33
namespace GoogleApi.Test;
44

55
public class AppSettings
66
{
7-
[JsonProperty("ApiKey")]
7+
[JsonPropertyName("ApiKey")]
88
public string ApiKey { get; set; }
99

10-
[JsonProperty("SearchEngineId")]
10+
[JsonPropertyName("SearchEngineId")]
1111
public string SearchEngineId { get; set; }
1212
}

.tests/GoogleApi.Test/Search/Web/WebSearchTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public void WebSearchTest()
101101
Assert.IsFalse(query.Filter);
102102
Assert.IsNull(query.GeoLocation);
103103
Assert.IsNull(query.CountryRestrict);
104-
Assert.IsNull(query.Googlehost);
104+
Assert.IsNull(query.GoogleHost);
105105
Assert.IsTrue(query.DisableCnTwTranslation);
106106
Assert.IsNull(query.AndTerms);
107107
Assert.AreEqual(Language.English, query.InterfaceLanguage);

.tests/GoogleApi.UnitTests/Common/Converters/BooleanConverterTest.cs

Lines changed: 0 additions & 61 deletions
This file was deleted.

.tests/GoogleApi.UnitTests/Common/Converters/StringEnumListConverterTest.cs

Lines changed: 0 additions & 45 deletions
This file was deleted.

.tests/GoogleApi.UnitTests/Common/Converters/StringEnumOrDefaultConverterTest.cs

Lines changed: 0 additions & 45 deletions
This file was deleted.

.tests/GoogleApi.UnitTests/GoogleApi.UnitTests.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,8 @@
2626
<ProjectReference Include="..\..\GoogleApi\GoogleApi.csproj" />
2727
</ItemGroup>
2828

29+
<ItemGroup>
30+
<Folder Include="Common\Converters\" />
31+
</ItemGroup>
32+
2933
</Project>

.tests/GoogleApi.UnitTests/HttpEngineTests.cs

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
1+
using System;
2+
using System.IO;
3+
using System.Net.Http;
4+
using System.Text.Json;
5+
using System.Text.Json.Serialization;
6+
using System.Threading.Tasks;
7+
18
using AutoFixture;
9+
210
using GoogleApi.Entities;
11+
using GoogleApi.Entities.Common.Converters;
312
using GoogleApi.Entities.Common.Enums;
413
using GoogleApi.Entities.Interfaces;
514
using GoogleApi.Exceptions;
15+
16+
617
using NUnit.Framework;
18+
719
using RichardSzalay.MockHttp;
8-
using System;
9-
using System.IO;
10-
using System.Net.Http;
11-
using System.Threading.Tasks;
12-
using Newtonsoft.Json;
1320

1421
namespace GoogleApi.UnitTests;
1522

@@ -18,6 +25,16 @@ public sealed class HttpEngineTests
1825
{
1926
private const string APPLICATION_JSON = "application/json";
2027

28+
private static System.Text.Json.JsonSerializerOptions _options = new System.Text.Json.JsonSerializerOptions
29+
{
30+
PropertyNameCaseInsensitive = true,
31+
MaxDepth = 100,
32+
DefaultIgnoreCondition = JsonIgnoreCondition.Always,
33+
Converters = { new BooleanJsonConverter(), new JsonStringEnumConverter(JsonNamingPolicy.CamelCase) },
34+
ReferenceHandler = ReferenceHandler.Preserve,
35+
36+
};
37+
2138
private readonly IFixture fixture = new Fixture();
2239
private MockHttpMessageHandler mockHttpMessageHandler;
2340

@@ -50,7 +67,7 @@ public void QueryWhenOkTest()
5067
status = "OK",
5168
data = new { }
5269
};
53-
var response = JsonConvert.SerializeObject(data);
70+
var response = JsonSerializer.Serialize(data, _options);
5471

5572
this.mockHttpMessageHandler
5673
.When("https://demo.googleapis.com/fakeservice/*")
@@ -79,7 +96,7 @@ public async Task QueryAsyncWhenOkTest()
7996
status = "OK",
8097
data = new { }
8198
};
82-
var response = JsonConvert.SerializeObject(data);
99+
var response = JsonSerializer.Serialize(data, _options);
83100

84101
this.mockHttpMessageHandler
85102
.When("https://demo.googleapis.com/fakeservice/*")
@@ -108,7 +125,7 @@ public async Task QueryPostWhenOk()
108125
status = "OK",
109126
data = new { }
110127
};
111-
var response = JsonConvert.SerializeObject(data);
128+
var response = JsonSerializer.Serialize(data, _options);
112129

113130
this.mockHttpMessageHandler
114131
.When("https://demo.googleapis.com/fakeservice/*")
@@ -160,7 +177,7 @@ public async Task QueryWhenNotFound()
160177
status = "NOT_FOUND",
161178
data = new { }
162179
};
163-
var response = JsonConvert.SerializeObject(data);
180+
var response = JsonSerializer.Serialize(data, _options);
164181

165182
this.mockHttpMessageHandler
166183
.When("https://demo.googleapis.com/fakeservice/*")
@@ -189,7 +206,7 @@ public async Task QueryWhenZeroResults()
189206
status = "ZERO_RESULTS",
190207
data = new { }
191208
};
192-
var response = JsonConvert.SerializeObject(data);
209+
var response = JsonSerializer.Serialize(data, _options);
193210

194211
this.mockHttpMessageHandler
195212
.When("https://demo.googleapis.com/fakeservice/*")
@@ -218,7 +235,7 @@ public void QueryWhenOverLimit()
218235
status = "OVER_QUERY_LIMIT",
219236
data = new { }
220237
};
221-
var response = JsonConvert.SerializeObject(data);
238+
var response = JsonSerializer.Serialize(data, _options);
222239

223240
this.mockHttpMessageHandler
224241
.When("https://demo.googleapis.com/fakeservice/*")
@@ -246,7 +263,7 @@ public void QueryWhenInvalidRequest()
246263
status = "INVALID_REQUEST",
247264
data = new { }
248265
};
249-
var response = JsonConvert.SerializeObject(data);
266+
var response = JsonSerializer.Serialize(data, _options);
250267

251268
this.mockHttpMessageHandler
252269
.When("https://demo.googleapis.com/fakeservice/*")
@@ -274,7 +291,7 @@ public void QueryWhenNoApiKey()
274291
status = "NO_API_KEY",
275292
data = new { }
276293
};
277-
var response = JsonConvert.SerializeObject(data);
294+
var response = JsonSerializer.Serialize(data, _options);
278295

279296
this.mockHttpMessageHandler
280297
.When("https://demo.googleapis.com/fakeservice/*")
@@ -303,7 +320,7 @@ public void QueryWhenRequestDenied()
303320
status = "REQUEST_DENIED",
304321
data = new { }
305322
};
306-
var response = JsonConvert.SerializeObject(data);
323+
var response = JsonSerializer.Serialize(data, _options);
307324

308325
this.mockHttpMessageHandler
309326
.When("https://demo.googleapis.com/fakeservice/*")
@@ -331,7 +348,7 @@ public void QueryWhenHttpError()
331348
status = "HTTP_ERROR",
332349
data = new { }
333350
};
334-
var response = JsonConvert.SerializeObject(data);
351+
var response = JsonSerializer.Serialize(data, _options);
335352

336353
this.mockHttpMessageHandler
337354
.When("https://demo.googleapis.com/fakeservice/*")
@@ -360,7 +377,7 @@ public void QueryWhenUnknownError()
360377
status = "UNKNOWN_ERROR",
361378
data = new { }
362379
};
363-
var response = JsonConvert.SerializeObject(data);
380+
var response = JsonSerializer.Serialize(data, _options);
364381

365382
this.mockHttpMessageHandler
366383
.When("https://demo.googleapis.com/fakeservice/*")

.tests/GoogleApi.UnitTests/Search/Common/Converters/DateRestrictJsonConverterTests.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using System;
22
using System.IO;
3+
using System.Text.Json;
34
using GoogleApi.Entities.Search.Common;
45
using GoogleApi.Entities.Search.Common.Converters;
5-
using Newtonsoft.Json;
66
using NUnit.Framework;
77

88
namespace GoogleApi.UnitTests.Search.Common.Converters;
@@ -37,10 +37,9 @@ public void ReadJsonTest()
3737
[Test]
3838
public void WriteJsonTest()
3939
{
40-
var writer = new JsonTextWriter(TextWriter.Null);
41-
var serializer = new JsonSerializer();
42-
var converter = new DateRestrictJsonConverter();
40+
var writer = new Utf8JsonWriter(new MemoryStream());
41+
var sut = new DateRestrictJsonConverter();
4342

44-
Assert.Throws<NotImplementedException>(() => converter.WriteJson(writer, new object(), serializer));
43+
Assert.Throws<NotImplementedException>(() => sut.Write(writer, new DateRestrict(), new JsonSerializerOptions()));
4544
}
4645
}

.tests/GoogleApi.UnitTests/Search/Common/Converters/SortExpressionJsonConverterTests.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using System;
22
using System.IO;
3+
using System.Text.Json;
34
using GoogleApi.Entities.Search.Common;
45
using GoogleApi.Entities.Search.Common.Converters;
5-
using Newtonsoft.Json;
66
using NUnit.Framework;
77

88
namespace GoogleApi.UnitTests.Search.Common.Converters;
@@ -37,10 +37,9 @@ public void ReadJsonTest()
3737
[Test]
3838
public void WriteJsonTest()
3939
{
40-
var writer = new JsonTextWriter(TextWriter.Null);
41-
var serializer = new JsonSerializer();
42-
var converter = new SortExpressionJsonConverter();
40+
var writer = new Utf8JsonWriter(new MemoryStream());
41+
var sut = new SortExpressionJsonConverter();
4342

44-
Assert.Throws<NotImplementedException>(() => converter.WriteJson(writer, new object(), serializer));
43+
Assert.Throws<NotImplementedException>(() => sut.Write(writer, new SortExpression(), new JsonSerializerOptions()));
4544
}
4645
}

GoogleApi/Entities/BaseRequest.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Text;
5+
using System.Text.Json.Serialization;
56
using GoogleApi.Entities.Interfaces;
6-
using Newtonsoft.Json;
7+
78
using GoogleApi.Entities.Common.Extensions;
89
using Org.BouncyCastle.Crypto.Digests;
910
using Org.BouncyCastle.Crypto.Macs;

0 commit comments

Comments
 (0)