void ILocalTestService.AddLocalTestTasks(string userName, string testsystemName, string testsystemUrl, List <string> browsers, List <string> testcases, List <string> languages) { Testsystem testsystem = _testsystemRepository.GetByName(testsystemName); Tester tester = _testerRepository.GetByName(userName); testsystem.Url = testsystemUrl; _testsystemRepository.Store(testsystem); Testsuite testsuite = new Testsuite { Description = "", Name = "Local " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(), TestsystemFilter = testsystem }; _testsuiteRepository.Store(testsuite); int testsuiteId = testsuite.ID; List <int> testcaseIds = testcases.Select(t => _testcaseRepository.GetByType(t).ID).ToList(); List <int> browserIds = browsers.Select(t => _browserRepository.GetByName(t).ID).ToList(); List <int> languageIds = languages.Select(t => _languageRepository.GetByLanguageCode(t).ID).ToList(); _testsuiteRepository.SetTestcasesForTestsuite(testsuiteId, testcaseIds); _testsuiteRepository.SetBrowsersForTestsuite(testsuiteId, browserIds); _testsuiteRepository.SetLanguagesForTestsuite(testsuiteId, languageIds); TestJob testjob = new TestJob { Name = "A set of tests on " + testsystem.Url, ResultCode = TestState.Pending, Testsuite = testsuite, Testsystem = testsystem, Tester = tester, StartedAt = DateTime.Now, JobType = JobType.Localtesttool }; ITestJobManager testJobManager = new TestJobManager(testjob); ICollection <WorkItem> workItems = (from testcase in testsuite.Testcases from browser in testsuite.Browsers from language in testsuite.Languages select new WorkItem(testJobManager) { Testcase = testcase, Browser = browser, Language = language, Testsystem = testsystem, Tester = tester }).ToList(); _testPool.AddTestJob(testJobManager, workItems); }
void IBuildTaskService.SendTestcaseFile(string testsystemName, byte[] data) { object _lock = _testFileLocker.GetLock(testsystemName); lock (_lock) { Testsystem testsystem = _testsystemRepository.GetByName(testsystemName); testsystem.LastUpdated = DateTime.Now; _testsystemRepository.Store(testsystem); string testFile = RegtestingServerConfiguration.Testsfolder + testsystem.Filename; Directory.CreateDirectory(Path.GetDirectoryName(testFile)); using (FileStream fileStream = new FileStream(testFile, FileMode.Create, FileAccess.Write)) { fileStream.Write(data, 0, data.Length); } Logger.Log("UPDATE branch: " + testsystemName); TestcaseProvider testcaseProvider = new TestcaseProvider(testFile); testcaseProvider.CreateAppDomain(); foreach (string testcaseType in testcaseProvider.Types) { ITestable testable = testcaseProvider.GetTestableFromTypeName(testcaseType); if (testable == null) { continue; } Testcase testcase = _testcaseRepository.GetByType(testcaseType); string testableName = testable.GetName(); if (testcase == null) { Logger.Log("New test: " + testableName); testcase = new Testcase { Name = testableName, Type = testcaseType }; _testcaseRepository.Store(testcase); } else if (!testcase.Name.Equals(testableName)) { Logger.Log("Renamed test: " + testcase.Name + " to " + testableName); testcase.Name = testableName; _testcaseRepository.Store(testcase); } } testcaseProvider.Unload(); } }
void ISettingsService.StoreTestsystem(TestsystemDto testsystem) { _testsystemRepository.Store(Mapper.Map <Testsystem>(testsystem)); }