private void CheckOneOf(IFoo foo, bool succeed)
        {
            var expect = Mockery.ExactOneOf(
                foo.ActivityOf(f => f.Foo(1), m => m.Repeat.Once()),
                foo.ActivityOf(f => f.Foo(1, 2), m => m.Repeat.Once()),
                foo.ActivityOf(f => f.Foo(1, 2, 3), m => m.Repeat.Once())
                );

            if (succeed)
            {
                Assert.IsTrue(expect);
                Mockery.Assert(expect);
            }
            else
            {
                Assert.IsFalse(expect);
                Assert.Throws <ExpectationViolationException>(
                    () => Mockery.Assert(expect));
            }
        }
        private void AssertAny(IFoo foo)
        {
            Assert.IsTrue(foo.ActivityOf(f => f.Foo(1)) ||
                          foo.ActivityOf(f => f.Foo(Arg <int> .Is.Equal(1), Arg <int> .Is.Anything)));

            Mockery.Assert(foo.ActivityOf(f => f.Foo(1))
                           .Or(foo.ActivityOf(f => f.Foo(Arg <int> .Is.Equal(1), Arg <int> .Is.Anything))));

            Mockery.Assert(foo.ActivityOf(f => f.Foo(1)) |
                           foo.ActivityOf(f => f.Foo(Arg <int> .Is.Equal(1), Arg <int> .Is.Anything)));

            (foo.ActivityOf(f => f.Foo(Arg <int> .Is.Equal(1), Arg <int> .Is.Anything)) |
             foo.ActivityOf(f => f.Foo(1))).AssertOccured();

            // C# 2.0 syntax
            Mockery.Assert(Mockery.ActivityOf(foo, delegate(IFoo f) { f.Foo(1); }) |
                           Mockery.ActivityOf(foo, delegate(IFoo f) { f.Foo(Arg <int> .Is.Equal(1), Arg <int> .Is.Anything); }));
        }