public void SaveQuestionsShouldAddOnlyNonExistentQuestions()
        {
            QuestionsRepository target = new QuestionsRepository(m_EntitiesMock.Object);
            List<QuestionInfo> questionInfos = new List<QuestionInfo> {
                new QuestionInfo{CreationDate = new DateTime(2010, 06, 23), Id = 34, Tags= new List<string>{"tag1", "tag2"}},
                new QuestionInfo{CreationDate = new DateTime(2010, 06, 23), Id = 12, Tags= new List<string>{"tag1", "tag2"}}
            };

            var result = new Question();
            m_EntitiesMock.Setup(e => e.CreateQuestion()).Returns(result);
            m_EntitiesMock.Setup(e=>e.Questions).Returns(new MockObjectSet<Question>(new []{
                new Question{QuestionId = 12, Site = "site1"}
            }));

            target.SaveQuestions("site1", questionInfos);

            m_EntitiesMock.Verify(e => e.AddQuestion(result), Times.Once());
            m_EntitiesMock.Verify(e => e.AddQuestion(It.IsAny<Question>()), Times.Once());
        }
        public void SaveQuestionsShouldCreateAndAddQuestion()
        {
            QuestionsRepository target = new QuestionsRepository(m_EntitiesMock.Object);
            List<QuestionInfo> questionInfos = new List<QuestionInfo> {
                new QuestionInfo{CreationDate = new DateTime(2010, 06, 23), Id = 34, Tags= new List<string>{"tag1", "tag2"}}
            };

            var result = new Question();
            m_EntitiesMock.Setup(e => e.Questions).Returns(new MockObjectSet<Question>(new Question[0]));
            m_EntitiesMock.Setup(e => e.CreateQuestion()).Returns(result);
            m_EntitiesMock.Setup(e => e.AddQuestion(result));
            m_EntitiesMock.Setup(e => e.SaveChanges());
            target.SaveQuestions("site1", questionInfos);
            m_EntitiesMock.VerifyAll();
        }