Skip to content

Commit 4149339

Browse files
committed
impl: add tests for types
- Added tests for all the basic types
1 parent f603f7c commit 4149339

File tree

4 files changed

+23
-30
lines changed

4 files changed

+23
-30
lines changed

src/rust/rust_kvs/src/kvs_value.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,6 @@ impl From<KvsMap> for KvsValue {
113113
}
114114
}
115115

116-
117-
118116
// Trait for extracting inner values from KvsValue
119117
pub trait KvsValueGet {
120118
fn get_inner_value(val: &KvsValue) -> Option<&Self>;

src/rust/rust_kvs/tests/common.rs

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,46 +13,41 @@ use std::iter::zip;
1313
/// * `true` if provided values are same.
1414
pub fn compare_kvs_values(left: &KvsValue, right: &KvsValue) -> bool {
1515
match (left, right) {
16-
(KvsValue::Number(l), KvsValue::Number(r)) => l == r,
17-
(KvsValue::Boolean(l), KvsValue::Boolean(r)) => l == r,
18-
(KvsValue::String(l), KvsValue::String(r)) => l == r,
16+
(KvsValue::I32(i32_val_l), KvsValue::I32(i32_val_r)) => i32_val_l == i32_val_r,
17+
(KvsValue::U32(u32_val_l), KvsValue::U32(u32_val_r)) => u32_val_l == u32_val_r,
18+
(KvsValue::I64(i64_val_l), KvsValue::I64(i64_val_r)) => i64_val_l == i64_val_r,
19+
(KvsValue::U64(u64_val_l), KvsValue::U64(u64_val_r)) => u64_val_l == u64_val_r,
20+
(KvsValue::F64(f64_val_l), KvsValue::F64(f64_val_r)) => f64_val_l == f64_val_r,
21+
(KvsValue::Boolean(bool_val_l), KvsValue::Boolean(bool_val_r)) => bool_val_l == bool_val_r,
22+
(KvsValue::String(string_val_l), KvsValue::String(string_val_r)) => {
23+
string_val_l == string_val_r
24+
}
1925
(KvsValue::Null, KvsValue::Null) => true,
20-
(KvsValue::Array(l), KvsValue::Array(r)) => {
21-
// Check size.
22-
if l.len() != r.len() {
26+
(KvsValue::Array(array_l), KvsValue::Array(array_r)) => {
27+
if array_l.len() != array_r.len() {
2328
return false;
2429
}
25-
26-
// Iterate over elements.
27-
for (lv, rv) in zip(l, r) {
28-
if !compare_kvs_values(lv, rv) {
30+
for (elem_l, elem_r) in zip(array_l, array_r) {
31+
if !compare_kvs_values(elem_l, elem_r) {
2932
return false;
3033
}
3134
}
32-
3335
true
3436
}
35-
(KvsValue::Object(l), KvsValue::Object(r)) => {
36-
// Check size.
37-
if l.len() != r.len() {
37+
(KvsValue::Object(object_l), KvsValue::Object(object_r)) => {
38+
if object_l.len() != object_r.len() {
3839
return false;
3940
}
40-
41-
// Check keys.
42-
if l.keys().ne(r.keys()) {
41+
if object_l.keys().ne(object_r.keys()) {
4342
return false;
4443
}
45-
46-
// Iterate over elements.
47-
let keys = l.keys();
48-
for k in keys {
49-
if !compare_kvs_values(&l[k], &r[k]) {
44+
for k in object_l.keys() {
45+
if !compare_kvs_values(&object_l[k], &object_r[k]) {
5046
return false;
5147
}
5248
}
53-
5449
true
5550
}
56-
(_, _) => false,
51+
_ => false,
5752
}
5853
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"string1": "Hello",
3-
"bool1": false,
4-
"number1": 987
2+
"string1": { "type": "String", "value": "Hello" },
3+
"bool1": { "type": "Boolean", "value": false },
4+
"number1": { "type": "I32", "value": 987 }
55
}

src/rust/rust_kvs_tool/src/kvs_tool.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ enum SupportedTypes {
115115
/// Converts a TinyJSON value to a KVS value.
116116
fn from_tinyjson(value: &JsonValue) -> KvsValue {
117117
match value {
118-
JsonValue::Number(n) => KvsValue::Number(*n),
118+
JsonValue::Number(n) => KvsValue::F64(*n),
119119
JsonValue::Boolean(b) => KvsValue::Boolean(*b),
120120
JsonValue::String(s) => KvsValue::String(s.clone()),
121121
JsonValue::Null => KvsValue::Null,

0 commit comments

Comments
 (0)