public void DetermineProjectVersionFromMatches_WithMultipleMatchesWithProjects_ReturnsProjectWithHighestVersion()
        {
            var highestVersionProject = new RegisteredProjectInfo("project1", null, new Version("2.0"));
            var lowestVersionProject = new RegisteredProjectInfo("project2", null, new Version("1.0"));
            var match1 = new FileReleaseInfo("", "", new Version(), null, null, highestVersionProject);
            var match2 = new FileReleaseInfo("", "", new Version(), null, null, lowestVersionProject);
            var matches = new List<List<FileReleaseInfo>>
                              {
                                  new List<FileReleaseInfo> {match1},
                                  new List<FileReleaseInfo> {match2}
                              };
            _projectUpgradeService.RegisteredProjects.Add(0, highestVersionProject);
            _projectUpgradeService.RegisteredProjects.Add(1, lowestVersionProject);
            var matchedProject = _projectUpgradeService.DetermineProjectVersionFromMatches(matches);

            Assert.AreEqual(highestVersionProject, matchedProject);
        }
        public void DetermineProjectVersionFromMatches_WithMatchWithoutProject_DoesNotIncludeProjectlessMatchInResultingCalcuation()
        {
            var expectedProject = new RegisteredProjectInfo("project", null, new Version("1.2.3.4"));
            var matchWithoutProject = new FileReleaseInfo("", "", new Version(), null, null, null);
            var matchWithProject = new FileReleaseInfo("", "", new Version(), null, null, expectedProject);
            var matches = new List<List<FileReleaseInfo>>
                              {
                                  new List<FileReleaseInfo> {matchWithProject},
                                  new List<FileReleaseInfo> {matchWithoutProject}
                              };
            _projectUpgradeService.RegisteredProjects.Add(0, expectedProject);
            var matchedProject = _projectUpgradeService.DetermineProjectVersionFromMatches(matches);

            Assert.AreEqual(expectedProject, matchedProject);
        }
        public void DetermineProjectVersionFromMatches_WithElementWithMultipleMatches_DoesNotIncludeMultipleMatchEntriesInResultingCalcuation()
        {
            var highestVersionProject = new RegisteredProjectInfo("project1", null, new Version("2.0"));
            var lowestVersionProject = new RegisteredProjectInfo("project2", null, new Version("1.0"));
            var match1 = new FileReleaseInfo("", "", new Version(), null, null, highestVersionProject);
            var match2 = new FileReleaseInfo("", "", new Version(), null, null, highestVersionProject);
            var match3 = new FileReleaseInfo("", "", new Version(), null, null, lowestVersionProject);
            var matches = new List<List<FileReleaseInfo>>
                              {
                                  new List<FileReleaseInfo> {match1, match2},
                                  new List<FileReleaseInfo> {match3}
                              };
            _projectUpgradeService.RegisteredProjects.Add(0, highestVersionProject);
            _projectUpgradeService.RegisteredProjects.Add(1, lowestVersionProject);
            var matchedProject = _projectUpgradeService.DetermineProjectVersionFromMatches(matches);

            Assert.AreEqual(lowestVersionProject, matchedProject);
        }
        public void BuildBaseProject_WithNullBackupFileName_ThrowsArgumentException()
        {
            IDirectoryInfo projectBackupDir = MockRepository.GenerateStub<IDirectoryInfo>();
            projectBackupDir.Stub(dir => dir.Exists).Return(true);
            RegisteredProjectInfo projectInfo = new RegisteredProjectInfo(null, null, new Version());
            ProjectInstallInfo installInfo = new ProjectInstallInfo(projectInfo, null, null);

            _projectUpgradeService.BuildBaseProject(installInfo, projectBackupDir, null);
        }
        public void BuildBaseProject_WithNonExistentBackupFile_ThrowsArgumentException()
        {
            IDirectoryInfo projectBackupDir = MockRepository.GenerateStub<IDirectoryInfo>();
            projectBackupDir.Stub(dir => dir.Exists).Return(true);
            projectBackupDir.Stub(dir => dir.Exists).Return(true);
            projectBackupDir.Stub(dir => dir.GetFiles("")).IgnoreArguments().Return(new IFileInfo[] {});
            projectBackupDir.Stub(dir => dir.FullName).Return("C:\\");

            RegisteredProjectInfo projectInfo = new RegisteredProjectInfo(null, "dummy.zip", new Version());
            ProjectInstallInfo installInfo = new ProjectInstallInfo(projectInfo, null, null);

            _projectUpgradeService.BuildBaseProject(installInfo, projectBackupDir, null);
        }
 public void AddFileToReleaseDb_WithNonNullProjectId_SetsProjectOnFileReleaseInfo()
 {
     var projectInfo = new RegisteredProjectInfo("SomeProject", null, new Version("7.5.2.0"));
     int projectId = (int)_projectUpgradeService.InsertProjectRecord(projectInfo);
     var connection = _projectUpgradeService.Connection;
     var url = @"\SomeFolder\blah.txt";
     _projectUpgradeService.AddFileToReleaseDb(StubFile(url), new Version(), connection, null, projectId);
     FileReleaseInfo matchingRelease = _projectUpgradeService.GetReleaseInfoByPath(url).First();
     Assert.NotNull(matchingRelease.Project);
     Assert.AreEqual(projectInfo.Name, matchingRelease.Project.Name);
     Assert.AreEqual(projectInfo.Version, matchingRelease.Project.Version);
 }