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

            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; ++i)
            {
                var path = Path.Combine(expectedDirectoryNames[i], expectedFileName);
                fileSystem.Expect(fs => fs.Exists(path)).Return(false);
            }

            var settings = new XmlDocCommentReaderSettings(expectedDirectoryNames);
            var assembly = typeof(int).Assembly;

            Assert.That(
                () => new XmlDocCommentReader(typeof(int).Assembly, settings, fileSystem, createPolicy),
                Throws.InstanceOf <FileNotFoundException>()
                .With.Message.EqualTo(String.Format(Errors.XmlDocComments_AssemblyNotResolved, assembly.GetName().Name))
                .And.Property("FileName").EqualTo(assembly.GetName().Name));

            fileSystem.VerifyAllExpectations();
        }
        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 ExplicitConstruction()
        {
            string[] expectedDirectoryNames      = { @"\\server\a", @"\\server\b", @"\\server\c" };
            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(expectedDirectoryNames);

            Assert.That(
                settings.DirectoryNames.Cast <XmlDocCommentDirectoryElement>().Select(e => e.Name),
                Is.EquivalentTo(expectedDirectoryNames));
        }
        public void Construction_Assembly_ExplicitSettings_ReadPolicy_FileNotFound()
        {
            CreateReadPolicyDelegate    createPolicy = MockRepository.GenerateStub <CreateReadPolicyDelegate>();
            XmlDocCommentReaderSettings settings     = new XmlDocCommentReaderSettings(new string[] { TestDirectory });
            Assembly assembly = typeof(int).Assembly;

            Assert.That(
                () => new XmlDocCommentReader(assembly, settings, createPolicy),
                Throws.InstanceOf <FileNotFoundException>()
                .With.Message.EqualTo(
                    String.Format(Errors.XmlDocComments_AssemblyNotResolved, assembly.GetName().Name))
                .And.Property("FileName").EqualTo(assembly.GetName().Name));
        }
        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();
        }
        public void InternalConstruction_Assembly_FileNotFound()
        {
            IFile fileSystem = MockRepository.GenerateMock<IFile>();
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateStub<CreateReadPolicyDelegate>();

            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; ++i)
            {
                fileSystem.Expect(fs => fs.Exists(Path.Combine(expectedDirectoryNames[i], expectedFileName)))
                    .Return(false);
            }

            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(expectedDirectoryNames);
            Assembly assembly = typeof(int).Assembly;

            Assert.That(
                () => new XmlDocCommentReader(typeof(int).Assembly, settings, fileSystem, createPolicy),
                Throws.InstanceOf<FileNotFoundException>()
                    .With.Message.EqualTo(
                        String.Format(Resources.Error_XmlDocComments_AssemblyNotResolved, assembly.GetName().Name))
                    .And.Property("FileName").EqualTo(assembly.GetName().Name));

            fileSystem.VerifyAllExpectations();
        }
        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_Assembly_ExplicitSettings_ReadPolicy_FileNotFound()
        {
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateStub<CreateReadPolicyDelegate>();
            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(new string[] { Environment.CurrentDirectory });
            Assembly assembly = typeof(int).Assembly;

            Assert.That(
                () => new XmlDocCommentReader(assembly, settings, createPolicy),
                Throws.InstanceOf<FileNotFoundException>()
                    .With.Message.EqualTo(
                        String.Format(Resources.Error_XmlDocComments_AssemblyNotResolved, assembly.GetName().Name))
                    .And.Property("FileName").EqualTo(assembly.GetName().Name));
        }
        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(Environment.CurrentDirectory, "Rhino.Mocks.xml");
            createPolicy.Expect(cp => cp(expectedDocCommentsFullPath)).Return(readPolicy);

            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(new string[] { Environment.CurrentDirectory });
            XmlDocCommentReader reader = new XmlDocCommentReader(typeof(Mocker).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();
        }
        public void ExplicitConstruction()
        {
            string[] expectedDirectoryNames = { @"\\server\a", @"\\server\b", @"\\server\c" };
            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(expectedDirectoryNames);

            Assert.That(
                settings.DirectoryNames.Cast<XmlDocCommentDirectoryElement>().Select(e => e.Name),
                Is.EquivalentTo(expectedDirectoryNames));
        }
 public void DefaultConstruction()
 {
     XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings();
     Assert.That(settings.DirectoryNames, Is.Empty);
 }
        public void DefaultConstruction()
        {
            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings();

            Assert.That(settings.DirectoryNames, Is.Empty);
        }