public void Get()
        {
            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.Get(It.IsAny <Expression <Func <Customer, bool> > >()));
            mock.Setup(x => x.Get(It.IsAny <Expression <Func <Customer, bool> > >(), It.IsAny <Expression <Func <Customer, string> > >()));
            mock.Setup(x => x.Get(It.IsAny <IQueryOptions <Customer> >()));
            mock.Setup(x => x.Get(It.IsAny <IQueryOptions <Customer> >(), It.IsAny <Expression <Func <Customer, string> > >()));

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

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

            mock.Verify(x => x.Get(predicate), Times.Once);
            mock.Verify(x => x.Get(predicate, selector), Times.Once);
            mock.Verify(x => x.Get(options), Times.Once);
            mock.Verify(x => x.Get(options, selector), Times.Once);
        }
        public void GetWithId()
        {
            int key = 1;
            Expression <Func <Customer, bool> > predicate = x => true;
            var fetchStrategy = new FetchQueryStrategy <Customer>();
            Expression <Func <Customer, string> > selector = x => x.Name;

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

            mock.Setup(x => x.Get(It.IsAny <int>()));
            mock.Setup(x => x.Get(It.IsAny <int>(), It.IsAny <IFetchQueryStrategy <Customer> >()));
            mock.Setup(x => x.Get(It.IsAny <int>(), It.IsAny <string[]>()));
            mock.Setup(x => x.Get(It.IsAny <int>(), It.IsAny <Expression <Func <Customer, object> >[]>()));

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

            readOnlyService.Get(key);
            readOnlyService.Get(key, fetchStrategy);
            readOnlyService.Get(key, string.Empty);
            readOnlyService.Get(key, (Expression <Func <Customer, object> >[])null);

            mock.Verify(x => x.Get(key), Times.Once);
            mock.Verify(x => x.Get(key, fetchStrategy), Times.Once);
            mock.Verify(x => x.Get(key, string.Empty), Times.Once);
            mock.Verify(x => x.Get(key, (Expression <Func <Customer, object> >[])null), Times.Once);
        }