コード例 #1
0
        public void TestProjectItemWithLicenseHeaderFile()
        {
            string licenseHeaderFileName = "test.licenseheader";

            Solution    solution   = MockRepository.GenerateMock <Solution>();
            ProjectItem linkedFile = MockRepository.GenerateMock <ProjectItem>();

            ProjectItem licenseHeaderFile = MockRepository.GenerateStub <ProjectItem>();

            licenseHeaderFile.Expect(x => x.FileCount).Return(1);
            licenseHeaderFile.Expect(x => x.FileNames[0]).Return(licenseHeaderFileName);

            using (var writer = new StreamWriter(licenseHeaderFileName))
            {
                writer.WriteLine("extension: .cs");
                writer.WriteLine("//test");
            }

            ProjectItems projectItems = MockRepository.GenerateStub <ProjectItems>();

            projectItems.Stub(x => x.GetEnumerator())
            .Return(null)
            .WhenCalled(
                x => x.ReturnValue =
                    new List <ProjectItem> {
                licenseHeaderFile
            }.GetEnumerator()
                );

            linkedFile.Expect(x => x.ProjectItems).Return(projectItems);
            linkedFile.Expect(x => x.Name).Return("linkedFile.cs");
            solution.Expect(x => x.FindProjectItem("linkedFile.cs")).Return(linkedFile);


            LinkedFileFilter linkedFileFilter = new LinkedFileFilter(solution);

            linkedFileFilter.Filter(new List <ProjectItem> {
                linkedFile
            });

            Assert.IsNotEmpty(linkedFileFilter.ToBeProgressed);
            Assert.IsEmpty(linkedFileFilter.NoLicenseHeaderFile);
            Assert.IsEmpty(linkedFileFilter.NotInSolution);

            //Cleanup
            File.Delete(licenseHeaderFileName);
        }