v4 / vlib / v / tests / options / option_ierror_field_test.v
23 lines · 20 sloc · 441 bytes · 7fc601f690a72f43285a796b41ec4ec76c1a3ee4
Raw
1struct Holder {
2mut:
3 err ?IError
4}
5
6fn (mut h Holder) set_err(e IError) {
7 h.err = e
8}
9
10fn test_direct_assignment() {
11 mut h := Holder{}
12 assert h.err == none
13 h.err = error('boom')
14 got := h.err or { panic('expected Some, got none') }
15 assert got.msg() == 'boom'
16}
17
18fn test_method_assignment() {
19 mut h := Holder{}
20 h.set_err(error('method boom'))
21 got := h.err or { panic('expected Some, got none') }
22 assert got.msg() == 'method boom'
23}
24