Exemplo n.º 1
0
 public ChorusHubWindow()
 {
     InitializeComponent();
     _chorusHubServer = new ChorusHubServer();
     _logBox.ShowDetailsMenuItem = true;
     _logBox.ShowCopyToClipboardMenuItem = true;
 }
Exemplo n.º 2
0
        public void GetRepostoryNames_ThreeItemsInHubFolder_GetTwoItemsWithProjectFilter()
        {
            // only accept folders containing a file with the name "randomName.ext1" or "randomName.Ext2"
            const string queryString = @"filePattern=*.ext1|*.Ext2";

            using (var testRoot = new TemporaryFolder("ChorusHubCloneTest_" + Guid.NewGuid()))
            using (var chorusHubSourceFolder = new TemporaryFolder(testRoot, "ChorusHub"))
            using (var repo1 = new TemporaryFolder(chorusHubSourceFolder, "repo1"))
            using (var tempFile1 = TempFile.WithExtension("ext1"))
            using (var repo2 = new TemporaryFolder(chorusHubSourceFolder, "repo2"))
            using (var tempFile2 = TempFile.WithExtension("unwanted"))
            using (var repo3 = new TemporaryFolder(chorusHubSourceFolder, "repo3"))
            using (var tempFile3 = TempFile.WithExtension("Ext2"))
            {
                tempFile1.MoveTo(Path.Combine(repo1.Path, Path.GetFileName(tempFile1.Path)));
                using (var writer = new StreamWriter(tempFile1.Path))
                    writer.Write("Some random text.");

                tempFile2.MoveTo(Path.Combine(repo2.Path, Path.GetFileName(tempFile2.Path)));
                tempFile3.MoveTo(Path.Combine(repo3.Path, Path.GetFileName(tempFile3.Path)));

                RepositorySetup.MakeRepositoryForTest(repo1.Path, "bob", new ConsoleProgress());
                RepositorySetup.MakeRepositoryForTest(repo2.Path, "bob", new ConsoleProgress());
                RepositorySetup.MakeRepositoryForTest(repo3.Path, "bob", new ConsoleProgress());
                var r1 = HgRepository.CreateOrUseExisting(repo1.Path, new ConsoleProgress());
                r1.AddAndCheckinFile(tempFile1.Path); // need this to create store/data/files
                var r2 = HgRepository.CreateOrUseExisting(repo2.Path, new ConsoleProgress());
                r2.AddAndCheckinFile(tempFile2.Path); // need this to create store/data/files
                var r3 = HgRepository.CreateOrUseExisting(repo3.Path, new ConsoleProgress());
                r3.AddAndCheckinFile(tempFile3.Path); // need this to create store/data/files

                ChorusHubOptions.RootDirectory = chorusHubSourceFolder.Path;
                using (var service = new ChorusHubServer())
                {
                    Assert.IsTrue(service.Start(true));

                    // Make sure filter works
                    var chorusHubServerInfo = ChorusHubServerInfo.FindServerInformation();
                    Assert.NotNull(chorusHubServerInfo);
                    var client = new ChorusHubClient(chorusHubServerInfo);
                    var repoInfo = client.GetRepositoryInformation(queryString);
                    Assert.AreEqual(2, repoInfo.Count());
                    var info1 = repoInfo.First();
                    var info2 = repoInfo.Last();
                    Assert.IsTrue(info1.RepoName == "repo1");
                    Assert.IsTrue(info2.RepoName == "repo3");
                }
            }
        }
Exemplo n.º 3
0
 protected override void OnStart(string[] args)
 {
     if (!_running)
     {
         _chorusHubServer = new ChorusHubServer();
         EventLog.WriteEntry("Chorus Hub Service is starting....");
         _running = _chorusHubServer.Start(true);
         _serviceTimer = new Timer
         {
             Interval = 500, Enabled = true
         };
         _serviceTimer.Elapsed += ServiceTimerOnElapsed;
         _serviceTimer.Start();
     }
     EventLog.WriteEntry("Chorus Hub Service started.");
 }
Exemplo n.º 4
0
 protected override void OnStart(string[] args)
 {
     if (!_running)
     {
         _chorusHubServer = new ChorusHubServer();
         EventLog.WriteEntry("Chorus Hub Service is starting....");
         _running      = _chorusHubServer.Start(true);
         _serviceTimer = new Timer
         {
             Interval = 500, Enabled = true
         };
         _serviceTimer.Elapsed += ServiceTimerOnElapsed;
         _serviceTimer.Start();
     }
     EventLog.WriteEntry("Chorus Hub Service started.");
 }
Exemplo n.º 5
0
        protected override void OnStop()
        {
            if (_running)
            {
                _serviceTimer.Stop();
                _serviceTimer.Enabled = false;
                _serviceTimer.Elapsed -= ServiceTimerOnElapsed;
                _serviceTimer.Dispose();
                _serviceTimer = null;

                EventLog.WriteEntry("Chorus Hub Service stopping....");
                _chorusHubServer.Stop();
                _chorusHubServer.Dispose();
                _chorusHubServer = null;
                _running = false;
            }
            EventLog.WriteEntry("Chorus Hub Service stopped.");
        }
Exemplo n.º 6
0
        protected override void OnStop()
        {
            if (_running)
            {
                _serviceTimer.Stop();
                _serviceTimer.Enabled  = false;
                _serviceTimer.Elapsed -= ServiceTimerOnElapsed;
                _serviceTimer.Dispose();
                _serviceTimer = null;

                EventLog.WriteEntry("Chorus Hub Service stopping....");
                _chorusHubServer.Stop();
                _chorusHubServer.Dispose();
                _chorusHubServer = null;
                _running         = false;
            }
            EventLog.WriteEntry("Chorus Hub Service stopped.");
        }
Exemplo n.º 7
0
 protected override void OnStart(string[] args)
 {
     if (!_running)
     {
         var chorusHubServerInfo = ChorusHubServerInfo.FindServerInformation();
         if (chorusHubServerInfo != null)
         {
             EventLog.WriteEntry(string.Format("Only one ChorusHub can be run on a network but there is already one running on {0}", chorusHubServerInfo.HostName), EventLogEntryType.Error);
             Stop();
             return;
         }
         _chorusHubServer = new ChorusHubServer();
         EventLog.WriteEntry("Chorus Hub Service is starting....", EventLogEntryType.Information);
         _running      = _chorusHubServer.Start(true);
         _serviceTimer = new Timer
         {
             Interval = 500, Enabled = true
         };
         _serviceTimer.Elapsed += ServiceTimerOnElapsed;
         _serviceTimer.Start();
     }
     EventLog.WriteEntry("Chorus Hub Service started.", EventLogEntryType.Information);
 }
Exemplo n.º 8
0
 protected override void OnStart(string[] args)
 {
     if (!_running)
     {
         var chorusHubServerInfo = ChorusHubServerInfo.FindServerInformation();
         if(chorusHubServerInfo != null)
         {
             EventLog.WriteEntry(string.Format("Only one ChorusHub can be run on a network but there is already one running on {0}", chorusHubServerInfo.HostName), EventLogEntryType.Error);
             Stop();
             return;
         }
         _chorusHubServer = new ChorusHubServer();
         EventLog.WriteEntry("Chorus Hub Service is starting....", EventLogEntryType.Information);
         _running = _chorusHubServer.Start(true);
         _serviceTimer = new Timer
         {
             Interval = 500, Enabled = true
         };
         _serviceTimer.Elapsed += ServiceTimerOnElapsed;
         _serviceTimer.Start();
     }
     EventLog.WriteEntry("Chorus Hub Service started.", EventLogEntryType.Information);
 }
Exemplo n.º 9
0
        public void GetRepostoryNames_TwoItemsInHubFolder_GetTwoItems()
        {
            using (var testRoot = new TemporaryFolder("ChorusHubCloneTest_" + Guid.NewGuid()))
            using (var chorusHubSourceFolder = new TemporaryFolder(testRoot, "ChorusHub"))
            using (var repo1 = new TemporaryFolder(chorusHubSourceFolder, "repo1"))
            using (var tempFile1 = TempFile.WithExtension("ext1"))
            using (var repo2 = new TemporaryFolder(chorusHubSourceFolder, "repo2"))
            using (var tempFile2 = TempFile.WithExtension("ext2"))
            {
                tempFile1.MoveTo(Path.Combine(repo1.Path, Path.GetFileName(tempFile1.Path)));
                tempFile2.MoveTo(Path.Combine(repo2.Path, Path.GetFileName(tempFile2.Path)));
                RepositorySetup.MakeRepositoryForTest(repo1.Path, "bob", new ConsoleProgress());
                RepositorySetup.MakeRepositoryForTest(repo2.Path, "bob", new ConsoleProgress());

                var r1 = HgRepository.CreateOrUseExisting(repo1.Path, new ConsoleProgress());
                r1.AddAndCheckinFile(tempFile1.Path); // need this to create store/data/files
                var r2 = HgRepository.CreateOrUseExisting(repo2.Path, new ConsoleProgress());
                r2.AddAndCheckinFile(tempFile2.Path); // need this to create store/data/files

                ChorusHubOptions.RootDirectory = chorusHubSourceFolder.Path;
                using (var service = new ChorusHubServer())
                {
                    // hg server side is now involved in deciding what repos are available
                    Assert.IsTrue(service.Start(true));
                    var chorusHubServerInfo = ChorusHubServerInfo.FindServerInformation();
                    Assert.NotNull(chorusHubServerInfo);
                    var client = new ChorusHubClient(chorusHubServerInfo);
                    var repoInfo = client.GetRepositoryInformation(string.Empty);
                    Assert.AreEqual(2, repoInfo.Count());
                    var info1 = repoInfo.First();
                    var info2 = repoInfo.Last();
                    Assert.IsTrue(info1.RepoName == "repo1");
                    Assert.IsTrue(info2.RepoName == "repo2");
                }
            }
        }
Exemplo n.º 10
0
        public void GetRepostoryNames_TwoItemsInHubFolder_GetOneItemWithProjectFilter()
        {
            // only accept folders containing a file with the name "randomName.someExt"
            const string queryString = "filePattern=*.someExt";

            using (var testRoot = new TemporaryFolder("ChorusHubCloneTest_" + Guid.NewGuid()))
            using (var chorusHubSourceFolder = new TemporaryFolder(testRoot, "ChorusHub"))
            using (var repo1 = new TemporaryFolder(chorusHubSourceFolder, "repo1"))
            using (var tempFile = TempFile.WithExtension("someExt"))
            using (var repo2 = new TemporaryFolder(chorusHubSourceFolder, "repo2"))
            using (var tempFile2 = TempFile.WithExtension("someOtherExt"))
            {
                tempFile.MoveTo(Path.Combine(repo1.Path, Path.GetFileName(tempFile.Path)));
                using (var writer = new StreamWriter(tempFile.Path))
                    writer.Write("Some random text.");
                tempFile2.MoveTo(Path.Combine(repo2.Path, Path.GetFileName(tempFile2.Path)));

                RepositorySetup.MakeRepositoryForTest(repo1.Path, "bob", new ConsoleProgress());
                RepositorySetup.MakeRepositoryForTest(repo2.Path, "bob", new ConsoleProgress());

                var r1 = HgRepository.CreateOrUseExisting(repo1.Path, new ConsoleProgress());
                r1.AddAndCheckinFile(tempFile.Path); // need this to create store/data/files
                var r2 = HgRepository.CreateOrUseExisting(repo2.Path, new ConsoleProgress());
                r2.AddAndCheckinFile(tempFile2.Path); // need this to create store/data/files

                ChorusHubOptions.RootDirectory = chorusHubSourceFolder.Path;
                using (var service = new ChorusHubServer())
                {
                    Assert.IsTrue(service.Start(true));

                    var chorusHubServerInfo = ChorusHubServerInfo.FindServerInformation();
                    Assert.NotNull(chorusHubServerInfo);
                    // Make sure all repos are there first
                    var client1 = new ChorusHubClient(chorusHubServerInfo);
                    var allRepoInfo = client1.GetRepositoryInformation(string.Empty);
                    Assert.AreEqual(2, allRepoInfo.Count());
                    Assert.IsTrue(allRepoInfo.Select(ri => ri.RepoName.Contains("repo2")).Any());

                    // Make sure filter works
                    // In order to have a hope of getting a different result to GetRepositoryInformation
                    // we have to start over with a new client
                    chorusHubServerInfo = ChorusHubServerInfo.FindServerInformation();
                    Assert.NotNull(ChorusHubServerInfo.FindServerInformation());
                    var client2 = new ChorusHubClient(chorusHubServerInfo);
                    var repoInfo = client2.GetRepositoryInformation(queryString);
                    Assert.AreEqual(1, repoInfo.Count());
                    var info = repoInfo.First();
                    Assert.IsTrue(info.RepoName == "repo1");
                }
            }
        }