Esempio n. 1
0
        public void NumberOfUnbucketedStories_returns_number_of_stories_not_in_a_bucket()
        {
            //Arrange
            var reader        = new Mock <IDataReader <SyncableStory> >();
            var storyInBucket = new SyncableStory
            {
                IsInBucket = true
            };

            var unbucketedStory = new SyncableStory
            {
                IsInBucket = false
            };

            reader
            .Setup(fake => fake.ReadAsync())
            .ReturnsAsync(new[] {
                storyInBucket,
                unbucketedStory
            });

            var storylist = new Storylist(reader.Object);

            //Act
            storylist.InitializeAsync().Wait();

            //Assert
            Assert.AreEqual(1u, storylist.NumberOfUnbucketedStories);
        }
Esempio n. 2
0
        public void NextUnbucketedStory_returns_an_unbucketedStory_that_is_not_irrelevant()
        {
            //Arrange
            var reader        = new Mock <IDataReader <SyncableStory> >();
            var storyInBucket = new SyncableStory
            {
                IsInBucket = true
            };

            var unbucketedStory = new SyncableStory
            {
                IsInBucket = false
            };

            reader
            .Setup(fake => fake.ReadAsync())
            .ReturnsAsync(new[] {
                storyInBucket,
                unbucketedStory
            });

            var storylist = new Storylist(reader.Object);

            //Act
            storylist.InitializeAsync().Wait();

            //Assert
            Assert.AreEqual(unbucketedStory, storylist.NextUnbucketedStory);
        }
Esempio n. 3
0
        public void Puts_updated_story_to_the_stories_endpoint()
        {
            //Arrange
            var httpClient = new Mock <IHttpClient>();
            var updater    = new StorySync(httpClient.Object);
            var story      = new SyncableStory();

            //Act
            updater.UpdateAsync(story);

            //Assert
            httpClient.Verify(mock => mock.PutJsonAsync("stories", story));
        }
        public void Updated_event_triggered_when_IsIrrelevant_is_changed()
        {
            //Arrange
            var model            = new SyncableStory();
            var updatedTriggered = false;

            model.Updated += (o, e) => updatedTriggered = true;

            //Act
            model.IsIrrelevant = !model.IsIrrelevant;

            //Assert
            Assert.IsTrue(updatedTriggered);
        }
        public void IsInBucket_value_is_already_Set_when_Updated_event_is_triggered()
        {
            //Arrange
            var model           = new SyncableStory();
            var IsInBucketValue = model.IsInBucket;

            model.Updated += (o, e) => IsInBucketValue = (o as SyncableStory).IsInBucket;

            //Act
            model.IsInBucket = !model.IsInBucket;

            //Assert
            Assert.IsTrue(IsInBucketValue);
        }
        public void Updated_event_not_triggered_when_IsInBucket_is_set_without_changing_value()
        {
            //Arrange
            var model            = new SyncableStory();
            var updatedTriggered = false;

            model.Updated += (o, e) => updatedTriggered = true;

            //Act
            model.IsInBucket = model.IsInBucket;

            //Assert
            Assert.IsFalse(updatedTriggered);
        }
        public void Constructor_maps_IsIrrelevant()
        {
            //Arrange
            var story = new Story
            {
                Id           = 273,
                IsInBucket   = true,
                Title        = "foobar",
                IsIrrelevant = true
            };


            //Act
            var model = new SyncableStory(story);

            //Assert
            Assert.AreEqual(story.IsIrrelevant, model.IsIrrelevant);
        }
        public void Constructor_with_story_maps_properties_from_that_story()
        {
            //Arrange
            var story = new Story
            {
                Id         = 42,
                IsInBucket = true,
                Title      = "foobar"
            };


            //Act
            var model = new SyncableStory(story);

            //Assert
            Assert.AreEqual(story.Id, model.Id);
            Assert.AreEqual(story.IsInBucket, model.IsInBucket);
            Assert.AreEqual(story.Title, model.Title);
        }
Esempio n. 9
0
        public async Task NextUnbucketedStory_does_not_return_an_irrelevant_story()
        {
            //Arrange
            var reader        = new Mock <IDataReader <SyncableStory> >();
            var storyInBucket = new SyncableStory
            {
                Id         = 273,
                Title      = "In Bucket",
                IsInBucket = true
            };

            var irrelevantStory = new SyncableStory
            {
                Id           = 314,
                Title        = "Irrelevant",
                IsInBucket   = false,
                IsIrrelevant = true
            };

            var unbucketedStory = new SyncableStory
            {
                Id         = 42,
                Title      = "Unbucketed",
                IsInBucket = false
            };

            reader
            .Setup(fake => fake.ReadAsync())
            .ReturnsAsync(new[] {
                storyInBucket,
                irrelevantStory,
                unbucketedStory
            });

            var storylist = new Storylist(reader.Object);

            //Act
            await storylist.InitializeAsync();

            //Assert
            Assert.AreEqual(unbucketedStory, storylist.NextUnbucketedStory);
        }
Esempio n. 10
0
        public void NextUnbucketedStory_is_null_if_all_stories_are_in_buckets()
        {
            //Arrange
            var reader        = new Mock <IDataReader <SyncableStory> >();
            var storyInBucket = new SyncableStory
            {
                IsInBucket = true
            };

            reader
            .Setup(fake => fake.ReadAsync())
            .ReturnsAsync(new[] {
                storyInBucket
            });

            var storylist = new Storylist(reader.Object);

            //Act
            storylist.InitializeAsync().Wait();

            //Assert
            Assert.IsNull(storylist.NextUnbucketedStory);
        }