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