ucg/integration_tests/tuple_test.ucg
Jeremy Wall d989e47706 FEATURE: Use a better DSL for unit tests.
* Assert now requires a tuple instead of a string containing
  statements.
* We include a helpful ucg based unit testing module.

Fixes: #26
2019-01-10 17:17:57 -06:00

139 lines
2.5 KiB
Plaintext

let simpletpl = {
foo = "bar"
};
let stringfieldtpl = {
"field 1" = 1,
};
let nestedtpl = {
inner = {
field = "value",
},
scalar = 1,
list = [1, 2, 3, 4],
maybe_val = NULL,
};
assert {
ok = simpletpl.foo == "bar",
desc = "simpletpl.foo == \"bar\"",
};
assert {
ok = stringfieldtpl."field 1" == 1,
desc = "stringfieldtpl.\"field 1\" == 1",
};
assert {
ok = nestedtpl.scalar == 1,
desc = "nestedtpl.scalar == 1",
};
assert {
ok = nestedtpl.maybe_val == NULL,
desc = "nestedtpl.maybe_val == NULL",
};
assert {
ok = nestedtpl.inner.field == "value",
desc = "nestedtpl.inner.field == \"value\"",
};
assert {
ok = nestedtpl.list.0 == 1,
desc = "nestedtpl.list.0 == 1",
};
assert {
ok = nestedtpl.list.1 == 2,
desc = "nestedtpl.list.1 == 2",
};
assert {
ok = nestedtpl.list.2 == 3,
desc = "nestedtpl.list.2 == 3",
};
assert {
ok = nestedtpl.list.3 == 4,
desc = "nestedtpl.list.3 == 4",
};
let nestedcopy = nestedtpl{
inner = self.inner{
inner = {
field3 = "three",
},
field2 = 2,
},
maybe_val = "some val",
};
let deepnestedcopy = nestedcopy{
ignoreme = "ignored",
inner = self.inner{
inner = self.inner{
field4 = 4,
},
},
};
assert {
ok = nestedcopy.inner.field2 == 2,
desc = "nestedcopy.inner.field2 == 2",
};
assert {
ok = nestedcopy.inner.inner.field3 == "three",
desc = "nestedcopy.inner.inner.field3 == \"three\"",
};
assert {
ok = deepnestedcopy.inner.inner.field4 == 4,
desc = "deepnestedcopy.inner.inner.field4 == 4",
};
assert {
ok = deepnestedcopy.maybe_val == "some val",
desc = "deepnestedcopy.maybe_val == \"some val\"",
};
let base_maybe = {
real = "A real value",
};
let copy_maybe = base_maybe{
real = NULL,
};
assert {
ok = copy_maybe.real == NULL,
desc = "copy_maybe.real == NULL",
};
let quotedself_tpl = {
"self" = "myself",
};
assert {
ok = quotedself_tpl."self" == "myself",
desc = "quotedself_tpl.\"self\" == \"myself\"",
};
let quotedenv_tpl = {
"env" = "myenv",
};
assert {
ok = quotedenv_tpl."env" == "myenv",
desc = "quotedenv_tpl.\"env\" == \"myenv\"",
};
let unquotedenv_tpl = {
env = "myenv",
};
assert {
ok = unquotedenv_tpl."env" == "myenv",
desc = "unquotedenv_tpl.\"env\" == \"myenv\"",
};
let unquotedself_tpl = {
self = "myself",
};
assert {
ok = unquotedself_tpl."self" == "myself",
desc = "unquotedself_tpl.\"self\" == \"myself\"",
};