public async Task SubscribeAsync_ShouldThrowInvalidSubscriberException_WhenSubscriberNotExists()
        {
            var subscriberId = Guid.NewGuid().ToString();
            var subscriberConfirmationCode = Guid.NewGuid().ToString();

            await this.dbContext.Subscribers.AddAsync(new Subscriber { Id = subscriberId, ConfirmationCode = subscriberConfirmationCode });

            await this.dbContext.SaveChangesAsync();

            var subscriberService = new SubscriberService(this.dbContext);

            var incorrectId = Guid.NewGuid().ToString();

            Assert.Throws <InvalidSubscriberException>(() =>
                                                       subscriberService.SubscribeAsync(incorrectId, subscriberConfirmationCode).GetAwaiter().GetResult());
        }
        public async Task SubscribeAsync_ShouldSubscribe_WhenSubscriberExistsAndConfirmationCodeIsCorrect()
        {
            var subscriberId = Guid.NewGuid().ToString();
            var subscriberConfirmationCode = Guid.NewGuid().ToString();

            await this.dbContext.Subscribers.AddAsync(new Subscriber { Id = subscriberId, ConfirmationCode = subscriberConfirmationCode });

            await this.dbContext.SaveChangesAsync();

            var subscriberService = new SubscriberService(this.dbContext);
            await subscriberService.SubscribeAsync(subscriberId, subscriberConfirmationCode);

            var subscriber = await this.dbContext.Subscribers.FindAsync(subscriberId);

            Assert.True(subscriber.IsConfirmed);
        }