public void WhenAddingAndRemovingPreAndPostCommitHooksThingsWorkAsExpected()
        {
            var props = new RiakBucketProperties()
                .AddPreCommitHook(new RiakJavascriptCommitHook("some_fun"))
                .AddPreCommitHook(new RiakJavascriptCommitHook("some_fun"))
                .AddPreCommitHook(new RiakErlangCommitHook("mod", "fun"))
                .AddPreCommitHook(new RiakErlangCommitHook("mod", "fun"))
                .AddPreCommitHook(new RiakErlangCommitHook("riak_search_kv_hook", "precommit"))
                .AddPreCommitHook(new RiakErlangCommitHook("riak_search_kv_hook", "precommit"))
                .AddPreCommitHook(RiakErlangCommitHook.RiakSearchCommitHook)
                .AddPostCommitHook(new RiakErlangCommitHook("mod", "fun"))
                .AddPostCommitHook(new RiakErlangCommitHook("mod", "fun"));

            props.PreCommitHooks.Count.ShouldEqual(3);
            props.PostCommitHooks.Count.ShouldEqual(1);

            props.SetSearch(true);
            props.PreCommitHooks.Count.ShouldEqual(3);
            props.PostCommitHooks.Count.ShouldEqual(1);

            props.SetSearch(false);
            props.PreCommitHooks.Count.ShouldEqual(2);
            props.PostCommitHooks.Count.ShouldEqual(1);

            props.PreCommitHooks.Where(x => x is RiakErlangCommitHook).Cast<RiakErlangCommitHook>()
                .Any(x => x.Function == RiakErlangCommitHook.RiakSearchCommitHook.Function
                    && x.Function == RiakErlangCommitHook.RiakSearchCommitHook.Function)
                .ShouldBeFalse();
        }
        public void WhenDisablingRiakSearchOnBucketPreCommitHookIsRemoved()
        {
            var props = new RiakBucketProperties()
                .AddPreCommitHook(new RiakErlangCommitHook("foo", "bar"))
                .SetSearch(true);

            props.PreCommitHooks.Count.ShouldEqual(2);
            props.PreCommitHooks[1].ShouldEqual(RiakErlangCommitHook.RiakSearchCommitHook);

            props.SetSearch(false);
            props.PreCommitHooks.Count.ShouldEqual(1);
            ((RiakErlangCommitHook)props.PreCommitHooks[0]).Function.ShouldEqual("bar");
        }