public void Choosing_a_bucket_adds_next_unbucketed_story_to_that_bucket()
        {
            //Arrange
            var nextStory = new Story
            {
                Id    = 123,
                Title = "This is a test"
            };
            var storylist = new Mock <IStorylist>();

            storylist
            .SetupGet(fake => fake.NextUnbucketedStory)
            .Returns(nextStory);

            Assert.IsFalse(nextStory.IsInBucket, "Test preconditions failed!");
            var bucketReader = new Mock <IBucketReader>();

            var vm = new SortingBucketsViewModel(storylist.Object, bucketReader.Object);

            Story addedStory = null;

            var bucket = new Mock <ISyncableBucket>();

            bucket
            .Setup(mock => mock.Add(It.IsAny <Story>()))
            .Callback((Story story) => addedStory = story);

            //Act
            vm.OnBucketChosen(bucket.Object);

            //Assert
            Assert.AreEqual(nextStory, addedStory);
        }
        public void Choosing_a_bucket_dont_add_anything_if_next_story_is_null()
        {
            //Arrange
            var storylist = new Mock <IStorylist>();

            storylist
            .SetupGet(fake => fake.NextUnbucketedStory)
            .Returns((Story)null);

            var bucketReader = new Mock <IBucketReader>();

            var vm = new SortingBucketsViewModel(storylist.Object, bucketReader.Object);

            var bucket = new Mock <ISyncableBucket>();

            //Act
            vm.OnBucketChosen(bucket.Object);

            //Assert
            bucket.Verify(mock => mock.Add(It.IsAny <Story>()), Times.Never);
        }