public void PublishSProcCommandHandle02() { var project = Substitute.For <EnvDTE.Project>(); project.FileName.Returns("db.sqlproj"); _pss.GetProjectFiles(null).ReturnsForAnyArgs(new string[] { "file.r" }); object ext; var hier = Substitute.For <IVsHierarchy>(); hier.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_ExtObject, out ext).Returns((c) => { c[2] = project; return(VSConstants.S_OK); }); _pss.GetSelectedProject <IVsHierarchy>().Returns(hier); var sol = Substitute.For <EnvDTE.Solution>(); var projects = Substitute.For <EnvDTE.Projects>(); projects.GetEnumerator().Returns((new EnvDTE.Project[] { project }).GetEnumerator()); sol.Projects.Returns(projects); _pss.GetSolution().Returns(sol); var cmd = new PublishSProcCommand(_appShell, _pss); cmd.TryHandleCommand(null, RPackageCommandId.icmdPublishSProc, false, 0, IntPtr.Zero, IntPtr.Zero).Should().BeTrue(); _appShell.Received().ShowErrorMessage(Resources.SqlPublishDialog_NoSProcFiles); }
private IReadOnlyList <string> GetDatabaseProjects() { _noDbProjects = false; var projectMap = new Dictionary <string, EnvDTE.Project>(); var solution = _pss.GetSolution(); var projects = new List <string>(); foreach (EnvDTE.Project project in solution.Projects) { try { // Some projects throw 'not implemented' var projectFileName = project.FileName; if (!string.IsNullOrEmpty(projectFileName) && Path.GetExtension(projectFileName).EqualsIgnoreCase(".sqlproj")) { projects.Add(project.Name); } } catch (NotImplementedException) { } catch (COMException) { } } if (projects.Count == 0) { _noDbProjects = true; projects.Add(Resources.SqlPublishDialog_NoDatabaseProjects); } return(projects); }
public async Task ProjectList() { var projects = Substitute.For <EnvDTE.Projects>(); var p1 = Substitute.For <EnvDTE.Project>(); p1.FileName.Returns("project1.sqlproj"); p1.Name.Returns("project1"); var p2 = Substitute.For <EnvDTE.Project>(); p2.FileName.Returns("project2.sqlproj"); p2.Name.Returns("project2"); var p3 = Substitute.For <EnvDTE.Project>(); p3.FileName.Returns("project3.csproj"); p3.Name.Returns("project3"); projects.GetEnumerator().Returns((new EnvDTE.Project[] { p1, p2, p3 }).GetEnumerator()); var sol = Substitute.For <EnvDTE.Solution>(); sol.Projects.Returns(projects); _pss.GetSolution().Returns(sol); _storage.GetSetting(SqlSProcPublishSettings.TargetTypeSettingName, PublishTargetType.Dacpac).Returns(PublishTargetType.Project); _storage.GetSetting(SqlSProcPublishSettings.TargetProjectSettingName, Arg.Any <string>()).Returns(("project2")); var settings = new SqlSProcPublishSettings(_storage); var model = await SqlPublishOptionsDialogViewModel.CreateAsync(settings, _coreShell, _pss, _pcsp); model.Settings.TargetType.Should().Be(PublishTargetType.Project); model.Settings.TargetProject.Should().Be("project2"); model.Targets.Should().HaveCount(2); model.Targets[0].Should().Be("project1"); model.Targets[1].Should().Be("project2"); model.SelectedTargetIndex.Should().Be(1); }