Пример #1
0
        private static ITestCase CreateTestCase(ITestManagementTeamProject teamProject, ScenarioDefinition scenarioDefinition,
                                                IEnumerable <TestCaseField> fieldsCollection)
        {
            var scenarioTags = GherkinUtils.GetTags(scenarioDefinition);
            var testCase     = teamProject.TestCases.Create();

            TestCaseHelper.UpdateTestCaseDetails(scenarioDefinition, testCase);
            TestCaseHelper.UpdateTestcaseFields(scenarioTags, testCase, fieldsCollection);
            testCase.WorkItem.Fields["Reason"].Value = SyncUtil.REASON;
            testCase.State = SyncUtil.TestCaseStateReady;
            return(testCase);
        }
Пример #2
0
        private static bool UpdateTestCase(ITestBase testCase, ScenarioDefinition scenarioDefinition,
                                           string hash, IEnumerable <TestCaseField> fieldsCollection)
        {
            testCase.Refresh();
            var currentState = testCase.State;

            if (currentState.Equals(SyncUtil.RemovedState, StringComparison.InvariantCulture) ||
                currentState.Equals(SyncUtil.ClosedState, StringComparison.InvariantCulture))
            {
                Logger.Info(ResourceStrings.DECORATION, $"{testCase.Id} is {currentState}");
                return(false);
            }

            var scenarioTags = GherkinUtils.GetTags(scenarioDefinition);
            var removedTag   = scenarioTags.FirstOrDefault(
                scenarioTag => scenarioTag.Name.Trim().ToUpperInvariant().StartsWith(
                    SyncUtil.RemovedTag, StringComparison.InvariantCulture));

            if (removedTag != null)
            {
                testCase.State = SyncUtil.RemovedState;
                SaveTestCase(testCase);
                Logger.Info(ResourceStrings.DECORATION, $"{testCase.Id} is marked removed");
                return(false);
            }

            var currentVersion = testCase.WorkItem.Fields[SyncUtil.VersionField].Value
                                 .ToString();
            var isTestCaseDetailsChanged = TestCaseHelper.UpdateTestCaseDetails(
                scenarioDefinition,
                testCase);
            var isTestCaseFieldsChanged = TestCaseHelper.UpdateTestcaseFields(
                scenarioTags,
                testCase,
                fieldsCollection);
            var scenarioStepsUptoDate = VersionUtils.IsUptoDate(hash, currentVersion);

            if (isTestCaseDetailsChanged || isTestCaseFieldsChanged || !scenarioStepsUptoDate)
            {
                return(true);
            }

            Logger.Info(ResourceStrings.DECORATION, $"{scenarioDefinition.Name}<{testCase.Id}> is uptodate");
            return(false);
        }