Hi all,

I'm trying to meck riakc_pb_socket:get/3 in my eunit tests, and consistently get a function_clause error.

The meck:expect looks like:

meck:expect(riakc_pb_socket, get, [Pid, ?RIAK_TYPE_AND_BUCKET, ?TestOid], {ok, ?TestRiakObject}),

where Pid is a pid, the macro ?RIAK_TYPE_AND_BUCKET evaluates to {<<"buckettype">>, <<"bucketname">>}, and ?TestOid evalutes to <<"809876fd89ac405680b7251c2e57faa30004524100486220">>).

With the exception of the Pid, the other arguments, as well as the expected response, are taken from a live,
running system, where the call to riakc_pb_socket:get/3 works as expected.

Looking at the source for riakc_pb_socket:get/3, I see that the -spec looks like:

-spec get(pid(), bucket(), key()) -> {ok, riakc_obj()} | {error, term()}.

and the types bucket() and key() are defined as:
-type bucket() :: binary(). %% A bucket name.
-type key() :: binary(). %% A key name.

In reality, when using bucket types, shouldn't the bucket() type be a tuple? At any rate, changing it
to tuple() didn't help my case any.

Can anyone show me an example of a working meck:expect for riakc_pb_socket:get/3?

Thanks,
Michael

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to