Beispiel #1
0
        private static ProjectCreator CreateWithValidFileSystemMock()
        {
            var project  = new CsProject("John Doe");
            var template = new VsTemplate("EmptyApp");

            return(new ProjectCreator(project, template, CreateMockService()));
        }
Beispiel #2
0
        public static CsSolution ParseSolution(string solutionFilePath)
        {
            var          solution     = new CsSolution();
            SolutionFile solutionFile = SolutionFile.Parse(solutionFilePath);
            var          projectFiles = solutionFile.ProjectsInOrder;
            var          projects     = new List <CsProject>();

            foreach (var projectFile in projectFiles)
            {
                if (!Path.GetExtension(projectFile.AbsolutePath).Equals(".csproj"))
                {
                    //TODO: support recursive folder search
                    Console.WriteLine($"Skipping path '{projectFile.AbsolutePath}'...");
                    continue;
                }

                ProjectRootElement projectToParse = ProjectRootElement.Open(projectFile.AbsolutePath);
                var csProject = new CsProject()
                {
                    Name = projectFile.ProjectName
                };
                csProject.Classes = ParseProjectRoot(projectFile, projectToParse);
                projects.Add(csProject);
            }
            solution.Projects = projects;
            return(solution);
        }
Beispiel #3
0
 public void UserNameEndingWithSDoesNotAppendAdditionalS()
 {
     project = new CsProject("Ellis");
     Assert.AreEqual("EllisEmptyApp", project.Name);
     project = new CsProject("ElviS");
     Assert.AreEqual("ElviSEmptyApp", project.Name);
 }
Beispiel #4
0
		public void UserNameEndingWithSDoesNotAppendAdditionalS()
		{
			project = new CsProject("Ellis");
			Assert.AreEqual("EllisEmptyApp", project.Name);
			project = new CsProject("ElviS");
			Assert.AreEqual("ElviSEmptyApp", project.Name);
		}
Beispiel #5
0
        public void PackageReferences()
        {
            var csProject = new CsProject(TestHelper.GetStimulPathFor(Path.Combine("Projects", "PackageReference_Single.csproj")), null, null);

            Assert.AreEqual(1, csProject.PackageReferencesFromCsProj.Count);
            Assert.AreEqual(new NuGetClientHelper.NuGetPackageIdentity("Microsoft.NET.Test.Sdk", "16.9.4"), csProject.PackageReferencesFromCsProj[0]);

            csProject = new CsProject(TestHelper.GetStimulPathFor(Path.Combine("Projects", "PackageReference_Many.csproj")), null, null);
            Assert.AreEqual(3, csProject.PackageReferencesFromCsProj.Count);
            Assert.AreEqual(new NuGetClientHelper.NuGetPackageIdentity("nunit", "3.13.1"), csProject.PackageReferencesFromCsProj[0]);
            Assert.AreEqual(new NuGetClientHelper.NuGetPackageIdentity("NUnit3TestAdapter", "3.17.0"), csProject.PackageReferencesFromCsProj[1]);
            Assert.AreEqual(new NuGetClientHelper.NuGetPackageIdentity("Microsoft.NET.Test.Sdk", "16.9.4"), csProject.PackageReferencesFromCsProj[2]);
        }
Beispiel #6
0
        public void Retrieves_type_properties()
        {
            CsSolution solution = SolutionParser.ParseSolution(_testSolutionFilePath);
            CsProject  project  = solution.Projects.ElementAt(0);
            CsClass    csClass  = project.GetClass(nameof(Class2));
            var        csProps  = csClass.Properties;

            Assert.AreEqual(2, csProps.Count(), "Unexpected number of properties.");


            CsProperty csProp = csProps.First();

            Assert.AreEqual(nameof(Class2.RefToClass1), csProp.Name, "Unexpected property name.");
            Assert.AreEqual(typeof(Class1).Name, csProp.Type, "Unexpected property type.");

            //TODO: retrieve property access
            //Assert.AreEqual("public", csProp.Access, "Unexpected property access.");
        }
Beispiel #7
0
 public void Init()
 {
     project = new CsProject("User Name");
 }
Beispiel #8
0
 private void button1_Click(object sender, EventArgs e)
 {
     var p = new CsProject(@"s:\PerfixEMS_DEV\PerfixConnect\PerfixConnect.Data\PerfixConnect.Data.csproj");
     p.Load();
     p.Save();
 }
		private static ProjectCreator CreateWithValidFileSystemMock()
		{
			var project = new CsProject("John Doe");
			var template = new VsTemplate("EmptyApp");
			return new ProjectCreator(project, template, CreateMockService());
		}
Beispiel #10
0
		public void Init()
		{
			project = new CsProject("User Name");
		}
Beispiel #11
0
        public void Framework(string project, string expectedPlatform)
        {
            var csProject = new CsProject(TestHelper.GetStimulPathFor(Path.Combine("Projects", project)), null, null);

            Assert.AreEqual(expectedPlatform, csProject.Framework);
        }
Beispiel #12
0
        public void PlatformTarget(string project, CsProject.PlatformType expectedPlatform)
        {
            var csProject = new CsProject(TestHelper.GetStimulPathFor(Path.Combine("Projects", project)), null, null);

            Assert.AreEqual(expectedPlatform, csProject.PlatformTarget);
        }
        private CsProject AnalyseProjectXML(string fullPathName)
        {
            CsProject csProject = new CsProject();

            XDocument  xmldoc  = XDocument.Load(fullPathName);
            XNamespace msbuild = "http://schemas.microsoft.com/developer/msbuild/2003";

            csProject.Name = xmldoc.Descendants(msbuild + "AssemblyName").FirstOrDefault()?.Value;
            if (_solutionHashTable.ContainsKey(csProject.Name))
            {
                csProject.SolutionName = _solutionHashTable[csProject.Name].ToString();
            }
            else
            {
                csProject.SolutionName = csProject.Name;
            }

            // Get Dependencies
            foreach (var resource in xmldoc.Descendants(msbuild + "ProjectReference"))
            {
                string includePath = resource.Descendants(msbuild + "Name").FirstOrDefault()?.Value;
                if (includePath != null)
                {
                    csProject.Dependencies.Add(includePath);
                }
            }

            // Get ServiceReferences
            foreach (var resource in xmldoc.Descendants(msbuild + "None").Where(x => x.Attribute("Include").Value.EndsWith(".disco")).ToList())
            {
                string serviceReference = resource.Attribute("Include").Value;
                serviceReference = serviceReference.Split('\\').Last().Replace(".disco", "");
                serviceReference = Regex.Replace(serviceReference, @"[0-9]", "");

                if (!csProject.ServiceReferences.Contains(serviceReference))
                {
                    csProject.ServiceReferences.Add(serviceReference);
                }
            }

            // Write Project Details
            Console.WriteLine($"{Environment.NewLine}Project Name:{Environment.NewLine}\t{csProject.Name}");
            if (csProject.Dependencies.Count > 0)
            {
                Console.WriteLine($"Project Dependencies:{Environment.NewLine}\t{String.Join(Environment.NewLine + "\t", csProject.Dependencies)}");
            }
            else
            {
                Console.WriteLine($"Project Dependencies:{Environment.NewLine}\tNone");
            }

            if (csProject.ServiceReferences.Count > 0)
            {
                Console.WriteLine($"Project Service Reference:{Environment.NewLine}\t{String.Join(Environment.NewLine + "\t", csProject.ServiceReferences)}");
            }
            else
            {
                Console.WriteLine($"Project Service Reference:{Environment.NewLine}\tNone");
            }

            return(csProject);
        }