mirror of https://github.com/v2ray/v2ray-core
Darien Raymond
7 years ago
2 changed files with 67 additions and 0 deletions
@ -0,0 +1,29 @@ |
|||||||
|
package common_test |
||||||
|
|
||||||
|
import ( |
||||||
|
"errors" |
||||||
|
"testing" |
||||||
|
|
||||||
|
. "v2ray.com/core/common" |
||||||
|
. "v2ray.com/ext/assert" |
||||||
|
) |
||||||
|
|
||||||
|
func TestMust(t *testing.T) { |
||||||
|
assert := With(t) |
||||||
|
|
||||||
|
f := func() error { |
||||||
|
return errors.New("test error") |
||||||
|
} |
||||||
|
|
||||||
|
assert(func() { Must(f()) }, Panics) |
||||||
|
} |
||||||
|
|
||||||
|
func TestMust2(t *testing.T) { |
||||||
|
assert := With(t) |
||||||
|
|
||||||
|
f := func() (interface{}, error) { |
||||||
|
return nil, errors.New("test error") |
||||||
|
} |
||||||
|
|
||||||
|
assert(func() { Must2(f()) }, Panics) |
||||||
|
} |
@ -0,0 +1,38 @@ |
|||||||
|
package common_test |
||||||
|
|
||||||
|
import ( |
||||||
|
"context" |
||||||
|
"testing" |
||||||
|
|
||||||
|
. "v2ray.com/core/common" |
||||||
|
. "v2ray.com/ext/assert" |
||||||
|
) |
||||||
|
|
||||||
|
type TConfig struct { |
||||||
|
value int |
||||||
|
} |
||||||
|
|
||||||
|
type YConfig struct { |
||||||
|
value string |
||||||
|
} |
||||||
|
|
||||||
|
func TestObjectCreation(t *testing.T) { |
||||||
|
assert := With(t) |
||||||
|
|
||||||
|
var f = func(ctx context.Context, t interface{}) (interface{}, error) { |
||||||
|
return func() int { |
||||||
|
return t.(*TConfig).value |
||||||
|
}, nil |
||||||
|
} |
||||||
|
|
||||||
|
Must(RegisterConfig((*TConfig)(nil), f)) |
||||||
|
err := RegisterConfig((*TConfig)(nil), f) |
||||||
|
assert(err, IsNotNil) |
||||||
|
|
||||||
|
g, err := CreateObject(context.Background(), &TConfig{value: 2}) |
||||||
|
assert(err, IsNil) |
||||||
|
assert(g.(func() int)(), Equals, 2) |
||||||
|
|
||||||
|
_, err = CreateObject(context.Background(), &YConfig{value: "T"}) |
||||||
|
assert(err, IsNotNil) |
||||||
|
} |
Loading…
Reference in new issue