public void HasConflictingAdditionalFile_ConflictingFileFoundInProject_ReturnsIfFileIsAdditionalFile(string itemType, bool isConflicting)
        {
            const string conflictingFilePath = "c:\\dummy\\SonarLint.xml";

            SetupFileUnderRootFolder(conflictingFilePath, exists: false);

            var projectMock = new ProjectMock("c:\\dummy\\test.csproj");

            projectMock.AddProjectItem("sonarLINT.xml", itemType);

            var result = testSubject.HasConflictingAdditionalFile(projectMock, "SonarLint.xml", out var conflictingPath);

            result.Should().Be(isConflicting);
            conflictingPath.Should().Be(isConflicting ? "c:\\dummy\\sonarLINT.xml" : "");
        }
        public void HasConflictingAdditionalFile_NoConflictingFile_False(string otherFileName)
        {
            const string conflictingFilePath = "c:\\dummy\\SonarLint.xml";

            SetupFileUnderRootFolder(conflictingFilePath, exists: false);

            var projectMock = new ProjectMock("c:\\dummy\\test.csproj");

            projectMock.AddProjectItem(otherFileName, "AdditionalFiles");

            var result = testSubject.HasConflictingAdditionalFile(projectMock, "SonarLint.xml", out var conflictingPath);

            result.Should().BeFalse();
            conflictingPath.Should().BeEmpty();
        }
        public void ProjectBindingOperation_Commit_FileIsAlreadyReferenced(string existingFileItemType)
        {
            // Arrange
            var filePath = cSharpVBBindingConfig.AdditionalFile.Path;

            projectMock.SetCSProjectKind();
            projectMock.AddProjectItem(filePath, existingFileItemType);

            var testSubject = CreateTestSubject();

            testSubject.Initialize();
            testSubject.Prepare(CancellationToken.None);

            // Act
            testSubject.Commit();

            // Assert
            CheckAdditionalFileIsReferenced(projectMock, filePath);
            projectMock.Files.Count().Should().Be(1); // existing file updated
        }