70 lines
2.0 KiB
C#
70 lines
2.0 KiB
C#
|
using System.Text.Json;
|
||
|
|
||
|
namespace KeywordsEverywhereClient.Tests;
|
||
|
|
||
|
[TestClass]
|
||
|
public class SerializationTests
|
||
|
{
|
||
|
private string ValidResponseJson = """
|
||
|
{
|
||
|
"data": [
|
||
|
{
|
||
|
"vol": 135000,
|
||
|
"cpc": {
|
||
|
"currency": "$",
|
||
|
"value": "1.14"
|
||
|
},
|
||
|
"keyword": "hello world",
|
||
|
"competition": 0.01,
|
||
|
"trend": [
|
||
|
{
|
||
|
"month": "July",
|
||
|
"year": 2023,
|
||
|
"value": 135000
|
||
|
},
|
||
|
{
|
||
|
"month": "August",
|
||
|
"year": 2024,
|
||
|
"value": 135001
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"credits": 399174,
|
||
|
"time": 0.01
|
||
|
}
|
||
|
""";
|
||
|
|
||
|
[TestMethod]
|
||
|
public void CanDeserialize()
|
||
|
{
|
||
|
var result = JsonSerializer.Deserialize<GetKeywordDataResponse>(ValidResponseJson)
|
||
|
?? throw new InvalidOperationException("Success response is null.");
|
||
|
|
||
|
Assert.AreEqual(1, result.Data.Count);
|
||
|
Assert.AreEqual(399174, result.Credits);
|
||
|
Assert.AreEqual(0.01, result.Time);
|
||
|
|
||
|
var data = result.Data[0];
|
||
|
|
||
|
Assert.AreEqual(135000, data.Volume);
|
||
|
|
||
|
Assert.AreEqual("$", data.CostPerClick.Currency);
|
||
|
Assert.AreEqual("1.14", data.CostPerClick.Value);
|
||
|
|
||
|
Assert.AreEqual("hello world", data.Keyword);
|
||
|
|
||
|
Assert.AreEqual(0.01, data.Competition);
|
||
|
|
||
|
Assert.AreEqual(2, data.Trend.Count);
|
||
|
|
||
|
Assert.AreEqual("July", data.Trend[0].Month);
|
||
|
Assert.AreEqual(2023, data.Trend[0].Year);
|
||
|
Assert.AreEqual(135000, data.Trend[0].Value);
|
||
|
|
||
|
Assert.AreEqual("August", data.Trend[1].Month);
|
||
|
Assert.AreEqual(2024, data.Trend[1].Year);
|
||
|
Assert.AreEqual(135001, data.Trend[1].Value);
|
||
|
}
|
||
|
}
|