public void ReadStoryReturnsAStory()
        {
            // Setup
            IDocumentStore store = Global.GetInMemoryStore();
            User user = FakeEntityFactory.GetGenericUser();
            Story story;
            string userId = "users/1";

            using (var session = store.OpenSession())
            {
                session.Store(user);
                story = FakeEntityFactory.GetSpecificStoryWithText(userId, new List<string> { "123", "456", "789" });
                session.Store(story);
                session.SaveChanges();
            }

            IStoryRepository repo = new StoryRepository(store);
            StoryController controller = new StoryController(repo, new CurrentUser("users/1"));

            // Act
            Story result = (Story)controller.ReadStory(1).Data;

            // Assert
            Assert.AreEqual(result.Paragraphs[0], "123");
            Assert.AreEqual(result.Paragraphs[1], "456");
            Assert.AreEqual(result.Paragraphs[2], "789");
        }
        public void AddWordCreatesANewStory()
        {
            // Setup
            Mock<IStoryRepository> mock = new Mock<IStoryRepository>();

            mock.Setup(m => m.AddWord(
                            It.Is<string>(s => s == ""),
                            It.Is<string>(w => w == "Once"),
                            It.Is<string>(u => u == "users/1"), false))
                            .Returns(new AddWordResult
                            {
                                 ErrorCode = StoryErrorCode.Success,
                                  Story = FakeEntityFactory.GetGenericStory("")
                            });

            var controller = new StoryController(mock.Object, new CurrentUser("users/1"));

            // Act
            controller.CreateNewStory(new AddWord { Word = "Once" });

            // Assert
            mock.VerifyAll();
        }