public void TestSerialization()
        {
            DefaultConfigurationFileLoader Loader  = new DefaultConfigurationFileLoader();
            FileConfigurationService       Service = new FileConfigurationService(Loader, null, new FileInfo(@"C:\Downloads\ccnet.config.xml"));

            IProject project = Service.Load().Projects["mh_refactor_p"];

            string Serialized = Serialize("project", project);

            System.Diagnostics.Debug.WriteLine(Serialized);
            Project Clone = (Project)Deserialize(Serialized);
        }
        public void ShouldBeAbleToSaveProjectsThatALoaderCanLoad()
        {
            ExecutableTask builder = new ExecutableTask();

            builder.Executable = "foo";
            FileSourceControl sourceControl = new FileSourceControl();

            sourceControl.RepositoryRoot = "bar";
            // Setup
            Project project1 = new Project();

            project1.Name          = "Project One";
            project1.SourceControl = sourceControl;
            Project project2 = new Project();

            project2.Name          = "Project Two";
            project2.SourceControl = sourceControl;
            ProjectList projectList = new ProjectList();

            projectList.Add(project1);
            projectList.Add(project2);

            var mockConfiguration = new Mock <IConfiguration>();

            mockConfiguration.SetupGet(_configuration => _configuration.Projects).Returns(projectList).Verifiable();

            FileInfo configFile = new FileInfo(TempFileUtil.CreateTempFile(TempFileUtil.CreateTempDir(this), "loadernet.config"));

            // Execute
            DefaultConfigurationFileSaver saver = new DefaultConfigurationFileSaver(new NetReflectorProjectSerializer());

            saver.Save((IConfiguration)mockConfiguration.Object, configFile);

            DefaultConfigurationFileLoader loader = new DefaultConfigurationFileLoader();
            IConfiguration configuration2         = loader.Load(configFile);

            // Verify
            Assert.IsNotNull(configuration2.Projects["Project One"]);
            Assert.IsNotNull(configuration2.Projects["Project Two"]);
            mockConfiguration.Verify();
        }
Esempio n. 3
0
        /// <summary>
        /// Begin loading the configuration.
        /// </summary>
        private void StartConfigurationLoad()
        {
            DisplayProgressMessage("Loading configuration, please wait...", 0);
            myStopwatch.Reset();
            myStopwatch.Start();
            var loader = new DefaultConfigurationFileLoader(this);

            myBodyEl           = validationResults.Document.Body;
            myBodyEl.InnerHtml = string.Empty;
            this.configurationHierarchy.Initialise(myFileName);

            // Initialise the display
            DisplayConfig();
            ClearProcessed();

            try
            {
                // Attempt to load the configuration
                loader.Load(new FileInfo(myFileName));
            }
            catch (ConfigurationException error)
            {
                // There is an error with the configuration
                myBodyEl.AppendChild(
                    GenerateElement("div",
                                    new HtmlAttribute("class", "error"),
                                    GenerateElement("div", "Unable to load configuration:")));
                var errors = GenerateElement("ul");
                myBodyEl.AppendChild(errors);

                // Generate the error details
                Exception errorDetails = error;
                while (errorDetails != null)
                {
                    errors.AppendChild(
                        GenerateElement("li", errorDetails.Message));
                    errorDetails = errorDetails.InnerException;
                }

                // Log the base error
                LogMessage(error.Message);
                isConfigValid = false;
            }
            catch (PreprocessorException error)
            {
                // There was an error with pre-processing
                var message = "Preprocessing failed loading the XML: " + error.Message;
                myBodyEl.AppendChild(
                    GenerateElement("div",
                                    new HtmlAttribute("class", "error"),
                                    GenerateElement("div", message)));
                LogMessage(message);
                isConfigValid = false;
            }
            catch (Exception error)
            {
                // Catch-all exception block
                StringBuilder message = new StringBuilder();
                message.Append("An unexpected error has occurred while loading the configuration!" +
                               Environment.NewLine +
                               "Please report this error to the CCNet user group (http://groups.google.com/group/ccnet-user). This will help us to improve this application.");
                Exception currentError = error;
                while (currentError != null)
                {
                    message.AppendFormat("{0}{1} [{2}]", Environment.NewLine, currentError.Message, currentError.GetType().Name);
                    message.AppendFormat("{0}{1}", Environment.NewLine, currentError.StackTrace);
                    currentError = currentError.InnerException;
                    if (currentError != null)
                    {
                        message.AppendFormat("{0}{1} Inner Exception {1}", Environment.NewLine, new string('=', 10));
                    }
                }
                MessageBox.Show(this, message.ToString(), "Unexpected error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                isConfigValid = false;
            }
        }
Esempio n. 4
0
 protected void SetUp()
 {
     fileLoader = new DefaultConfigurationFileLoader();
 }