Skip to content

Commit 83e58b0

Browse files
committed
Fixing types in tests
1 parent 2bbeaf5 commit 83e58b0

File tree

3 files changed

+25
-17
lines changed

3 files changed

+25
-17
lines changed

Extensions/Json/Cosmos.DataTransfer.JsonExtension.UnitTests/JsonDictionaryDataItemTest.cs

+10-8
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,19 @@ public class JsonDictionaryDataItemTest
1111
public void ConvertNumber()
1212
{
1313
var data = new Dictionary<string, object?>
14-
{
15-
{ "integer", 1 },
16-
{ "doubleAsNumber1", 1.0 },
17-
{ "doubleAsNumber2", 1.1 },
18-
};
14+
{
15+
{ "integer", 1 },
16+
{ "long", int.MaxValue * 2L },
17+
{ "doubleAsNumber1", 1.0 },
18+
{ "doubleAsNumber2", 1.1 },
19+
};
1920

2021
var output = new JsonDictionaryDataItem(data);
2122

22-
Assert.IsTrue(output.GetValue("integer")?.GetType()==typeof(int));
23-
Assert.IsTrue(output.GetValue("doubleAsNumber1")?.GetType()==typeof(double));
24-
Assert.IsTrue(output.GetValue("doubleAsNumber2")?.GetType()==typeof(double));
23+
Assert.IsTrue(output.GetValue("integer")?.GetType() == typeof(int));
24+
Assert.IsTrue(output.GetValue("long")?.GetType() == typeof(long));
25+
Assert.IsTrue(output.GetValue("doubleAsNumber1")?.GetType() == typeof(double));
26+
Assert.IsTrue(output.GetValue("doubleAsNumber2")?.GetType() == typeof(double));
2527
}
2628
}
2729
}

Extensions/Json/Cosmos.DataTransfer.JsonExtension.UnitTests/JsonSourceTests.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public async Task ReadAsync_WithSingleObjectFile_ReadsValues()
6161
{
6262
counter++;
6363
CollectionAssert.AreEquivalent(new[] { "id", "name" }, dataItem.GetFieldNames().ToArray());
64-
Assert.IsInstanceOfType(dataItem.GetValue("id"), typeof(double));
64+
Assert.IsInstanceOfType(dataItem.GetValue("id"), typeof(int));
6565
Assert.IsNotNull(dataItem.GetValue("name"));
6666
}
6767

@@ -85,9 +85,9 @@ public async Task ReadAsync_WithSingleObjectsFolder_ReadsValuesInOrder()
8585
counter++;
8686
CollectionAssert.AreEquivalent(new[] { "id", "name" }, dataItem.GetFieldNames().ToArray());
8787
object? value = dataItem.GetValue("id");
88-
Assert.IsInstanceOfType(value, typeof(double));
88+
Assert.IsInstanceOfType(value, typeof(int));
8989
Assert.IsNotNull(dataItem.GetValue("name"));
90-
var current = (double?)value ?? int.MaxValue;
90+
var current = (int?)value ?? int.MaxValue;
9191
Assert.IsTrue(current > lastId);
9292
lastId = current;
9393
}
@@ -109,7 +109,7 @@ public async Task ReadAsync_WithArraysFolder_ReadsValues()
109109
{
110110
counter++;
111111
CollectionAssert.AreEquivalent(new[] { "id", "name" }, dataItem.GetFieldNames().ToArray());
112-
Assert.IsInstanceOfType(dataItem.GetValue("id"), typeof(double));
112+
Assert.IsInstanceOfType(dataItem.GetValue("id"), typeof(int));
113113
Assert.IsNotNull(dataItem.GetValue("name"));
114114
}
115115

@@ -130,7 +130,7 @@ public async Task ReadAsync_WithMixedObjectsFolder_ReadsValues()
130130
{
131131
counter++;
132132
CollectionAssert.AreEquivalent(new[] { "id", "name" }, dataItem.GetFieldNames().ToArray());
133-
Assert.IsInstanceOfType(dataItem.GetValue("id"), typeof(double));
133+
Assert.IsInstanceOfType(dataItem.GetValue("id"), typeof(int));
134134
Assert.IsNotNull(dataItem.GetValue("name"));
135135
}
136136

Extensions/Json/Cosmos.DataTransfer.JsonExtension/JsonDictionaryDataItem.cs

+10-4
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,11 @@ public IEnumerable<string> GetFieldNames()
4242
return element.GetString();
4343
case JsonValueKind.Number:
4444
{
45-
if (IsInteger(element.ToString()))
45+
if (IsInteger(element.GetRawText()))
4646
return element.GetInt32();
47-
else
48-
return element.GetDouble();
47+
if (IsLong(element.GetRawText()))
48+
return element.GetInt64();
49+
return element.GetDouble();
4950
}
5051
case JsonValueKind.True:
5152
return true;
@@ -64,9 +65,14 @@ private static JsonDictionaryDataItem GetChildObject(JsonElement element)
6465
return new JsonDictionaryDataItem(element.EnumerateObject().ToDictionary(p => p.Name, p => (object?)p.Value));
6566
}
6667

67-
static bool IsInteger(string ?value)
68+
private static bool IsInteger(string? value)
6869
{
6970
return int.TryParse(value, out _);
7071
}
72+
73+
private static bool IsLong(string? value)
74+
{
75+
return long.TryParse(value, out _);
76+
}
7177
}
7278
}

0 commit comments

Comments
 (0)