예제 #1
0
        public async Task RefreshTestSuits(long id, SystemUser user)
        {
            var gitClient  = new GithubApiClient();
            var firstSuits = await GetSuite(id);

            var newGitHubIssues = gitClient.GetIssuesForProject(firstSuits.GitHubProjectId);
            var trClient        = new TestRailApiClient();

            var testSuit = await GetSuite(id);

            foreach (var issue in newGitHubIssues.GitHubIssues)
            {
                var seekingElement = testSuit.TestCases.FirstOrDefault(p => p.GitHubId == issue.number);
                if (seekingElement != null)
                {
                    continue;
                }
                //add new issue
                var newTest = ExtractTestCase(user, issue, trClient, testSuit);
                testSuit.TestCases.Add(newTest);
            }

            _dbContext.TestSuites.Update(testSuit);
            await _dbContext.SaveChangesAsync();
        }
예제 #2
0
        public async Task AddNewTestSuite(int id, SystemUser systemUser)
        {
            var existingSuite = await _dbContext.TestSuites.CountAsync(p => p.GitHubProjectId == id) > 0;

            if (existingSuite)
            {
                throw new Exception("Test suite with this project id was already added.");
            }
            var gitClient      = new GithubApiClient();
            var testRailClient = new TestRailApiClient();
            var issues         = gitClient.GetIssuesForProject(id);
            var newTestSuite   = new TestSuite
            {
                Name            = issues.Name,
                GitHubProjectId = id,
                TestCases       = new List <TestCase>(),
                AddedOn         = issues.AddedOn,
                Description     = issues.Body
            };

            foreach (var issue in issues.GitHubIssues)
            {
                var newTest = ExtractTestCase(systemUser, issue, testRailClient, newTestSuite);

                newTestSuite.TestCases.Add(newTest);
            }
            var afterExistingSuite = await _dbContext.TestSuites.CountAsync(p => p.GitHubProjectId == id) > 0;

            if (afterExistingSuite)
            {
                throw new Exception("Test suite with this project id was already added.");
            }

            _dbContext.TestSuites.Add(newTestSuite);
            await _dbContext.SaveChangesAsync();
        }