1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/json/json_encode_primite_test.v

41 lines
848 B
V
Raw Normal View History

import json
struct Test {
field MySumType
}
type MyInt = int
type MyString = string
type MySumType = MyString | int | string
fn test_alias_to_primitive() {
mut test := Test{
field: MyString('foo')
}
mut encoded := json.encode(test)
assert dump(encoded) == '{"field":"foo"}'
assert json.decode(Test, '{"field": "foo"}')!.field == MySumType('foo')
test = Test{
field: 'foo'
}
encoded = json.encode(test)
assert dump(encoded) == '{"field":"foo"}'
assert json.decode(Test, '{"field":"foo"}')! == test
test = Test{
field: 1
}
encoded = json.encode(test)
assert dump(encoded) == '{"field":1}'
assert json.decode(Test, '{"field":1}')! == test
mut test2 := MyString('foo')
encoded = json.encode(test2)
assert dump(encoded) == '"foo"'
mut test3 := MyInt(1000)
encoded = json.encode(test3)
assert dump(encoded) == '1000'
}