示例#1
0
        public void DoWorkTest()
        {
            var wordReaderMock = new Mock<IWordReader>();
            wordReaderMock.As<IEnumerable<string>>();

            wordReaderMock.Setup(x => x.GetEnumerator()).Returns(
                new List<string> { "t1", "t2" }.GetEnumerator());

            var wordWriteMock = new Mock<IWordWriter>();
            var translatorMock = new Mock<ITranslator>();

            ManualResetEvent mre;
            var translatorCreatorMock = new Mock<ITranslatorCreator>();
            translatorCreatorMock.Setup(x => x.CreateTranslator(
                    It.IsAny<ITranslationManager>(), It.IsAny<string>(), out mre)).
                Returns(translatorMock.Object);

            var translator = new TranslationManager(
                wordReaderMock.Object, wordWriteMock.Object, translatorCreatorMock.Object);

            translator.DoWork();

            wordWriteMock.Verify(x => x.OnComplete(), Times.Once());

            translatorMock.Verify(x => x.ThreadPoolCallback(It.IsAny<object>()), Times.Exactly(2));

            wordReaderMock.VerifyAll();
            wordWriteMock.VerifyAll();
            translatorMock.VerifyAll();
            translatorCreatorMock.VerifyAll();
        }