public void The_Load_Method_Reads_One_File()
        {
            IProjectDeserialiser loader = new ProjectDeserialiserV1(fileController);
            loader.LoadStaticFilenames("Folder");

            fileController.AssertWasCalled(f => f.ReadAllText(Arg<string>.Is.Equal("Folder\\StaticFiles.xml")));
        }
        public void The_Load_Method_Reads_One_File()
        {
            IProjectDeserialiser loader = new ProjectDeserialiserV1(fileController);
            loader.LoadApiExtensionFiles("Folder");

            fileController.AssertWasCalled(f => f.ReadAllText(Arg<string>.Is.Equal("Folder\\Specs_For_Project_Loading__ApiExtensions.ApiExtensionTest.apiext.xml")));
        }
        public void The_Load_Method_Loads_Namespaces_Correctly()
        {
            ProjectDeserialiserV1 deserialiser = new ProjectDeserialiserV1(fileController);
            IDesignerProject project = MockRepository.GenerateMock<IDesignerProject>();

            deserialiser.ReadProject(ExpectedXml.GetXmlDocRoot(), project, "Folder\\Project.aad");

            project.AssertWasCalled(p => p.AddNamespace(Arg<string>.Is.Equal("Ns1")));
        }
        public void The_Load_Method_Gets_The_Correct_Filenames()
        {
            ProjectDeserialiserV1 deserialiser = new ProjectDeserialiserV1(fileController);
            var files = deserialiser.ReadStaticFilesDetails(ExpectedXml.GetXmlDocRoot());

            Assert.That(files.Count(), Is.EqualTo(1));
            Assert.That(files.ElementAt(0).FullFilePath, Is.EqualTo("static.dat"));
            Assert.That(files.ElementAt(0).DisplayName, Is.EqualTo("static.dat"));
        }
        public virtual OutputFolder Read(XmlNode rootElement)
        {
            if (rootElement == null)
            {
                throw new DeserialisationException("Could not find Option element");
            }
            ProjectDeserialiserV1.CheckVersion(rootElement);

            return(ReadFolder(rootElement.SelectSingleNode("Folder")));
        }
        public void The_Load_Method_Creates_The_Correct_UserOption()
        {
            ProjectDeserialiserV1 deserialiser = new ProjectDeserialiserV1(fileController);
            var options = deserialiser.ReadApiExtensions(ExpectedXml.GetXmlDocRoot());
            Assert.That(options.Count(), Is.EqualTo(1), "Should only load one ApiExtension");

            var option = options.ElementAt(0);
            Assert.That(option.HasOverride, Is.True);
            Assert.That(option.ExtendedMethod.DeclaringType.Name, Is.EqualTo("ApiExtensionTest"));
            Assert.That(option.ExtendedMethod.Name, Is.EqualTo("Method1"));
            Assert.That(option.OverridingFunctionBody, Is.EqualTo("return \"<>\";"));
        }
        public void The_Load_Method_Loads_ReferencedFiles_Correctly()
        {
            ProjectDeserialiserV1 deserialiser = new ProjectDeserialiserV1(fileController);
            IDesignerProject project = new ProjectBase(); //MockRepository.GenerateStub<IDesignerProject>();

            deserialiser.ReadProject(ExpectedXml.GetXmlDocRoot(), project, "Folder\\Project.aad");

            Assert.That(project.References, Has.Count(1));

            Assert.That(project.References[0].FileName, Is.EqualTo("Folder\\file.dll"));
            Assert.That(project.References[0].MergeWithAssembly, Is.True);
            Assert.That(project.References[0].UseInWorkbench, Is.True);
        }
        public void The_Categories_Are_Loaded_Properly()
        {
            UserOption[] userOptions = new[]
                                                  	{
                                                  		new UserOption {VariableName = "var"},
                                                  		new UserOption {VariableName = "Var2"}
                                                  	};

            ProjectDeserialiserV1 deserialiser = new ProjectDeserialiserV1(fileController);
            deserialiser.ReadUserOptionDetails(userOptions, expectedXml.GetXmlDocRoot());

            Assert.That(userOptions[0].Category, Is.EqualTo("Gen"), "The UserOption category was not loaded.");
            Assert.That(userOptions[1].Category, Is.EqualTo("General"), "The default UserOption category is wrong.");
        }
        public void The_Load_Method_Creates_The_Correct_Project()
        {
            ProjectDeserialiserV1 deserialiser = new ProjectDeserialiserV1(fileController);
            IDesignerProject project = MockRepository.GenerateMock<IDesignerProject>();

            deserialiser.ReadProject(ExpectedXml.GetXmlDocRoot(), project, "Folder\\Project.aad");

            project.AssertWasCalled(p => p.ProjectName = "Test");
            project.AssertWasCalled(p => p.ProjectDescription = "Desc");
            project.AssertWasCalled(p => p.CompileFolderName = "Folder\\temp-compile"); // This should be the absolute path.
            project.AssertWasCalled(p => p.Version = "1.2.3.2.1");
            project.AssertWasCalled(p => p.ProjType = ProjectTypes.None);
            project.AssertWasCalled(p => p.DebugProjectFile = "Folder\\debug.wbproj"); // Absolute path
            project.AssertWasCalled(p => p.TestGenerateDirectory = "Folder\\test gen"); // Absolute path
        }
 public void The_Load_Method_Throws_An_Exception()
 {
     IProjectDeserialiser deserialiser = new ProjectDeserialiserV1(fileController);
     deserialiser.LoadProjectFile("ProjectFile.aad", null);
 }
Beispiel #11
0
        /// <summary>
        /// Open project file.
        /// </summary>
        /// <param name="filePath"></param>
        public void Open(string filePath)
        {
            ProjectFileName = filePath;
            if (Path.GetExtension(filePath) == ".stz")
            {
                ProjectLoadAndSaveHelper.ReadFromXml(this, filePath);
            }
            else
            {
                ProjectDeserialiserV1 deserialiserV1 = new ProjectDeserialiserV1(new FileController());
                deserialiserV1.LoadProject(filePath, this);

                foreach (var provider in ReferencedAssemblies.Where(ProviderInfo.IsProvider))
                {
                    var resourceName = provider.GetName().Name + ".FunctionInfo.xml";
                    if (provider.GetManifestResourceInfo(resourceName) != null)
                    {
                        using (Stream funcInfo = provider.GetManifestResourceStream(resourceName))
                            if (funcInfo != null)
                                using (StreamReader reader = new StreamReader(funcInfo))
                                {
                                    XmlDocument doc = new XmlDocument();
                                    var xml = reader.ReadToEnd();
                                    doc.LoadXml(xml);

                                    deserialiserV1.LoadDefaultApiFunctionBodies(doc.DocumentElement, this);
                                }
                    }
                }
            }
            IsDirty = false;
            TriggerProjectChangedEvent(false);
        }
        public void The_Load_Method_Creates_Nothing()
        {
            IProjectDeserialiser loader = new ProjectDeserialiserV1(fileController);
            IEnumerable<UserOption> optionFiles = loader.LoadUserOptionFiles("Folder");

            Assert.That(optionFiles, Is.Empty);
        }
        public void The_Values_Are_Loaded_Properly()
        {
            ProjectDeserialiserV1 deserialiser = new ProjectDeserialiserV1(fileController);
            var option = deserialiser.ReadUserOption(expectedXml.GetXmlDocRoot());

            Assert.That(option.Values, Has.Count(1));
            Assert.That(option.Values[0], Is.EqualTo("val1"));
        }
        public void The_Load_Method_Creates_Nothing()
        {
            IProjectDeserialiser loader = new ProjectDeserialiserV1(fileController);
            IEnumerable<ApiExtensionMethod> apiExtensionMethods = loader.LoadApiExtensionFiles("Folder");

            Assert.That(apiExtensionMethods, Is.Empty);
        }
 public OutputsParserV1(ProjectDeserialiserV1 deserialiser)
 {
     Deserialiser = deserialiser;
 }
        public void The_Load_Details_Method_Creates_Nothing()
        {
            IProjectDeserialiser loader = new ProjectDeserialiserV1(fileController);
            loader.LoadStaticFilenames("Folder");

            fileController.AssertWasCalled(f => f.ReadAllText("Folder\\UserOptions.xml"));
        }
        public void The_Load_Method_Creates_The_Correct_UserOption()
        {
            ProjectDeserialiserV1 deserialiser = new ProjectDeserialiserV1(fileController);
            var option = deserialiser.ReadUserOption(expectedXml.GetXmlDocRoot());

            Assert.That(option.VariableName, Is.EqualTo("var"));
            Assert.That(option.VarType, Is.EqualTo(typeof(string)));
            Assert.That(option.Text, Is.EqualTo("test-text"));
            Assert.That(option.Description, Is.EqualTo("test-description"));
            Assert.That(option.Category, Is.EqualTo(""), "No category should be loaded at this level, see LoadUserOptionsDetails");
            Assert.That(option.DefaultValueFunctionBody, Is.EqualTo("dv-body"));
            Assert.That(option.IteratorType, Is.EqualTo(typeof(bool)));
            Assert.That(option.ValidatorFunctionBody, Is.EqualTo("validator body"));
            Assert.That(option.DisplayToUserFunctionBody, Is.EqualTo("return true;"));
            Assert.That(option.ResetPerSession, Is.True);
        }
 public OutputsParserV1(ProjectDeserialiserV1 deserialiser)
 {
     Deserialiser = deserialiser;
 }
 public void The_Load_Method_Throws_An_Exception()
 {
     IProjectDeserialiser deserialiser = new ProjectDeserialiserV1(fileController);
     deserialiser.LoadStaticFilenames("Folder");
 }
        public void InitFromDesignerProjectXml(XmlDocument doc)
        {
            log.DebugFormat("Loading Designer Project Info from Xml Document");

            if (doc.DocumentElement == null)
                throw new DeserialisationException("Could not load designer project info - xml document is empty");

            if (doc.DocumentElement.Name == "ROOT")
            {
                LoadOldDesignerProjectXml(doc);
                return;
            }

            // New loading code
            ProjectBase designerProject = new ProjectBase();
            ProjectDeserialiserV1 deserialiserV1 = new ProjectDeserialiserV1(new FileController());
            deserialiserV1.LoadFromSingleXmlFile(designerProject, doc, ProjectFile);

            TemplateName = designerProject.ProjectName;
            TemplateDescription = designerProject.ProjectDescription;

            // Providers and referenced files
            ProvidersToBeDisplayed.Clear();
            foreach (var referencedFile in designerProject.References)
            {
                if (referencedFile.IsProvider && referencedFile.UseInWorkbench)
                {
                    ProvidersToBeDisplayed.Add(Path.GetFileName(referencedFile.FileName));
                }

                string pathsSearched = "";
                string currentPath = Path.GetFileName(referencedFile.FileName);
                bool assemblyFound = false;

                foreach (string searchPath in SharedData.AssemblySearchPaths)
                {
                    pathsSearched += searchPath + Environment.NewLine;
                    string filePath = Path.Combine(searchPath, currentPath);

                    if (File.Exists(filePath))
                    {
                        log.DebugFormat("Loading Provider from {0}", filePath);
                        assemblyFound = true;
                        ReferencedAssemblyPaths.Add(filePath);
                        break;
                    }
                }

                if (!assemblyFound)
                {
                    if (MessageBox.Show(string.Format("'{0}' can't be located. The following folders have been searched: \n\n{1}\nDo you want to locate this file?", currentPath, pathsSearched), "File not found - Loading Project", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                    {
                        OpenFileDialog openFileDialog = new OpenFileDialog();
                        openFileDialog.FileName = currentPath;

                        if (openFileDialog.ShowDialog() == DialogResult.OK)
                        {
                            if (File.Exists(openFileDialog.FileName))
                            {
                                // Add this path to the search paths, because related assemblies might be in here as well.
                                SharedData.AddAssemblySearchPath(Path.GetDirectoryName(openFileDialog.FileName));
                                ReferencedAssemblyPaths.Add(openFileDialog.FileName);
                                assemblyFound = true;
                            }
                        }
                    }
                    if (!assemblyFound)
                    {
                        throw new FileNotFoundException(string.Format("Referenced assembly not found: {0}\n\nPlease make sure the assembly exists in one of these folders:{1}", currentPath, pathsSearched));
                    }
                }
            }
            // User Options
            var options = designerProject.UserOptions.Select(uo => uo.ToOption());
            _Options.AddRange(options);

            log.DebugFormat("Loaded up {0} UserOptions", _Options.Count);
            _Options.ForEach(o => log.DebugFormat("UserOption {0} | On Type {1}", o.VariableName, o.IteratorName));

            LoadReferencedAssemblies();
            LoadAndFillProviders();

            CombinedOutput = designerProject.RootOutput.ToCombinedOutput();
            // I am not handling Default Value Functions. I think they no longer exist.

            FillVirtualProperties();
        }