public void Given_SubscriptionId_Has_Not_Been_Set_In_A_Previous_Step_When_I_Call_StartConsuming_With_MessageTriggerHandler_Then_A_NullReferenceExceptionIs_Thrown()
        {
            //arrange
            var messageHandler = new TestMessageTriggerHandler();

            _sut.WithProject(_projectId);

            //act && assert
            var exception = Assert.Throws <NullReferenceException>(() => _sut.StartConsuming(messageHandler));

            Assert.AreEqual("The 'WithSubscription' or 'CreateSubscription' step needs to be called prior to this", exception.Message);
        }
        public void Given_Previous_Steps_Are_Setup_When_I_Call_StartConsuming_With_MessageTriggerHandler_Then_It_Calls_The_Correct_Service_Method()
        {
            //arrange
            var messageHandler = new TestMessageTriggerHandler();


            _subscriberServiceMock.Setup(s => s.StartConsuming(It.IsAny <string>(), It.IsAny <string>(),
                                                               It.IsAny <IMessageTriggerHandler>()));

            _sut.WithProject(_projectId);
            _sut.WithSubscription(_subscriptionId);

            //act
            _sut.StartConsuming(messageHandler);

            //assert
            _subscriberServiceMock.Verify(v => v.StartConsuming(_projectId, _subscriptionId, messageHandler));
        }
        public void Setup()
        {
            var configurationHelper = new ConfigurationHelper();

            _projectId      = configurationHelper.ProjectId;
            _topicId        = $"{configurationHelper.TopicId}-{Guid.NewGuid()}";
            _subscriptionId = $"{configurationHelper.SubscriptionId}-{Guid.NewGuid()}";

            _ackTimeoutInSeconds = 60;

            _messageHandler        = new TestMessageHandler();
            _messageTriggerHandler = new TestMessageTriggerHandler();
            _topicService          = new TopicService();
            _subscriptionService   = new SubscriptionService();
            _publisherService      = new PublisherService();
            _messageHelper         = new MessageHelper();

            _topicService.CreateTopic(_projectId, _topicId);
            _subscriptionService.CreateSubscription(_projectId, _topicId, _subscriptionId, _ackTimeoutInSeconds);

            _sut = new SubscriberService();
        }