public void GetAll()
        {
            Expression <Func <Customer, bool> >   predicate = x => true;
            Expression <Func <Customer, string> > selector  = x => x.Name;
            var options = new QueryOptions <Customer>();

            var mock = new Mock <IService <Customer> >();

            mock.Setup(x => x.GetAll());
            mock.Setup(x => x.GetAll(It.IsAny <Expression <Func <Customer, bool> > >()));
            mock.Setup(x => x.GetAll(It.IsAny <Expression <Func <Customer, string> > >()));
            mock.Setup(x => x.GetAll(It.IsAny <Expression <Func <Customer, bool> > >(), It.IsAny <Expression <Func <Customer, string> > >()));
            mock.Setup(x => x.GetAll(It.IsAny <IQueryOptions <Customer> >()));
            mock.Setup(x => x.GetAll(It.IsAny <IQueryOptions <Customer> >(), It.IsAny <Expression <Func <Customer, string> > >()));

            var readOnlyService = new ReadOnlyServiceWrapper <Customer, int>(mock.Object);

            readOnlyService.GetAll();
            readOnlyService.GetAll(selector);
            readOnlyService.GetAll(predicate);
            readOnlyService.GetAll(predicate, selector);
            readOnlyService.GetAll(options);
            readOnlyService.GetAll(options, selector);

            mock.Verify(x => x.GetAll(), Times.Once);
            mock.Verify(x => x.GetAll(selector), Times.Once);
            mock.Verify(x => x.GetAll(predicate), Times.Once);
            mock.Verify(x => x.GetAll(predicate, selector), Times.Once);
            mock.Verify(x => x.GetAll(options), Times.Once);
            mock.Verify(x => x.GetAll(options, selector), Times.Once);
        }