Esempio n. 1
0
        public void CanCheckoutProject()
        {
            var executableDirectory = DirectoryHelper.ExecutingDirectory();

            var outputDirectory = Path.Combine(executableDirectory.FullName, "SubversionOutput");

            var tasks = TaskHelper.Start()
            .Subversion("http://openjpeg.googlecode.com/svn/trunk/", outputDirectory)
            .Finalize();

            var command = new KissCommand("build", tasks);

            var project = new KissProject("TestProject", "UI", command);

            using (var projectService = TestHelper.GetService())
            {
                projectService.RegisterProject(project);

                ProjectHelper.Run(project, command, projectService);

                var output = new DirectoryInfo(outputDirectory);

                Assert.IsTrue(output.EnumerateFiles().Any());
            }
        }
Esempio n. 2
0
        public void CanRobocopy()
        {
            var executableDirectory = DirectoryHelper.ExecutingDirectory();

            var outputDirectory = Path.Combine(executableDirectory.FullName, "Robo");

            var tasks = TaskHelper.Start()
            .AddTask("Initialize directories", (ctx, arg) => {
                var tempDir1 = new TempDirectory(outputDirectory, ctx.ProjectName);
                var tempDir2 = new TempDirectory(outputDirectory, ctx.ProjectName);

                File.AppendAllText(Path.Combine(tempDir1.DirectoryPath, "testfile.txt"), "test data");

                ctx.RegisterCleanup(() => { tempDir1.Dispose(); tempDir2.Dispose(); });

                return new RobocopyArgs(tempDir1.DirectoryPath, tempDir2.DirectoryPath);
            })
            .Robocopy()
            .AddStep((ctx, arg) => {
                var exists = File.Exists(Path.Combine(arg.CopiedToDirectory, "testfile.txt"));
                Assert.IsTrue(exists);
                return exists;
            })
            .Finalize();

            var command = new KissCommand("build", tasks);

            var project = new KissProject("TestProject", "UI", command);

            using (var projectService = TestHelper.GetService())
            {
                projectService.RegisterProject(project);
                ProjectHelper.Run(project, command, projectService);
            }
        }
Esempio n. 3
0
        public void CanRunTestProject()
        {
            var executableDirectory = DirectoryHelper.ExecutingDirectory();

            var outputDirectory = Path.Combine(executableDirectory.FullName, "TestOutput");
            var testDll = Path.Combine(executableDirectory.FullName, "KissCI.Tests.FakeTests.dll");

            DirectoryHelper.CleanAndEnsureDirectory(outputDirectory);

            var testResultsPath = Path.Combine(outputDirectory, "testresults.trx");

            var tasks = TaskHelper.Start()
            .MsTest(testDll, testResultsPath)
            .Finalize();

            var command = new KissCommand("build", tasks);

            var project = new KissProject("TestProject", "UI", command);

            using (var projectService = TestHelper.GetService())
            {
                projectService.RegisterProject(project);
                ProjectHelper.Run(project, command, projectService);
            }

            Assert.IsTrue(File.Exists(testResultsPath));
        }
Esempio n. 4
0
        void UpdateInfo(IDataContext ctx, KissProject kissProject, IList<ProjectInfo> infos, bool isRegistration = false)
        {
            if (infos.Any(i => i.ProjectName == kissProject.Name) == false)
            {
                var info = new ProjectInfo
                {
                    ProjectName = kissProject.Name,
                    Category = kissProject.Category,
                    Activity = Activity.Sleeping,
                    Status = Status.Running
                };

                ctx.ProjectInfoService.Save(info);

                if(isRegistration)
                    _registeredProjects.Add(kissProject);
            }
            else
            {
                //we update the category just in case it's been modified
                var info = infos.FirstOrDefault(i => i.ProjectName == kissProject.Name);
                if (info != null)
                {
                    info.Category = kissProject.Category;
                    ctx.ProjectInfoService.Save(info);
                }
            }
        }
Esempio n. 5
0
        public void RegisterProject(KissProject kissProject)
        {
            using (var ctx = _dataProvider())
            {
                var infos = ctx.ProjectInfoService.GetProjectInfos().ToList();
                UpdateInfo(ctx, kissProject, infos, true);

                ctx.Commit();
            }
        }