forked from seeleteam/go-seele
/
debtVerifier.go
61 lines (50 loc) · 1.47 KB
/
debtVerifier.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
* @file
* @copyright defined in go-seele/LICENSE
*/
package types
// DebtVerifier interface
type DebtVerifier interface {
// ValidateDebt validate debt
// returns packed whether debt is packed
// returns confirmed whether debt is confirmed
// returns retErr error info
ValidateDebt(debt *Debt) (packed bool, confirmed bool, err error)
// IfDebtPacked
// returns packed whether debt is packed
// returns confirmed whether debt is confirmed
// returns retErr error info
IfDebtPacked(debt *Debt) (packed bool, confirmed bool, err error)
}
type TestVerifier struct {
packed bool
confirmed bool
err error
}
func NewTestVerifier(p bool, c bool, err error) *TestVerifier {
return &TestVerifier{
packed: p,
confirmed: c,
err: err,
}
}
func (v *TestVerifier) ValidateDebt(debt *Debt) (packed bool, confirmed bool, err error) {
return v.packed, v.confirmed, v.err
}
func (v *TestVerifier) IfDebtPacked(debt *Debt) (packed bool, confirmed bool, err error) {
return v.packed, v.confirmed, v.err
}
type TestVerifierWithFunc struct {
fun func(debt *Debt) (bool, bool, error)
}
func NewTestVerifierWithFunc(fun func(debt *Debt) (bool, bool, error)) *TestVerifierWithFunc {
return &TestVerifierWithFunc{
fun: fun,
}
}
func (v *TestVerifierWithFunc) ValidateDebt(debt *Debt) (packed bool, confirmed bool, err error) {
return v.fun(debt)
}
func (v *TestVerifierWithFunc) IfDebtPacked(debt *Debt) (packed bool, confirmed bool, err error) {
return v.fun(debt)
}