public void GroupBy() { Expression <Func <Customer, string> > selector = x => x.Name; Expression <Func <string, IEnumerable <Customer>, string> > grouping = (key, g) => key; var options = new QueryOptions <Customer>(); var mock = new Mock <IService <Customer> >(); mock.Setup(x => x.GetGroupBy(It.IsAny <Expression <Func <Customer, string> > >(), It.IsAny <Expression <Func <string, IEnumerable <Customer>, string> > >())); mock.Setup(x => x.GetGroupBy(It.IsAny <IQueryOptions <Customer> >(), It.IsAny <Expression <Func <Customer, string> > >(), It.IsAny <Expression <Func <string, IEnumerable <Customer>, string> > >())); var readOnlyService = new ReadOnlyServiceWrapper <Customer, int>(mock.Object); readOnlyService.GetGroupBy(selector, grouping); readOnlyService.GetGroupBy(options, selector, grouping); mock.Verify(x => x.GetGroupBy(selector, grouping), Times.Once); mock.Verify(x => x.GetGroupBy(options, selector, grouping), Times.Once); }