public void ReturnCorrectResult_IsHasNowMoreNewsToShow()
        {
            // Arrange
            var mockedCollection = new List <NewsModel> {
                new NewsModel {
                    Title = "Test"
                }
            };
            var mockedNewsService = new Mock <INewsService>();

            mockedNewsService.Setup(s => s.GetNews(It.IsAny <int>(), It.IsAny <int>())).Returns(mockedCollection).Verifiable();
            mockedNewsService.Setup(s => s.GetNewsCount()).Returns(mockedCollection.Count);

            var hub         = new NewsHub(mockedNewsService.Object);
            var mockClients = new Mock <IHubCallerConnectionContext <dynamic> >();

            hub.Clients = mockClients.Object;

            var loadNewsCalled = false;
            IEnumerable <NewsModel> sendedNews = Enumerable.Empty <NewsModel>();
            bool hasMoreSended  = false;
            int  nextPageSended = 0;

            dynamic caller = new ExpandoObject();

            caller.loadNews = new Action <IEnumerable <NewsModel>, bool, int>((news, hasMore, nextPage) =>
            {
                loadNewsCalled = true;
                sendedNews     = news;
                hasMoreSended  = hasMore;
                nextPageSended = nextPage;
            });

            mockClients.Setup(m => m.Caller).Returns((ExpandoObject)caller);

            // Act
            hub.GetNews(It.IsAny <int>());

            // Assert
            Assert.IsTrue(loadNewsCalled);
            Assert.IsFalse(hasMoreSended);
            Assert.IsTrue(nextPageSended == 0);
            Assert.AreEqual(sendedNews, mockedCollection);
        }
 public NewsController(NewsService newsService, NewsHub newsHub)
 {
     this.newsService = newsService;
     this.newsHub     = newsHub;
 }