public async Task Vk_timePeriod_puller_pull()
        {
            IContentPullerStrategy contentPullerStrategy = new VkActualTimePeriodContentPullerStrategy(_apiProvider.WallGet);
            IContentPuller         contentPuller         = new ContentPuller(contentPullerStrategy);

            await contentPuller.PullAsync(new TimePeriodSettings { Days = 5 });
        }
        public async Task History_puller_pull_async()
        {
            IContentPullerStrategy contentPullerStrategy = new HistoryContentPullerStrategy(_apiProvider.GetPosts);
            IContentPuller         contentPuller         = new ContentPuller(contentPullerStrategy);

            contentPuller.WallHolder = new WallHolder(1);
            await contentPuller.PullAsync();

            Assert.Fail();
        }
        public async Task Vk_puller_pull_async()
        {
            IContentPullerStrategy contentPullerStrategy = new VkPostponedContentPullerStrategy(_apiProvider.WallGet);
            IContentPuller         contentPuller         = new ContentPuller(contentPullerStrategy);

            var event_pullInvoked_called   = false;
            var event_pullCompleted_called = false;

            contentPuller.PullInvoked += (sender, args) => {
                event_pullInvoked_called = true;
            };

            contentPuller.PullCompleted += (sender, args) => {
                event_pullCompleted_called = true;
            };

            contentPuller.WallHolder = new WallHolder(1);
            await contentPuller.PullAsync();

            Assert.That(event_pullInvoked_called, Is.True);
            Assert.That(event_pullCompleted_called, Is.True);
            Assert.That(contentPuller.Items.Count, Is.EqualTo(4));
            Assert.That(contentPuller.LastTimePulled, Is.LessThanOrEqualTo(DateTimeOffset.Now));
        }