예제 #1
0
func (t *DoAllTest) SingleAction() {
	f := func(a int) string { return "" }
	a0 := oglemock.Return("taco")

	action := oglemock.DoAll(a0)
	AssertEq(nil, action.SetSignature(reflect.TypeOf(f)))

	rets := action.Invoke([]interface{}{17})
	ExpectThat(rets, ElementsAre("taco"))
}
예제 #2
0
func (t *DoAllTest) LastActionDoesntLikeSignature() {
	f := func(a int, b string) {}

	a0 := oglemock.Invoke(f)
	a1 := oglemock.Invoke(f)
	a2 := oglemock.Return(17)

	err := oglemock.DoAll(a0, a1, a2).SetSignature(reflect.TypeOf(f))
	ExpectThat(err, Error(HasSubstr("Action 2")))
	ExpectThat(err, Error(HasSubstr("1 vals; expected 0")))
}
예제 #3
0
func (t *DoAllTest) MultipleActions() {
	f := func(a int) string { return "" }

	var saved int
	a0 := oglemock.SaveArg(0, &saved)
	a1 := oglemock.Return("taco")

	action := oglemock.DoAll(a0, a1)
	AssertEq(nil, action.SetSignature(reflect.TypeOf(f)))

	rets := action.Invoke([]interface{}{17})
	ExpectEq(17, saved)
	ExpectThat(rets, ElementsAre("taco"))
}
예제 #4
0
func (t *EncryptingStore_StoreTest) CallsWrapped() {
	// Crypter
	encryptedBlob := []byte{0xde, 0xad}

	ExpectCall(t.crypter, "Encrypt")(Any(), Any()).
		WillOnce(oglemock.Return(encryptedBlob, nil))

	// Wrapped
	var req *blob.StoreRequest
	ExpectCall(t.wrapped, "Store")(Any(), Any()).
		WillOnce(oglemock.DoAll(
			oglemock.SaveArg(1, &req),
			oglemock.Return(blob.Score{}, errors.New(""))))

	// Call
	t.store.Store(t.ctx, &blob.StoreRequest{})

	AssertNe(nil, req)
	ExpectThat(req.Blob, DeepEquals(encryptedBlob))
}