public void InternalConstruction_Assembly()
        {
            IFile fileSystem = MockRepository.GenerateMock <IFile>();
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateMock <CreateReadPolicyDelegate>();
            IXmlDocCommentReadPolicy readPolicy   = MockRepository.GenerateStub <IXmlDocCommentReadPolicy>();

            string[] expectedDirectoryNames = { @"C:\a", @"C:\a\b", @"C:\a\b\c", @"C:\a\b\c\d" };
            string   expectedFileName       = Path.GetFileName(MscorlibXml);

            for (int i = 0; i < expectedDirectoryNames.Length - 1; ++i)
            {
                fileSystem.Expect(fs => fs.Exists(Path.Combine(expectedDirectoryNames[i], expectedFileName)))
                .Return(false);
            }

            string expectedFullPath = Path.Combine(expectedDirectoryNames[expectedDirectoryNames.Length - 1], expectedFileName);

            fileSystem.Expect(fs => fs.Exists(expectedFullPath)).Return(true);
            createPolicy.Expect(cp => cp(expectedFullPath)).Return(readPolicy);

            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(expectedDirectoryNames);
            XmlDocCommentReader         reader   = new XmlDocCommentReader(typeof(int).Assembly, settings, fileSystem, createPolicy);

            Assert.That(reader.FileProxy, Is.SameAs(fileSystem));
            Assert.That(reader.FullPath, Is.EqualTo(expectedFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(settings));

            fileSystem.VerifyAllExpectations();
            createPolicy.VerifyAllExpectations();
        }
        public void Construction_FullPath_ReadPolicy()
        {
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateMock <CreateReadPolicyDelegate>();
            IXmlDocCommentReadPolicy readPolicy   = MockRepository.GenerateStub <IXmlDocCommentReadPolicy>();

            string expectedDocCommentsFullPath = Path.Combine(TestDirectory, "Rhino.Mocks.xml");

            createPolicy.Expect(cp => cp(expectedDocCommentsFullPath)).Return(readPolicy);

            XmlDocCommentReader reader = new XmlDocCommentReader(expectedDocCommentsFullPath, createPolicy);

            Assert.That(reader.FileProxy, Is.InstanceOf <FileProxy>());
            Assert.That(reader.FullPath, Is.SameAs(expectedDocCommentsFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(XmlDocCommentReaderSettings.Default));

            createPolicy.VerifyAllExpectations();
        }
        public void Construction_Assembly_ExplicitSettings_ReadPolicy()
        {
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateMock <CreateReadPolicyDelegate>();
            IXmlDocCommentReadPolicy readPolicy   = MockRepository.GenerateStub <IXmlDocCommentReadPolicy>();

            // Expectations.
            // The read policy is created via the factory method.
            string expectedDocCommentsFullPath = Path.Combine(TestDirectory, "Rhino.Mocks.xml");

            createPolicy.Expect(cp => cp(expectedDocCommentsFullPath)).Return(readPolicy);

            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(new string[] { TestDirectory });
            XmlDocCommentReader         reader   = new XmlDocCommentReader(typeof(MockRepository).Assembly, settings, createPolicy);

            Assert.That(reader.FileProxy, Is.InstanceOf <FileProxy>());
            Assert.That(reader.FullPath, Is.EqualTo(expectedDocCommentsFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(settings));

            createPolicy.VerifyAllExpectations();
        }