Example #1
0
        /// <summary>
        /// Loads the project.
        /// </summary>
        /// <param name="project">The project.</param>
        private void LoadProject(GenerateProject project)
        {
            CloseProject();

            switch (project.ProjectType)
            {
            case ProjectType.Assembly:
                _assemblyManager.LoadProject(project);
                _activeManager = _assemblyManager;
                break;

            case ProjectType.PD:
                _pdManager.LoadProject(project);
                _activeManager = _pdManager;
                break;

            case ProjectType.Schema:
                _schemaManager.LoadProject(project);
                _activeManager = _schemaManager;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Example #2
0
        /// <summary>
        /// News the project.
        /// </summary>
        /// <param name="type">The type.</param>
        public GenerateProject NewProject(ProjectType type)
        {
            GenerateProject project = new GenerateProject();

            project.ProjectType = type;
            LoadProject(project);
            return(project);
        }
        public void Execute()
        {
            var cmd = new GenerateProject { Name = "ShinyNewProject1" };

            var zipBytes = cmd.Execute();

            var originalFolder = @"..\..\..";
            var buildFolder = Path.Combine(Path.GetTempPath(), "GpTmp");
            Console.WriteLine("Building project {0} in {1}", cmd.Name, buildFolder);
            Unzip(zipBytes, buildFolder);

            Directory.GetFiles(Path.Combine(buildFolder, "ShinyNewProject1.Web/fonts")).Length.Should().BeGreaterThan(1, "should copy fonts");
            Directory.GetFiles(Path.Combine(buildFolder, "ShinyNewProject1.Web/Content")).Length.Should().BeGreaterThan(1, "should copy css");

            CopyFolder(@"..\..\..\packages", Path.Combine(buildFolder, "packages"));
            var currentSettings = File.ReadAllText(Path.Combine(originalFolder, "Lucid.Web/settings.config"));
            File.WriteAllText(Path.Combine(buildFolder, "ShinyNewProject1.Web/settings.config"), currentSettings.Replace("Lucid", "ShinyNewProject1"));

            var fxFolder = @"C:\Program Files (x86)\MSBuild\14.0\Bin\";
            var setupCmd = File.ReadAllText(Path.Combine(buildFolder, "CommandPrompt.bat"));
            setupCmd.Should().Contain(fxFolder);

            var lastReadmeCharBefore = LastCharOfFile(Path.Combine(originalFolder, "readme.txt"));
            var lastReadmeCharAfter = LastCharOfFile(Path.Combine(buildFolder, "readme.txt"));

            lastReadmeCharBefore.Should().Be(10);
            lastReadmeCharAfter.Should().Be(lastReadmeCharBefore, "trailing lines in readme.txt should be maintained (and last line should be empty)");

            File.ReadAllText(Path.Combine(buildFolder, "ShinyNewProject1.Web\\ShinyNewProject1.Web.csproj")).Should().Contain("349c5851-65df-11da-9384-00065b846f21", "ProjectTypeGuids should not be replaced");

            var processedFiles = Directory.EnumerateFiles(buildFolder, "*.*", SearchOption.AllDirectories)
                .Where(d => Generate.ShouldProcessFile(d));

            foreach (var processedFile in processedFiles)
                foreach (var line in File.ReadAllLines(processedFile))
                    if (Path.GetFileName(processedFile) != "GenerateProjectTests.cs" && line.ToLower().Contains("Lucid"))
                        Assert.Fail("Found [Dd]emo in {0}: {1}", processedFile, line);

            var originalGuids = FindGuids(originalFolder);
            var newGuids = FindGuids(buildFolder);
            newGuids.Count.Should().BeGreaterThan(1);

            foreach (var originalGuid in originalGuids)
                if (newGuids.Contains(originalGuid))
                    Assert.Fail("GUID {0} was found in both the original project and the generated project", originalGuid);

            var msBuild = Path.Combine(fxFolder, "msbuild.exe");
            RunVerify(msBuild, "ShinyNewProject1.proj", buildFolder);

            // Assert DB?  NUnit logs?

            RunVerify(msBuild, "ShinyNewProject1.proj /t:clean", buildFolder);
            DeleteFolder(buildFolder, 5);
        }
Example #4
0
 /// <summary>
 /// Loads the project.
 /// </summary>
 /// <param name="projectFileName">Name of the project file.</param>
 public void LoadProject(String projectFileName)
 {
     LoadProject(GenerateProject.Load(projectFileName));
     currentSettings.AddRecentProject(projectFileName);
 }
 private ActionResult GenerateRender(GenerateProject cmd)
 {
     var model = new GenerateModel { Cmd = cmd };
     return View(model);
 }
 public ActionResult Generate(GenerateProject cmd)
 {
     return Exec(cmd,
         success: r => File(r, "application/zip", cmd.Name + ".zip"),
         failure: () => GenerateRender(cmd));
 }
 public ActionResult Generate()
 {
     var initialCmd = new GenerateProject { Name = "Demo" };
     return GenerateRender(initialCmd);
 }