private static IWorkItemBase CreateNewTestCaseData(ComparisionResult result)
        {
            var scenarioData = DbOperations.getEAscenario(result.Guid);

            var data = new[] {
                new WorkItemBaseDataTestCase
                {
                    Op    = "add",
                    Path  = "/fields/System.Title",
                    Value = scenarioData.Name
                },
                new WorkItemBaseDataTestCase()
                {
                    Op    = "add",
                    Path  = "/fields/Microsoft.VSTS.TCM.Steps",
                    Value = GenerateNewTestCaseJson(result)
                }
            };

            var creationData = new WorkItemCreationData
            {
                Guid         = result.Guid,
                WorkItemType = WorkItemType.TestCase,
                Content      = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json-patch+json")
            };

            return(creationData);
        }
Beispiel #2
0
        public void ScenarioUpdate()
        {
            ComparisionEntity activeScenario = new ComparisionScenario()
            {
                Description = "aaa",
                Guid        = null,
                Level       = null,
                Name        = "Scenariusz 1",
                Result      = null
            };
            ComparisionEntity previouScenario = new ComparisionScenario()
            {
                Description = "bbb",
                Guid        = null,
                Level       = null,
                Name        = "Scenariusz 1",
                Result      = null
            };

            WorkItemComparer wic = new WorkItemComparer(activeScenario, previouScenario, WorkItemType.TestCase);

            ComparisionResult receivedResult = wic.GetComparisionResult();
            ComparisionResult expectedResult = new ComparisionResult();

            expectedResult.OperationType = OperationType.Update;
            expectedResult.Result        = false;
            expectedResult.WorkItemType  = WorkItemType.TestCase;


            Assert.Equal(expectedResult.Result, receivedResult.Result);
            Assert.Equal(expectedResult.OperationType == OperationType.Update, receivedResult.OperationType == OperationType.Update);
        }
Beispiel #3
0
        private static ComparisionResult AnalizeComparision(ComparisionResult scenarioResult, List <ComparisionResult> stepsResult)
        {
            try
            {
                if (scenarioResult.Result && stepsResult.All(s => s.Result))
                {
                    return(scenarioResult);
                }

                if (scenarioResult.Result && stepsResult.Any(s => !s.Result))
                {
                    scenarioResult.Result        = false;
                    scenarioResult.OperationType = OperationType.Update;
                    return(scenarioResult);
                }

                if (!scenarioResult.Result && stepsResult.Any(s => s.Result))
                {
                    scenarioResult.Result        = false;
                    scenarioResult.OperationType = OperationType.Update;
                    return(scenarioResult);
                }

                return(scenarioResult);
            }
            catch (Exception e)
            {
                MessageBox.Show(
                    "W aplikacji wystąpił błąd!\n" + e, "Błąd!",
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                throw;
            }
        }
Beispiel #4
0
        private ComparisionResult Compare(ComparisionDataSet data)
        {
            var comparisionResult = new ComparisionResult(data.WorkItemType, data.Guid);

            if (CheckForDelete(data))
            {
                comparisionResult.OperationType = OperationType.Delete;
                comparisionResult.Result        = false;
                return(comparisionResult);
            }

            if (CheckForCreate(data))
            {
                comparisionResult.OperationType = OperationType.CreateNew;
                comparisionResult.Result        = false;
                return(comparisionResult);
            }

            if (CompareData(data.ActiveEntity, data.PreviousEntity))
            {
                comparisionResult.OperationType = OperationType.UseExisting;
                comparisionResult.Result        = true;
                return(comparisionResult);
            }

            return(new ComparisionResult
            {
                WorkItemType = data.WorkItemType,
                OperationType = OperationType.Update,
                Result = false,
                Guid = data.Guid
            });
        }
        public DataTablesResult(ComparisionResult comparisionResult, DataTablesResultType resultType)
        {
            ComparisionResult = comparisionResult;
            ResultType        = resultType;

            Table        = comparisionResult.Source.Table.Clone().AllowDbNull();
            CompareTable = comparisionResult.Source.CompareTable.Clone().AllowDbNull();
        }
        private static IWorkItemBase GetExistingTestCaseData(ComparisionResult result)
        {
            var existingData = GetExistingData(result);
            var creationData = new WorkItemCreationData
            {
                Guid             = result.Guid,
                WorkItemId       = existingData.WorkItemId,
                WorkItemBaseData = new WorkItemBaseDataTestCase
                {
                    Value = existingData.Value
                }
            };

            return(creationData);
        }
        protected virtual IComparisionResult CompareWithColumns()
        {
            var result = new ComparisionResult(this);

            for (var i = 0; i < Table.Rows.Count && i < CompareTable.Rows.Count; i++)
            {
                var row  = Table.Rows[i];
                var crow = CompareTable.Rows[i];

                result.Rows.Add(new DifferenceRow(row, crow, row.GetDiffrenceCells(crow)));
            }

            CollectNotFoundRows(result);

            return(result);
        }
        private static IWorkItemBase BuildTestPlanMessage(ComparisionResult result)
        {
            switch (result.OperationType)
            {
            case OperationType.CreateNew:
                return(CreateNewTestPlanData(result));

            case OperationType.UseExisting:
            case OperationType.Update:
            case OperationType.Delete:
                throw new InvalidOperationException();

            default:
                return(null);
            }
        }
Beispiel #9
0
 private void CreateTestPlanMessageDraft(ComparisionResult testPlan)
 {
     try
     {
         var message = MessageFactory.BuildMessage(testPlan);
         // message.ApiAddress = Project.Address + "_apis/test/plans?api-version=5.0";
         message.Project = Project;
         WorkItemDataSet.TestPlan.Add(message);
     }
     catch (Exception e)
     {
         MessageBox.Show(
             "W aplikacji wystąpił błąd!\n" + e, "Błąd!",
             MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         throw;
     }
 }
        private static IWorkItemBase CreateNewTestPlanData(ComparisionResult result)
        {
            var data = new WorkItemBaseDataTestPlan()
            {
                Name        = "Plan testów z aplikacji desktopowej",
                Description = "Opis planu testów z apki"
            };

            return(new WorkItemCreationData
            {
                WorkItemType = WorkItemType.TestPlan,
                Content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json"),
                Guid = Guid.NewGuid(),
                ApiAddress =
                    "https://dev.azure.com/crunchips/EA-TFS_Conversion/_apis/test/plans?api-version=5.0"
            });
        }
        public static IWorkItemBase BuildMessage(ComparisionResult result)
        {
            switch (result.WorkItemType)
            {
            case WorkItemType.TestPlan:
                return(BuildTestPlanMessage(result));

            case WorkItemType.TestSuite:
                return(BuildTestSuiteMessage(result));

            case WorkItemType.TestCase:
                return(BuildTestCaseMessage(result));

            default:
                return(null);
            }
        }
        protected virtual IComparisionResult CompareWithPrimaryKeys()
        {
            var result = new ComparisionResult(this);

            foreach (DataRow row in Table.Rows)
            {
                var compareRows = FindRowsByPrimaryKeys(row, CompareTable);
                var foundRow    = row.FindMostEqualsRow(compareRows, CompareColumns);

                if (foundRow != null)
                {
                    result.Rows.Add(foundRow);
                }
            }

            CollectNotFoundRows(result);

            return(result);
        }
        private static IWorkItemBase BuildTestSuiteMessage(ComparisionResult result)
        {
            if (result == null)
            {
                throw new ArgumentNullException(nameof(result));
            }
            switch (result.OperationType)
            {
            case OperationType.CreateNew:
                return(CreateNewTestSuiteData());

            case OperationType.Update:
            case OperationType.UseExisting:
            case OperationType.Delete:
                throw new InvalidOperationException();

            default:
                return(null);
            }
        }
Beispiel #14
0
 private void CreateTestSuiteMessageDrafts()
 {
     try
     {
         var testSuite = new ComparisionResult(WorkItemType.TestSuite)
         {
             OperationType = OperationType.CreateNew
         };
         var message = MessageFactory.BuildMessage(testSuite);
         message.ApiAddress = PrepareTestSuiteAddress();
         message.Project    = Project;
         WorkItemDataSet.TestSuite.Add(message);
     }
     catch (Exception e)
     {
         MessageBox.Show(
             "W aplikacji wystąpił błąd!\n" + e, "Błąd!",
             MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         throw;
     }
 }
Beispiel #15
0
        private void GenerateTestPlan()
        {
            var testPlan = new ComparisionResult(WorkItemType.TestPlan)
            {
                Result = DbOperations.CheckWorkItem(Project.Id, WorkItemType.TestPlan)
            };

            try
            {
                if (!testPlan.Result)
                {
                    testPlan.OperationType = OperationType.CreateNew;
                    CreateTestPlanMessageDraft(testPlan);
                    SendMessages(WorkItemDataSet.TestPlan);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(
                    "W aplikacji wystąpił błąd!\n" + e, "Błąd!",
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                throw;
            }
        }
        private static string GenerateNewTestCaseJson(ComparisionResult result)
        {
            var steps = DbOperations.GetActive_Steps(result.Guid);

            return(GenerateStepsXml(steps));
        }
 private static WorkItem GetExistingData(ComparisionResult result)
 {
     return(DbOperations.GetWorkItem(result.Guid));
 }
 private static IWorkItemBase CreateUpdatedTestCaseData(ComparisionResult result)
 {
     return(CreateNewTestCaseData(result));
 }
Beispiel #19
0
 public WorkItemComparer(IComparable activeEntity, IComparable previousEntity, WorkItemType workItemType)
 {
     ActiveEntity   = activeEntity;
     PreviousEntity = previousEntity;
     Result         = new ComparisionResult(workItemType);
 }