public void TestNoLicenseHeaderFile()
        {
            ILicenseHeaderExtension extension   = MockRepository.GenerateStub <ILicenseHeaderExtension> ();
            ProjectItem             projectItem = MockRepository.GenerateMock <ProjectItem>();

            projectItem.Expect(x => x.Name).Return("projectItem.cs");

            ILinkedFileFilter     linkedFileFilter      = MockRepository.GenerateMock <ILinkedFileFilter> ();
            LicenseHeaderReplacer licenseHeaderReplacer = MockRepository.GenerateStrictMock <LicenseHeaderReplacer> (extension);

            linkedFileFilter.Expect(x => x.NoLicenseHeaderFile).Return(new List <ProjectItem> {
                projectItem
            });
            linkedFileFilter.Expect(x => x.ToBeProgressed).Return(new List <ProjectItem> ());
            linkedFileFilter.Expect(x => x.NotInSolution).Return(new List <ProjectItem> ());


            LinkedFileHandler linkedFileHandler = new LinkedFileHandler();

            linkedFileHandler.Handle(licenseHeaderReplacer, linkedFileFilter);

            string expectedMessage = string.Format(Resources.LinkedFileUpdateInformation, "projectItem.cs")
                                     .Replace(@"\n", "\n");

            Assert.AreEqual(expectedMessage, linkedFileHandler.Message);
        }
        public async Task HandleAsync_NoLicenseHeaderFileGiven_MessageInformsAboutFilesThatCouldNotBeProcessed()
        {
            await VisualStudioTestContext.SwitchToMainThread();

            var extension             = MockRepository.GenerateStub <ILicenseHeaderExtension>();
            var licenseHeaderReplacer = MockRepository.GenerateStrictMock <LicenseHeaderReplacer>();

            extension.Expect(x => x.LicenseHeaderReplacer).Return(licenseHeaderReplacer);

            var noLicenseHeaderFile = MockRepository.GenerateMock <ProjectItem>();

            noLicenseHeaderFile.Expect(x => x.Name).Return("projectItem1.cs");

            var notInSolution = MockRepository.GenerateMock <ProjectItem>();

            notInSolution.Expect(x => x.Name).Return("projectItem2.cs");

            var linkedFileFilter = MockRepository.GenerateMock <ILinkedFileFilter>();

            linkedFileFilter.Expect(x => x.NoLicenseHeaderFile).Return(new List <ProjectItem> {
                noLicenseHeaderFile
            });
            linkedFileFilter.Expect(x => x.ToBeProgressed).Return(new List <ProjectItem>());
            linkedFileFilter.Expect(x => x.NotInSolution).Return(new List <ProjectItem> {
                notInSolution
            });

            var linkedFileHandler = new LinkedFileHandler(extension);
            await linkedFileHandler.HandleAsync(linkedFileFilter);

            const string expectedMessage = "We could not update following linked files, because there is no license header definition file in their original project, or the "
                                           + "original project is not part of this solution.\n\nprojectItem1.cs\nprojectItem2.cs";

            Assert.That(linkedFileHandler.Message, Is.EqualTo(expectedMessage));
        }
        private static async Task HandleLinkedFilesAndShowMessageBoxAsync(ILicenseHeaderExtension serviceProvider, IEnumerable <ProjectItem> linkedItems)
        {
            ILinkedFileFilter linkedFileFilter = new LinkedFileFilter(serviceProvider.Dte2.Solution);

            linkedFileFilter.Filter(linkedItems);

            var linkedFileHandler = new LinkedFileHandler(serviceProvider);
            await linkedFileHandler.HandleAsync(linkedFileFilter);

            if (linkedFileHandler.Message != string.Empty)
            {
                MessageBoxHelper.ShowMessage(linkedFileHandler.Message);
            }
        }
        public void TestNoProjectItems()
        {
            Solution solution = MockRepository.GenerateStub <Solution>();
            ILicenseHeaderExtension extension = MockRepository.GenerateStub <ILicenseHeaderExtension>();

            LinkedFileFilter      linkedFileFilter      = MockRepository.GenerateStrictMock <LinkedFileFilter>(solution);
            LicenseHeaderReplacer licenseHeaderReplacer = MockRepository.GenerateStrictMock <LicenseHeaderReplacer>(extension);

            LinkedFileHandler linkedFileHandler = new LinkedFileHandler();

            linkedFileHandler.Handle(licenseHeaderReplacer, linkedFileFilter);

            Assert.AreEqual(string.Empty, linkedFileHandler.Message);
        }
        public async Task HandleAsync_NoProjectItemsGiven_NothingToBeDoneAndErrorMessageEmpty()
        {
            await VisualStudioTestContext.SwitchToMainThread();

            var solution              = MockRepository.GenerateStub <Solution>();
            var extension             = MockRepository.GenerateStub <ILicenseHeaderExtension>();
            var linkedFileFilter      = MockRepository.GenerateStrictMock <LinkedFileFilter> (solution);
            var licenseHeaderReplacer = MockRepository.GenerateStrictMock <LicenseHeaderReplacer>();

            extension.Expect(x => x.LicenseHeaderReplacer).Return(licenseHeaderReplacer);

            var linkedFileHandler = new LinkedFileHandler(extension);
            await linkedFileHandler.HandleAsync(linkedFileFilter);

            Assert.That(linkedFileHandler.Message, Is.EqualTo(string.Empty));
        }
        private void HandleLinkedFilesAndShowMessageBox(List <ProjectItem> linkedItems)
        {
            LinkedFileFilter linkedFileFilter = new LinkedFileFilter(_dte.Solution);

            linkedFileFilter.Filter(linkedItems);

            LinkedFileHandler linkedFileHandler = new LinkedFileHandler();

            linkedFileHandler.Handle(_licenseReplacer, linkedFileFilter);

            if (linkedFileHandler.Message != string.Empty)
            {
                MessageBox.Show(linkedFileHandler.Message, Resources.NameOfThisExtension, MessageBoxButton.OK,
                                MessageBoxImage.Information);
            }
        }