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); }
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); }
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); }
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); }
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); }