public async Task When_GetSubscriberCriteria_GetShouldBeCalled()
        {
            //Arrange
            var moqSubscriberRepository = new Mock <ISubscribersRepository>(MockBehavior.Strict);
            var moqMessageRepository    = new Mock <IMessageRepository>(MockBehavior.Strict);
            var subscriberService       = new Services.Services.SubscriberService(moqSubscriberRepository.Object, moqMessageRepository.Object);

            moqSubscriberRepository.Setup(x => x.Get(It.IsAny <string>()))
            .Returns(Task.FromResult(new Subscriber()));

            //Act
            await subscriberService.GetSubscriberCriteria(It.IsAny <string>());

            //Assert
            moqSubscriberRepository.Verify(x => x.Get(It.IsAny <string>()), Times.Exactly(1));
        }
        public async Task When_PassingNullToGetAllMessages_GetAllAndFilterShouldBeCalled()
        {
            //Arrange
            var moqSubscriberRepository = new Mock <ISubscribersRepository>(MockBehavior.Strict);
            var moqMessageRepository    = new Mock <IMessageRepository>(MockBehavior.Strict);
            var subscriberService       = new Services.Services.SubscriberService(moqSubscriberRepository.Object, moqMessageRepository.Object);

            moqSubscriberRepository.Setup(x => x.Get(It.IsAny <string>()))
            .Returns(Task.FromResult <Subscriber>(null));
            moqMessageRepository.Setup(x => x.GetAllQueryable())
            .Returns(new List <Message> {
            }.AsQueryable());

            //Act
            await subscriberService.GetAllMessages(It.IsAny <string>());

            //Assert
        }
        public async Task When_GetAllMessages_GetAllAndFilterShouldBeCalled()
        {
            //Arrange
            var moqSubscriberRepository = new Mock <ISubscribersRepository>(MockBehavior.Strict);
            var moqMessageRepository    = new Mock <IMessageRepository>(MockBehavior.Strict);
            var subscriberService       = new Services.Services.SubscriberService(moqSubscriberRepository.Object, moqMessageRepository.Object);

            moqSubscriberRepository.Setup(x => x.Get(It.IsAny <string>()))
            .Returns(Task.FromResult(new Subscriber()));
            moqMessageRepository.Setup(x => x.GetAllQueryable())
            .Returns(new List <Message> {
                new Message(), new Message()
            }.AsQueryable());

            //Act
            var messages = await subscriberService.GetAllMessages(It.IsAny <string>());

            //Assert
            moqSubscriberRepository.Verify(x => x.Get(It.IsAny <string>()), Times.Exactly(1));
            Assert.AreEqual(messages.Count, 2, "Messages Count Should be the same");
        }