v/vlib/v/tests/interface_auto_str_gen_test.v

51 lines
646 B
V

struct Dog {
breed string
}
struct Cat {
breed string
}
interface Animal {
breed string
}
fn test_auto_str_gen_for_interfaces() {
x := Animal(Cat{'Siamese'})
assert '$x' == "
Animal(Cat{
breed: 'Siamese'
})
".trim_space()
}
struct Holder {
x Animal
}
struct Holder2 {
x map[string]Holder
breed string
}
fn test_auto_str_gen_for_complex_interface_types() {
a := Animal(Dog{'hi'})
h := Holder{a}
m := {
'dsa': h
}
h2 := Holder2{m, 'N/A'}
a2 := Animal(h2)
assert '$a2' == r"
Animal(Holder2{
x: {'dsa': Holder{
x: Animal(Dog{
breed: 'hi'
})
}}
breed: 'N/A'
})
".trim_space()
}