コード例 #1
0
        public bool ImportActivitiesGroupActivitiesFromRepository(ActivitiesGroup activitiesGroup, ObservableList <Activity> activitiesRepository, bool inSilentMode = true, bool keepOriginalTargetApplicationMapping = false, Activity indexActivity = null)
        {
            string missingActivities = string.Empty;

            if (activitiesGroup != null && activitiesGroup.ActivitiesIdentifiers.Count == 0)
            {
                return(true);
            }

            //import Activities
            if (activitiesGroup != null && activitiesRepository != null)
            {
                foreach (ActivityIdentifiers actIdent in activitiesGroup.ActivitiesIdentifiers)
                {
                    Activity repoAct = activitiesRepository.Where(x => x.ActivityName == actIdent.ActivityName && x.Guid == actIdent.ActivityGuid).FirstOrDefault();
                    if (repoAct == null)
                    {
                        repoAct = activitiesRepository.Where(x => x.Guid == actIdent.ActivityGuid).FirstOrDefault();
                    }
                    if (repoAct == null)
                    {
                        repoAct = activitiesRepository.Where(x => x.ActivityName == actIdent.ActivityName).FirstOrDefault();
                    }
                    if (repoAct != null)
                    {
                        Activity actInstance = (Activity)repoAct.CreateInstance(true);
                        actInstance.ActivitiesGroupID = activitiesGroup.Name;
                        if (keepOriginalTargetApplicationMapping == false)
                        {
                            SetActivityTargetApplication(actInstance);
                        }
                        if (indexActivity == null && ActivitiesGroups.Count > 1)
                        {
                            this.AddActivity(actInstance);
                        }
                        else
                        {
                            this.AddActivity(actInstance, indexActivity);
                        }
                        actIdent.IdentifiedActivity = actInstance;
                        indexActivity = actInstance;
                    }
                    else
                    {
                        missingActivities += "'" + actIdent.ActivityName + "', ";
                    }
                }

                //notify on missing activities
                if (missingActivities != string.Empty && inSilentMode == false)
                {
                    missingActivities = missingActivities.TrimEnd(new char[] { ',', ' ' });
                    // AppReporter.ToUser(eUserMsgKey.PartOfActivitiesGroupActsNotFound, missingActivities);
                    return(false);
                }
                else
                {
                    return(true);
                }
            }

            //if (inSilentMode == false)
            //    AppReporter.ToUser(eUserMsgKey.ActivitiesGroupActivitiesNotFound);
            return(false);
        }
コード例 #2
0
        public void MoveActivityInGroupsTest2()
        {
            //Arrange
            BusinessFlow busFlow = new BusinessFlow();

            ActivitiesGroup group1 = new ActivitiesGroup()
            {
                Name = "Group1"
            };

            busFlow.AddActivitiesGroup(group1);
            ActivitiesGroup group2 = new ActivitiesGroup()
            {
                Name = "Group2"
            };

            busFlow.AddActivitiesGroup(group2);
            ActivitiesGroup group3 = new ActivitiesGroup()
            {
                Name = "Group3"
            };

            busFlow.AddActivitiesGroup(group3);

            Activity activity1 = new Activity()
            {
                ActivityName = "Activity1"
            };
            Activity activity2 = new Activity()
            {
                ActivityName = "Activity2"
            };
            Activity activity3 = new Activity()
            {
                ActivityName = "Activity3"
            };
            Activity activity4 = new Activity()
            {
                ActivityName = "Activity4"
            };
            Activity activity5 = new Activity()
            {
                ActivityName = "Activity5"
            };
            Activity activity6 = new Activity()
            {
                ActivityName = "Activity6"
            };

            busFlow.AddActivity(activity1, group1);

            busFlow.AddActivity(activity2, group2);
            busFlow.AddActivity(activity3, group2);
            busFlow.AddActivity(activity4, group2);
            busFlow.AddActivity(activity5, group2);

            busFlow.AddActivity(activity6, group3);

            //Act
            busFlow.AttachActivitiesGroupsAndActivities();
            busFlow.MoveActivityInGroup(activity5, 1);

            //Assert
            Assert.IsTrue(busFlow.Activities.IndexOf(activity5) == 1, "Validate Activity moved to correct index in Activities list");
            Assert.IsTrue(group2.ActivitiesIdentifiers.IndexOf(group2.ActivitiesIdentifiers.Where(x => x.IdentifiedActivity == activity5).First()) == 0, "Validate Activity moved to correct indx in target group");
        }
コード例 #3
0
 public abstract bool ExportActivitiesGroupToALM(ActivitiesGroup activtiesGroup, string uploadPath = null, bool performSaveAfterExport = false, BusinessFlow businessFlow = null);
コード例 #4
0
        public void MoveActivitiesGroupDownTest()
        {
            //Arrange
            BusinessFlow busFlow   = new BusinessFlow();
            Activity     activity1 = new Activity()
            {
                ActivityName = "Activity1"
            };

            busFlow.AddActivity(activity1);
            Activity activity2 = new Activity()
            {
                ActivityName = "Activity2"
            };

            busFlow.AddActivity(activity2);
            Activity activity3 = new Activity()
            {
                ActivityName = "Activity3"
            };

            busFlow.AddActivity(activity3);
            Activity activity4 = new Activity()
            {
                ActivityName = "Activity4"
            };

            busFlow.AddActivity(activity4);
            Activity activity5 = new Activity()
            {
                ActivityName = "Activity5"
            };

            busFlow.AddActivity(activity5);
            Activity activity6 = new Activity()
            {
                ActivityName = "Activity6"
            };

            busFlow.AddActivity(activity6);

            ActivitiesGroup group1 = new ActivitiesGroup()
            {
                Name = "Group1"
            };

            busFlow.AddActivitiesGroup(group1);
            ActivitiesGroup group2 = new ActivitiesGroup()
            {
                Name = "Group2"
            };

            busFlow.AddActivitiesGroup(group2);
            ActivitiesGroup group3 = new ActivitiesGroup()
            {
                Name = "Group3"
            };

            busFlow.AddActivitiesGroup(group3);

            group1.AddActivityToGroup(activity1);
            group1.AddActivityToGroup(activity2);
            group2.AddActivityToGroup(activity3);
            group2.AddActivityToGroup(activity4);
            group2.AddActivityToGroup(activity5);
            group3.AddActivityToGroup(activity6);

            //Act
            busFlow.MoveActivitiesGroupDown(group1);

            //Assert
            Assert.IsTrue(busFlow.ActivitiesGroups[0] == group2, "Validate group 2 moved to place 1");
            Assert.IsTrue(busFlow.ActivitiesGroups[1] == group1, "Validate group 1 moved to place 2");
            Assert.IsTrue(busFlow.Activities[0] == activity3, "Validate group 2 Activities moved up");
            Assert.IsTrue(busFlow.Activities[1] == activity4, "Validate group 2 Activities moved up");
            Assert.IsTrue(busFlow.Activities[2] == activity5, "Validate group 2 Activities moved up");
            Assert.IsTrue(busFlow.Activities[3] == activity1, "Validate group 1 Activities moved down");
            Assert.IsTrue(busFlow.Activities[4] == activity2, "Validate group 1 Activities moved down");
        }
コード例 #5
0
        public void MoveActivityBetweenGroupsTest3()
        {
            //Arrange
            BusinessFlow busFlow = new BusinessFlow();

            ActivitiesGroup group1 = new ActivitiesGroup()
            {
                Name = "Group1"
            };

            busFlow.AddActivitiesGroup(group1);
            ActivitiesGroup group2 = new ActivitiesGroup()
            {
                Name = "Group2"
            };

            busFlow.AddActivitiesGroup(group2);
            ActivitiesGroup group3 = new ActivitiesGroup()
            {
                Name = "Group3"
            };

            busFlow.AddActivitiesGroup(group3);

            Activity activity1 = new Activity()
            {
                ActivityName = "Activity1"
            };
            Activity activity2 = new Activity()
            {
                ActivityName = "Activity2"
            };
            Activity activity3 = new Activity()
            {
                ActivityName = "Activity3"
            };
            Activity activity4 = new Activity()
            {
                ActivityName = "Activity4"
            };
            Activity activity5 = new Activity()
            {
                ActivityName = "Activity5"
            };
            Activity activity6 = new Activity()
            {
                ActivityName = "Activity6"
            };

            busFlow.AddActivity(activity1, group1);
            busFlow.AddActivity(activity2, group1);

            busFlow.AddActivity(activity3, group2);
            busFlow.AddActivity(activity4, group2);

            busFlow.AddActivity(activity5, group3);
            busFlow.AddActivity(activity6, group3);

            //Act
            busFlow.AttachActivitiesGroupsAndActivities();
            busFlow.MoveActivityBetweenGroups(activity6, group2, 2);

            //Assert
            Assert.IsTrue(group3.ActivitiesIdentifiers.Where(x => x.IdentifiedActivity == activity6).FirstOrDefault() == null, "Validate Activity removed from original group");
            Assert.IsTrue(activity6.ActivitiesGroupID == group2.Name, "Validate Activity moved to target group");
            Assert.IsTrue(busFlow.Activities.IndexOf(activity6) == 2, "Validate Activity moved to correct index in Activities list");
            Assert.IsTrue(group2.ActivitiesIdentifiers.IndexOf(group2.ActivitiesIdentifiers.Where(x => x.IdentifiedActivity == activity6).First()) == 0, "Validate Activity moved to correct indx in target group");
        }
コード例 #6
0
 public override bool ExportActivitiesGroupToALM(ActivitiesGroup activtiesGroup, string uploadPath = null, bool performSaveAfterExport = false)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
        public void GroupsOrderTest()
        {
            //Arrange
            BusinessFlow busFlow   = new BusinessFlow();
            Activity     activity1 = new Activity()
            {
                ActivityName = "Activity1"
            };

            busFlow.AddActivity(activity1);
            Activity activity2 = new Activity()
            {
                ActivityName = "Activity2"
            };

            busFlow.AddActivity(activity2);
            Activity activity3 = new Activity()
            {
                ActivityName = "Activity3"
            };

            busFlow.AddActivity(activity3);
            Activity activity4 = new Activity()
            {
                ActivityName = "Activity4"
            };

            busFlow.AddActivity(activity4);
            Activity activity5 = new Activity()
            {
                ActivityName = "Activity5"
            };

            busFlow.AddActivity(activity5);

            ActivitiesGroup group3 = new ActivitiesGroup()
            {
                Name = "Group3"
            };

            busFlow.AddActivitiesGroup(group3);
            ActivitiesGroup group2 = new ActivitiesGroup()
            {
                Name = "Group2"
            };

            busFlow.AddActivitiesGroup(group2);
            ActivitiesGroup group1 = new ActivitiesGroup()
            {
                Name = "Group1"
            };

            busFlow.AddActivitiesGroup(group1);

            group1.AddActivityToGroup(activity1);
            group1.AddActivityToGroup(activity2);
            group2.AddActivityToGroup(activity3);
            group3.AddActivityToGroup(activity4);
            group3.AddActivityToGroup(activity5);

            //Act
            busFlow.AttachActivitiesGroupsAndActivities();

            //Assert
            Assert.IsTrue(busFlow.ActivitiesGroups[0] == group1, "Validate first group is group 1 same as in Activities flow");
            Assert.IsTrue(busFlow.ActivitiesGroups[1] == group2, "Validate first group is group 2 same as in Activities flow");
            Assert.IsTrue(busFlow.ActivitiesGroups[2] == group3, "Validate first group is group 3 same as in Activities flow");
        }
コード例 #8
0
 public TestCaseResource UpdateTestCase(long treeNodeId, ActivitiesGroup activtiesGroup, List <BaseResponseItem> matchingTC)
 {
     return(zephyrEntExportManager.UpdateTestCase(treeNodeId, activtiesGroup, matchingTC));
 }
コード例 #9
0
 public TestCaseResource CreateTestCase(long treeNodeId, ActivitiesGroup activtiesGroup, Dictionary <string, string> testInstanceFields)
 {
     return(zephyrEntExportManager.CreateTestCase(treeNodeId, activtiesGroup, testInstanceFields));
 }
コード例 #10
0
        // fix
        public override void ActionEnd(uint eventTime, Act action, bool offlineMode = false)
        {
            // if user set special action log in output
            if (action.EnableActionLogConfig)
            {
                if (mGingerRunnerLogger == null)
                {
                    string loggerFile = Path.Combine(mExecutionLogger.ExecutionLogfolder, FileSystem.AppendTimeStamp("GingerLog.txt"));
                    mGingerRunnerLogger = new GingerRunnerLogger(loggerFile);
                }
                mGingerRunnerLogger.LogAction(action);
            }
            Activity currentActivity = null;

            try
            {
                string executionLogFolder = string.Empty;
                //if offline mode then execution logger path exists in action object so making executionLogFolder empty to avoid duplication of path.
                if (!offlineMode)
                {
                    executionLogFolder = mExecutionLogger.ExecutionLogfolder;
                }
                //ActionReport AR = new ActionReport(action, mContext);

                //if action call the Shared actvity then mContext.Activity and mCurrentActivity will be different,so keeping the shared activity in temp variable
                if (mContext.Activity != mCurrentActivity)
                {
                    currentActivity = mContext.Activity;
                }
                mContext.Activity = mCurrentActivity;

                Object AR = null;
                if (this.Configuration.ExecutionLoggerConfigurationIsEnabled)
                {
                    AR = mExecutionLogger.SetReportAction(action, mContext, this.ExecutedFrom, offlineMode);
                    //
                    // Defects Suggestion section (to be considered to remove to separate function)
                    //
                    if (action.Status == Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed)
                    {
                        if (WorkSpace.Instance.RunsetExecutor.DefectSuggestionsList.Where(z => z.FailedActionGuid == action.Guid).ToList().Count > 0)
                        {
                            return;
                        }

                        //
                        ActivitiesGroup currrentGroup     = mContext.BusinessFlow.ActivitiesGroups.Where(x => x.Name == mCurrentActivity.ActivitiesGroupID).FirstOrDefault();
                        string          currrentGroupName = string.Empty;
                        if (currrentGroup != null)
                        {
                            currrentGroupName = currrentGroup.Name;
                        }

                        //
                        List <string> screenShotsPathes         = new List <string>();
                        bool          isScreenshotButtonEnabled = false;
                        if ((action.ScreenShots != null) && (action.ScreenShots.Count > 0))
                        {
                            screenShotsPathes         = action.ScreenShots.ToList();
                            isScreenshotButtonEnabled = true;
                        }
                        //
                        bool automatedOpeningFlag = false;
                        if (action.FlowControls.Where(x => x.FlowControlAction == eFlowControlAction.FailureIsAutoOpenedDefect && action.Status == Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed).ToList().Count > 0)
                        {
                            automatedOpeningFlag = true;
                        }

                        // OMG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                        //
                        StringBuilder description = new StringBuilder();
                        description.Append("&#60;html&#62;&#60;body&#62;&#60;b&#62;" + this.GingerData.GingerName + "&#60;b&#62;&#60;br&#62;");
                        description.Append("&#60;div&#62;&#60;ul style='list - style - type:circle'&#62;&#60;li&#62;&#60;b&#62;" + mContext.BusinessFlow.Name + " (failed)&#60;b&#62;&#60;/li&#62;");
                        if (currrentGroupName != string.Empty)
                        {
                            description.Append("&#60;ul style = 'list - style - type:square'&#62;");
                            this.mCurrentBusinessFlow.ActivitiesGroups.ToList().TakeWhile(x => x.Name != mCurrentActivity.ActivitiesGroupID).ToList().ForEach(r => { description.Append("&#60;li&#62;" + r.Name + "&#60;/li&#62;"); });
                            description.Append("&#60;li&#62;&#60;b&#62;" + currrentGroupName + " (failed)&#60;b&#62;&#60;/li&#62;");
                            description.Append("&#60;ul style = 'list - style - type:upper-roman'&#62;");
                            this.mCurrentBusinessFlow.Activities.Where(x => currrentGroup.ActivitiesIdentifiers.Select(z => z.ActivityGuid).ToList().Contains(x.Guid)).ToList().TakeWhile(x => x.Guid != mCurrentActivity.Guid).ToList().ForEach(r => { description.Append("&#60;li&#62;" + r.ActivityName + "&#60;/li&#62;"); });
                            description.Append("&#60;li&#62;&#60;b&#62;" + mCurrentActivity.ActivityName + " (failed)&#60;b&#62;&#60;/li&#62;");
                            description.Append("&#60;ul style = 'list - style - type:disc'&#62;");
                            mCurrentActivity.Acts.TakeWhile(x => x.Guid != action.Guid).ToList().ForEach(r => { description.Append("&#60;li&#62;" + r.Description + "&#60;/li&#62;"); });
                            description.Append("&#60;li&#62;&#60;b&#62;&#60;font color='#ff0000'b&#62;" + action.Description + " (failed)&#60;/font&#62;&#60;b&#62;&#60;/li&#62;&#60;/li&#62;&#60;/li&#62;&#60;/li&#62;&#60;/ul&#62;&#60;/ul&#62;&#60;/ul&#62;&#60;/ul&#62;&#60;/div&#62;&#60;/body&#62;&#60;/html&#62;");
                        }
                        else
                        {
                            description.Append("&#60;ul style = 'list - style - type:upper-roman'&#62;");
                            mContext.BusinessFlow.Activities.TakeWhile(x => x.Guid != mCurrentActivity.Guid).ToList().ForEach(r => { description.Append("&#60;li&#62;" + r.ActivityName + "&#60;/li&#62;"); });
                            description.Append("&#60;li&#62;&#60;b&#62;" + mCurrentActivity.ActivityName + " (failed)&#60;b&#62;&#60;/li&#62;");
                            description.Append("&#60;ul style = 'list - style - type:disc'&#62;");
                            mCurrentActivity.Acts.TakeWhile(x => x.Guid != action.Guid).ToList().ForEach(r => { description.Append("&#60;li&#62;" + r.Description + "&#60;/li&#62;"); });
                            description.Append("&#60;li&#62;&#60;b&#62;&#60;font color='#ff0000'b&#62;" + action.Description + " (failed)&#60;/font&#62;&#60;b&#62;&#60;/li&#62;&#60;/li&#62;&#60;/li&#62;&#60;/li&#62;&#60;/ul&#62;&#60;/ul&#62;&#60;/ul&#62;&#60;/div&#62;&#60;/body&#62;&#60;/html&#62;");
                        }

                        if (GingerData.GingerName == null)
                        {
                            GingerData.GingerName = "";
                        }
                        WorkSpace.Instance.RunsetExecutor.DefectSuggestionsList.Add(new DefectSuggestion(action.Guid, this.GingerData.GingerName, mContext.BusinessFlow.Name, currrentGroupName,
                                                                                                         mContext.BusinessFlow.ExecutionLogActivityCounter, mCurrentActivity.ActivityName, mCurrentActivity.ExecutionLogActionCounter,
                                                                                                         action.Description, action.RetryMechanismCount, action.Error, action.ExInfo, screenShotsPathes,
                                                                                                         isScreenshotButtonEnabled, automatedOpeningFlag, description.ToString(),
                                                                                                         currrentGroup.ExternalID, mCurrentActivity.ExternalID, new Tuple <string, string>(mContext.BusinessFlow.ExternalID, mContext.BusinessFlow.ExternalID2)));
                    }
                    //
                    // Defects Suggestion section - end
                    //
                }

                if (!offlineMode)
                {
                    ExecutionProgressReporterListener.AddExecutionDetailsToLog(ExecutionProgressReporterListener.eExecutionPhase.End, "Action", string.Format("{0} (ID:{1}, ParentID:{2})", action.Description, action.Guid, action.ExecutionParentGuid), AR);
                }
            }
            catch (Exception ex)
            {
                Reporter.ToLog(eLogLevel.ERROR, "Exception occurred in ExecutionLogger Action end", ex);
            }
            finally
            {
                if (currentActivity != null)
                {
                    mContext.Activity = currentActivity;
                }
            }
        }
コード例 #11
0
        // remove to GinngerRunner.SetBFOfflineData
        public bool OfflineBusinessFlowExecutionLog(BusinessFlow businessFlow, string logFolderPath)
        {
            try
            {
                //handle root directory
                if (Directory.Exists(logFolderPath))
                {
                    executionLoggerHelper.CleanDirectory(logFolderPath);
                }
                else
                {
                    Directory.CreateDirectory(logFolderPath);
                }
                GingerRunner Gr = new GingerRunner();
                mCurrentBusinessFlow = businessFlow;
                businessFlow.OffilinePropertiesPrep(logFolderPath);
                System.IO.Directory.CreateDirectory(businessFlow.ExecutionLogFolder);
                foreach (Activity activity in businessFlow.Activities)
                {
                    ActivitiesGroup currentActivityGroup = businessFlow.ActivitiesGroups.Where(x => x.ActivitiesIdentifiers.Select(z => z.ActivityGuid).ToList().Contains(activity.Guid)).FirstOrDefault();
                    if (currentActivityGroup != null)
                    {
                        currentActivityGroup.ExecutionLogFolder = logFolderPath;
                        switch (currentActivityGroup.ExecutionLoggerStatus)
                        {
                        case executionLoggerStatus.NotStartedYet:
                            ActivityGroupStart(meventtime, currentActivityGroup);
                            break;
                        }
                    }

                    Gr.CalculateActivityFinalStatus(activity);
                    if (activity.GetType() == typeof(IErrorHandler))
                    {
                        continue;
                    }
                    if (activity.Status != Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed && activity.Status != Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed && activity.Status != Amdocs.Ginger.CoreNET.Execution.eRunStatus.Stopped)
                    {
                        continue;
                    }

                    mCurrentActivity = activity;
                    activity.OfflinePropertiesPrep(businessFlow.ExecutionLogFolder, businessFlow.ExecutionLogActivityCounter, ExtensionMethods.folderNameNormalazing(activity.ActivityName));
                    System.IO.Directory.CreateDirectory(activity.ExecutionLogFolder);
                    foreach (Act action in activity.Acts)
                    {
                        if (action.Status != Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed && action.Status != Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed && action.Status != Amdocs.Ginger.CoreNET.Execution.eRunStatus.Stopped && action.Status != Amdocs.Ginger.CoreNET.Execution.eRunStatus.FailIgnored)
                        {
                            continue;
                        }
                        activity.ExecutionLogActionCounter++;
                        action.ExecutionLogFolder = Path.Combine(activity.ExecutionLogFolder, activity.ExecutionLogActionCounter + " " + ExtensionMethods.folderNameNormalazing(action.Description));
                        System.IO.Directory.CreateDirectory(action.ExecutionLogFolder);

                        ActionEnd(meventtime, action, true);
                    }
                    ActivityEnd(meventtime, activity, true);
                    businessFlow.ExecutionLogActivityCounter++;
                }
                Gr.SetActivityGroupsExecutionStatus(businessFlow, true);
                Gr.CalculateBusinessFlowFinalStatus(businessFlow);

                BusinessFlowEnd(meventtime, businessFlow, true);
                businessFlow.ExecutionLogFolder = string.Empty;
                return(true);
            }
            catch (Exception ex)
            {
                Reporter.ToLog(eLogLevel.ERROR, "Execution Logger Failed to do Offline BusinessFlow Execution Log", ex);
                return(false);
            }
        }
コード例 #12
0
        public override void ActivityGroupStart(uint eventTime, ActivitiesGroup activityGroup)
        {
            activityGroup.StartTimeStamp = eventTime; // DateTime.Now.ToUniversalTime();

            ExecutionProgressReporterListener.AddExecutionDetailsToLog(ExecutionProgressReporterListener.eExecutionPhase.Start, GingerDicser.GetTermResValue(eTermResKey.ActivitiesGroup), string.Format("{0} (ID:{1}, ParentID:{2})", activityGroup.Name, activityGroup.Guid, activityGroup.ExecutionParentGuid), null);
        }
コード例 #13
0
        private ExecutionResult GetExeResultforAg(BusinessFlow businessFlow, string bfExportedID, ActivitiesGroup activGroup, ref string result, RQMTestPlan testPlan)
        {
            try
            {
                LoginDTO loginData = new LoginDTO()
                {
                    User = ALMCore.AlmConfig.ALMUserName, Password = ALMCore.AlmConfig.ALMPassword, Server = ALMCore.AlmConfig.ALMServerURL
                };

                if (string.IsNullOrEmpty(activGroup.ExternalID))
                {
                    result = "At " + GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + ": " + businessFlow.Name + " " + GingerDicser.GetTermResValue(eTermResKey.ActivitiesGroup) + ", is missing ExternalID, cannot export RQM TestPlan execution results without External ID";
                    return(null);
                }

                ExecutionResult exeResult = new ExecutionResult {
                    TestPlanExportID = bfExportedID
                };

                List <Activity> relevantActivities = new List <Activity>();
                relevantActivities      = businessFlow.Activities.Where(x => x.ActivitiesGroupID == activGroup.FileName).ToList();
                exeResult.ExecutionStep = new List <ExecutionStep>();

                string txExportID = GetExportedIDString(activGroup.ExternalID, "RQMID");
                string tsExportID = GetExportedIDString(activGroup.ExternalID, "RQMScriptID");
                string erExportID = GetExportedIDString(activGroup.ExternalID, "RQMRecordID");
                if ((activGroup.TestSuiteId != null) && (activGroup.TestSuiteId != string.Empty))
                {
                    // check if test suite execution record is exists per current Test Suite ID
                    // if not exists to create it and than procced to work on just created
                    RQMTestSuite testSuite = testPlan.TestSuites.Where(z => z.RQMID == activGroup.TestSuiteId).FirstOrDefault();
                    if ((testSuite != null) && (testSuite.RQMID != null) && (testSuite.URLPathVersioned != null) &&
                        (testSuite.RQMID != string.Empty) && (testSuite.URLPathVersioned != string.Empty))
                    {
                        try
                        {
                            ResultInfo resultInfo;
                            // check if execution record of testSuite exist. If not - to create it
                            if ((testSuite.TestSuiteExecutionRecord == null) || (testSuite.TestSuiteExecutionRecord.RQMID == null) || (testSuite.TestSuiteExecutionRecord.URLPathVersioned == string.Empty))
                            {
                                testSuite.ACL_TestSuite_Copy = new TestSuite();
                                testSuite.ACL_TestSuite_Copy.TestSuiteName     = testSuite.Name;
                                testSuite.ACL_TestSuite_Copy.TestSuiteExportID = testSuite.RQMID;
                                resultInfo = RQMConnect.Instance.RQMRep.CreateTestSuiteExecutionRecord(loginData, RQMCore.ALMProjectGuid, ALMCore.AlmConfig.ALMProjectName, RQMCore.ALMProjectGroupName, testSuite.ACL_TestSuite_Copy, bfExportedID, businessFlow.Name.ToString());

                                if (resultInfo.IsSuccess)
                                {
                                    if (testSuite.TestSuiteExecutionRecord == null)
                                    {
                                        testSuite.TestSuiteExecutionRecord = new RQMTestSuiteExecutionRecord();
                                    }
                                    testSuite.TestSuiteExecutionRecord.RQMID            = testSuite.ACL_TestSuite_Copy.TestSuiteExecutionRecordExportID;
                                    testSuite.TestSuiteExecutionRecord.URLPathVersioned = testSuite.ACL_TestSuite_Copy.TestSuiteExecutionRecordExportUri;
                                }
                            }
                            else
                            {
                                testSuite.ACL_TestSuite_Copy = new TestSuite();
                                testSuite.ACL_TestSuite_Copy.TestSuiteName     = testSuite.Name;
                                testSuite.ACL_TestSuite_Copy.TestSuiteExportID = testSuite.RQMID;
                                testSuite.ACL_TestSuite_Copy.TestSuiteExecutionRecordExportID  = testSuite.TestSuiteExecutionRecord.RQMID;
                                testSuite.ACL_TestSuite_Copy.TestSuiteExecutionRecordExportUri = testSuite.TestSuiteExecutionRecord.URLPathVersioned;
                            }

                            // after creating of execution record at RQM and as object at Ginger (or checking that it's exists)
                            // need to create testsuiteLOG on it and add test caseexecution records on it Ginger (the objects at RQM will be created after loop)
                            ACL_Data_Contract.Activity currentActivity = GetTestCaseFromActivityGroup(activGroup);
                            resultInfo = RQMConnect.Instance.RQMRep.CreateExecutionRecordPerActivityWithInTestSuite(loginData, RQMCore.ALMProjectGuid, ALMCore.AlmConfig.ALMProjectName, RQMCore.ALMProjectGroupName, currentActivity, bfExportedID, businessFlow.Name, testSuite.Name.ToString());
                            if (resultInfo.IsSuccess)
                            {
                                if ((testSuite.TestSuiteExecutionRecord.TestSuiteResults == null) || (testSuite.TestSuiteExecutionRecord.TestSuiteResults.Count == 0) || (testSuite.TestSuiteExecutionRecord.CurrentTestSuiteResult == null))
                                {
                                    testSuite.TestSuiteExecutionRecord.TestSuiteResults       = new ObservableList <RQMTestSuiteResults>();
                                    testSuite.TestSuiteExecutionRecord.CurrentTestSuiteResult = new RQMTestSuiteResults();
                                    testSuite.TestSuiteExecutionRecord.CurrentTestSuiteResult.RQMExecutionRecords = new ObservableList <RQMExecutionRecord>();
                                    testSuite.TestSuiteExecutionRecord.TestSuiteResults.Add(testSuite.TestSuiteExecutionRecord.CurrentTestSuiteResult);
                                }

                                RQMExecutionRecord executionRecord = new RQMExecutionRecord(currentActivity.ExportedTcExecutionRecId.ToString(), currentActivity.ExportedTestScriptId.ToString(), currentActivity.ExportedID.ToString());
                                testSuite.TestSuiteExecutionRecord.CurrentTestSuiteResult.RQMExecutionRecords.Add(executionRecord);
                                testSuite.TestSuiteExecutionRecord.CurrentTestSuiteResult.ACL_TestSuiteLog_Copy.TestSuiteLogExecutionRecords.Add(exeResult);
                                exeResult.ExpectedResultName = currentActivity.EntityName;
                                erExportID = executionRecord.RQMID;
                                currentActivity.ExportedID = long.Parse(executionRecord.RQMID);

                                string atsID = GetExportedIDString(activGroup.ExternalID, "AtsID");
                                if (atsID == "0")
                                {
                                    atsID = string.Empty;
                                }
                                activGroup.ExternalID = "RQMID=" + txExportID + "|RQMScriptID=" + tsExportID + "|RQMRecordID=" + erExportID + "|AtsID=" + atsID;
                            }
                        }
                        catch { }
                    }
                    else
                    {
                    }
                }
                else if (string.IsNullOrEmpty(erExportID) || erExportID.Equals("0") || !testPlan.RQMExecutionRecords.Select(z => z.RQMID).ToList().Contains(erExportID))
                {
                    ResultInfo resultInfo;
                    ACL_Data_Contract.Activity currentActivity = GetTestCaseFromActivityGroup(activGroup);
                    try
                    {
                        // check if executionRecordID exist in RQM but still was not updated in business flow XML
                        RQMExecutionRecord currentExecutionRecord = testPlan.RQMExecutionRecords.Where(y => y.RelatedTestCaseRqmID == txExportID && y.RelatedTestScriptRqmID == tsExportID).ToList().FirstOrDefault();
                        if (currentExecutionRecord != null)
                        {
                            erExportID = currentExecutionRecord.RQMID;
                        }
                        else
                        {
                            // if executionRecord not updated and not exists - so create one in RQM and update BussinesFlow object (this may be not saved due not existed "autosave" functionality)
                            resultInfo = RQMConnect.Instance.RQMRep.CreateExecutionRecordPerActivity(loginData, RQMCore.ALMProjectGuid, ALMCore.AlmConfig.ALMProjectName, RQMCore.ALMProjectGroupName, currentActivity, bfExportedID, businessFlow.Name);
                            if (!currentActivity.ExportedTcExecutionRecId.Equals("0"))
                            {
                                string atsID = GetExportedIDString(activGroup.ExternalID, "AtsID");
                                if (atsID == "0")
                                {
                                    atsID = string.Empty;
                                }
                                erExportID            = currentActivity.ExportedTcExecutionRecId.ToString();
                                activGroup.ExternalID = "RQMID=" + txExportID + "|RQMScriptID=" + tsExportID + "|RQMRecordID=" + erExportID + "|AtsID=" + atsID;
                                ;
                            }
                        }
                    }
                    catch
                    {
                        Reporter.ToLog(eLogLevel.ERROR, "Failed to create Execution Record Per Activity - " + currentActivity.EntityName);
                    }
                }
                if (string.IsNullOrEmpty(txExportID) || string.IsNullOrEmpty(tsExportID) || string.IsNullOrEmpty(erExportID) || txExportID.Equals("0") || tsExportID.Equals("0") || erExportID.Equals("0"))
                {
                    result = "At " + GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + ": " + businessFlow.Name + " " + GingerDicser.GetTermResValue(eTermResKey.ActivitiesGroup) + ", is missing ExternalID, cannot export RQM TestPlan execution results without Extrnal ID";
                    return(null);
                }
                exeResult.TestCaseExportID        = txExportID;
                exeResult.TestScriptExportID      = tsExportID;
                exeResult.ExecutionRecordExportID = erExportID;

                int i = 1;
                foreach (Activity act in relevantActivities)
                {
                    ExecutionStep exeStep = new ExecutionStep
                    {
                        StepExpResults = act.Expected,
                        StepOrderId    = i,
                        EntityDesc     = act.ActivityName,
                    };
                    i++;

                    switch (act.Status)
                    {
                    case Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed:
                        exeStep.StepStatus = ACL_Data_Contract.ExecutoinStatus.Failed;
                        string      errors     = string.Empty;
                        List <IAct> failedActs = act.Acts.Where(x => x.Status == Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed).ToList();
                        foreach (IAct action in failedActs)
                        {
                            errors += action.Error + Environment.NewLine;
                        }
                        exeStep.StepActualResult = errors;
                        break;

                    case Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed:
                        exeStep.StepStatus       = ACL_Data_Contract.ExecutoinStatus.Passed;
                        exeStep.StepActualResult = "Passed as expected";
                        break;

                    case Amdocs.Ginger.CoreNET.Execution.eRunStatus.NA:
                        exeStep.StepStatus       = ACL_Data_Contract.ExecutoinStatus.NA;
                        exeStep.StepActualResult = "NA";
                        break;

                    case Amdocs.Ginger.CoreNET.Execution.eRunStatus.Pending:
                        exeStep.StepStatus       = ACL_Data_Contract.ExecutoinStatus.In_Progress;
                        exeStep.StepActualResult = "Was not executed";
                        break;

                    case Amdocs.Ginger.CoreNET.Execution.eRunStatus.Running:
                        exeStep.StepStatus       = ACL_Data_Contract.ExecutoinStatus.In_Progress;
                        exeStep.StepActualResult = "Not Completed";
                        break;

                    case Amdocs.Ginger.CoreNET.Execution.eRunStatus.Skipped:
                        exeStep.StepStatus       = ACL_Data_Contract.ExecutoinStatus.Outscoped;
                        exeStep.StepActualResult = "Skipped";
                        break;

                    case Amdocs.Ginger.CoreNET.Execution.eRunStatus.Blocked:
                        exeStep.StepStatus       = ACL_Data_Contract.ExecutoinStatus.Blocked;
                        exeStep.StepActualResult = "Blocked";
                        break;

                    case Amdocs.Ginger.CoreNET.Execution.eRunStatus.Stopped:
                        exeStep.StepStatus       = ACL_Data_Contract.ExecutoinStatus.Inconclusive;
                        exeStep.StepActualResult = "Stopped";
                        break;
                    }
                    exeResult.ExecutionStep.Add(exeStep);
                }
                return(exeResult);
            }
            catch (Exception ex)
            {
                result = "Unexpected error occurred- " + ex.Message;
                Reporter.ToLog(eLogLevel.ERROR, "Failed to export execution details to RQM/ALM", ex);
                return(null);
            }
        }
コード例 #14
0
ファイル: QCRepository.cs プロジェクト: linuxerlj/Ginger
        public override bool ExportActivitiesGroupToALM(ActivitiesGroup activtiesGroup, string uploadPath = null, bool performSaveAfterExport = false)
        {
            if (activtiesGroup == null)
            {
                return(false);
            }
            Test matchingTC = null;

            //check if the ActivitiesGroup already mapped to QC Test Case
            if (String.IsNullOrEmpty(activtiesGroup.ExternalID) == false)
            {
                matchingTC = ((QCCore)ALMIntegration.Instance.AlmCore).GetQCTest(activtiesGroup.ExternalID);
                if (matchingTC != null)
                {
                    //ask user if want to continue
                    Amdocs.Ginger.Common.eUserMsgSelection userSelec = Reporter.ToUser(eUserMsgKey.ActivitiesGroupAlreadyMappedToTC, activtiesGroup.Name, matchingTC["TS_SUBJECT"].Path + "\\" + matchingTC.Name);
                    if (userSelec == Amdocs.Ginger.Common.eUserMsgSelection.Cancel)
                    {
                        return(false);
                    }
                    else if (userSelec == Amdocs.Ginger.Common.eUserMsgSelection.No)
                    {
                        matchingTC = null;
                    }
                }
            }

            if (matchingTC == null && String.IsNullOrEmpty(uploadPath))
            {
                //get the QC Test Plan path to upload the activities group to
                uploadPath = SelectALMTestPlanPath();
                if (String.IsNullOrEmpty(uploadPath))
                {
                    //no path to upload to
                    return(false);
                }
            }

            //upload the Activities Group
            Reporter.ToStatus(eStatusMsgKey.ExportItemToALM, null, activtiesGroup.Name);
            string res = string.Empty;
            //TODO: retireve test case fields -->DONE
            ObservableList <ExternalItemFieldBase> testCaseFields = WorkSpace.UserProfile.Solution.ExternalItemsFields;

            ALMIntegration.Instance.RefreshALMItemFields(testCaseFields, true, null);
            var  filterTestCaseFields = testCaseFields.Where(tc => tc.ItemType == eQCItemType.TestCase.ToString()).ToList();
            bool exportRes            = ((QCCore)ALMIntegration.Instance.AlmCore).ExportActivitiesGroupToALM(activtiesGroup, matchingTC, uploadPath, new ObservableList <ExternalItemFieldBase>(filterTestCaseFields), ref res);

            Reporter.HideStatusMessage();
            if (exportRes)
            {
                if (performSaveAfterExport)
                {
                    Reporter.ToStatus(eStatusMsgKey.SaveItem, null, activtiesGroup.Name, GingerDicser.GetTermResValue(eTermResKey.ActivitiesGroup));
                    WorkSpace.Instance.SolutionRepository.SaveRepositoryItem(activtiesGroup);
                    Reporter.HideStatusMessage();
                }
                return(true);
            }
            else
            {
                Reporter.ToUser(eUserMsgKey.ExportItemToALMFailed, GingerDicser.GetTermResValue(eTermResKey.ActivitiesGroup), activtiesGroup.Name, res);
            }

            return(false);
        }
コード例 #15
0
ファイル: QCRestAPICore.cs プロジェクト: lanicon/Ginger
 public bool ExportActivitiesGroupToALM(ActivitiesGroup activtiesGroup, QCTestCase matchingTC, string uploadPath, ObservableList <ExternalItemFieldBase> testCaseFields, ObservableList <ExternalItemFieldBase> designStepsFields, ObservableList <ExternalItemFieldBase> designStepsParamsFields, ref string res)
 {
     return(ExportToQCRestAPI.ExportActivitiesGroupToQC(activtiesGroup, matchingTC, uploadPath, testCaseFields, designStepsFields, designStepsParamsFields, ref res));
 }
コード例 #16
0
 public bool ExportActivitiesGroupToALM(ActivitiesGroup activitiesGroup, Test mappedTest, string uploadPath, ObservableList <ExternalItemFieldBase> testCaseFields, ref string result)
 {
     return(ExportToQC.ExportActivitiesGroupToQC(activitiesGroup, mappedTest, uploadPath, testCaseFields, ref result));
 }
コード例 #17
0
        public static BusinessFlow ConvertRallyTestPlanToBF(RallyTestPlan testPlan)
        {
            try
            {
                if (testPlan == null)
                {
                    return(null);
                }

                //Create Business Flow
                BusinessFlow busFlow = new BusinessFlow();
                busFlow.Name       = testPlan.Name;
                busFlow.ExternalID = "RallyID=" + testPlan.RallyID;
                busFlow.Status     = BusinessFlow.eBusinessFlowStatus.Development;
                busFlow.Activities = new ObservableList <Activity>();
                busFlow.Variables  = new ObservableList <VariableBase>();

                //Create Activities Group + Activities for each TC
                foreach (RallyTestCase tc in testPlan.TestCases)
                {
                    //check if the TC is already exist in repository
                    ActivitiesGroup tcActivsGroup;
                    ActivitiesGroup repoActivsGroup = null;
                    if (repoActivsGroup == null)
                    {
                        repoActivsGroup = GingerActivitiesGroupsRepo.Where(x => x.ExternalID != null ? x.ExternalID.Split('|').First().Split('=').Last() == tc.RallyID : false).FirstOrDefault();
                    }
                    if (repoActivsGroup != null)
                    {
                        tcActivsGroup = (ActivitiesGroup)repoActivsGroup.CreateInstance();
                        busFlow.AddActivitiesGroup(tcActivsGroup);
                        busFlow.ImportActivitiesGroupActivitiesFromRepository(tcActivsGroup, GingerActivitiesRepo, true, true);
                        busFlow.AttachActivitiesGroupsAndActivities();
                    }
                    else // TC not exist in Ginger repository so create new one
                    {
                        tcActivsGroup             = new ActivitiesGroup();
                        tcActivsGroup.Name        = tc.Name;
                        tcActivsGroup.Description = tc.Description;
                        tcActivsGroup.ExternalID  = "RallyID=" + tc.RallyID + "|AtsID=" + tc.BTSID;
                        busFlow.AddActivitiesGroup(tcActivsGroup);
                    }

                    foreach (RallyTestStep step in tc.TestSteps)
                    {
                        Activity stepActivity;
                        bool     toAddStepActivity = false;

                        // check if mapped activity exist in repository
                        Activity repoStepActivity = GingerActivitiesRepo.Where(x => x.ExternalID != null ? x.ExternalID.Split('|').First().Split('=').Last() == step.RallyIndex : false).FirstOrDefault();
                        if (repoStepActivity != null)
                        {
                            //check if it is part of the Activities Group
                            ActivityIdentifiers groupStepActivityIdent = tcActivsGroup.ActivitiesIdentifiers.Where(x => x.ActivityExternalID == step.RallyIndex).FirstOrDefault();
                            if (groupStepActivityIdent != null)
                            {
                                //already in Activities Group so get link to it
                                stepActivity = busFlow.Activities.Where(x => x.Guid == groupStepActivityIdent.ActivityGuid).FirstOrDefault();
                            }
                            else // not in ActivitiesGroup so get instance from repo
                            {
                                stepActivity      = (Activity)repoStepActivity.CreateInstance();
                                toAddStepActivity = true;
                            }
                        }
                        else //Step not exist in Ginger repository so create new one
                        {
                            string strBtsID = string.Empty;
                            stepActivity = new Activity();
                            stepActivity.ActivityName = tc.Name + ">" + step.Name;
                            stepActivity.ExternalID   = "RallyID=" + step.RallyIndex + "|AtsID=" + strBtsID;
                            stepActivity.Description  = StripHTML(step.Description);
                            stepActivity.Expected     = StripHTML(step.ExpectedResult);

                            toAddStepActivity = true;
                        }

                        if (toAddStepActivity)
                        {
                            // not in group- need to add it
                            busFlow.AddActivity(stepActivity);
                            tcActivsGroup.AddActivityToGroup(stepActivity);
                        }

                        //pull TC-Step parameters and add them to the Activity level
                        foreach (RallyTestParameter param in tc.Parameters)   // Params taken from TestScriptLevel only!!!! Also exists parapameters at TestCase, to check if them should be taken!!!
                        {
                            bool?isflowControlParam = null;

                            //detrmine if the param is Flow Control Param or not based on it value and agreed sign "$$_"
                            if (param.Value.ToString().StartsWith("$$_"))
                            {
                                isflowControlParam = false;
                                if (param.Value.ToString().StartsWith("$$_"))
                                {
                                    param.Value = param.Value.ToString().Substring(3); //get value without "$$_"
                                }
                            }
                            else if (param.Value.ToString() != "<Empty>")
                            {
                                isflowControlParam = true;
                            }

                            //check if already exist param with that name
                            VariableBase stepActivityVar = stepActivity.Variables.Where(x => x.Name.ToUpper() == param.Name.ToUpper()).FirstOrDefault();
                            if (stepActivityVar == null)
                            {
                                //#Param not exist so add it
                                if (isflowControlParam == true)
                                {
                                    //add it as selection list param
                                    stepActivityVar      = new VariableSelectionList();
                                    stepActivityVar.Name = param.Name;
                                    stepActivity.AddVariable(stepActivityVar);
                                    stepActivity.AutomationStatus = Activity.eActivityAutomationStatus.Development;//reset status because new flow control param was added
                                }
                                else
                                {
                                    //add as String param
                                    stepActivityVar      = new VariableString();
                                    stepActivityVar.Name = param.Name;
                                    ((VariableString)stepActivityVar).InitialStringValue = param.Value;
                                    stepActivity.AddVariable(stepActivityVar);
                                }
                            }
                            else
                            {
                                //#param exist
                                if (isflowControlParam == true)
                                {
                                    if (!(stepActivityVar is VariableSelectionList))
                                    {
                                        //flow control param must be Selection List so transform it
                                        stepActivity.Variables.Remove(stepActivityVar);
                                        stepActivityVar      = new VariableSelectionList();
                                        stepActivityVar.Name = param.Name;
                                        stepActivity.AddVariable(stepActivityVar);
                                        stepActivity.AutomationStatus = Activity.eActivityAutomationStatus.Development;//reset status because flow control param was added
                                    }
                                }
                                else if (isflowControlParam == false)
                                {
                                    if (stepActivityVar is VariableSelectionList)
                                    {
                                        //change it to be string variable
                                        stepActivity.Variables.Remove(stepActivityVar);
                                        stepActivityVar      = new VariableString();
                                        stepActivityVar.Name = param.Name;
                                        ((VariableString)stepActivityVar).InitialStringValue = param.Value;
                                        stepActivity.AddVariable(stepActivityVar);
                                        stepActivity.AutomationStatus = Activity.eActivityAutomationStatus.Development;//reset status because flow control param was removed
                                    }
                                }
                            }

                            //add the variable selected value
                            if (stepActivityVar is VariableSelectionList)
                            {
                                OptionalValue stepActivityVarOptionalVar = ((VariableSelectionList)stepActivityVar).OptionalValuesList.Where(x => x.Value == param.Value).FirstOrDefault();
                                if (stepActivityVarOptionalVar == null)
                                {
                                    //no such variable value option so add it
                                    stepActivityVarOptionalVar = new OptionalValue(param.Value);
                                    ((VariableSelectionList)stepActivityVar).OptionalValuesList.Add(stepActivityVarOptionalVar);
                                    if (isflowControlParam == true)
                                    {
                                        stepActivity.AutomationStatus = Activity.eActivityAutomationStatus.Development;//reset status because new param value was added
                                    }
                                }
                                //set the selected value
                                ((VariableSelectionList)stepActivityVar).SelectedValue = stepActivityVarOptionalVar.Value;
                            }
                            else
                            {
                                //try just to set the value
                                try
                                {
                                    stepActivityVar.Value = param.Value;
                                    if (stepActivityVar is VariableString)
                                    {
                                        ((VariableString)stepActivityVar).InitialStringValue = param.Value;
                                    }
                                }
                                catch (Exception ex) { Reporter.ToLog(eAppReporterLogLevel.ERROR, $"Method - {MethodBase.GetCurrentMethod().Name}, Error - {ex.Message}", ex); }
                            }
                        }
                    }
                }

                return(busFlow);
            }
            catch (Exception ex)
            {
                Reporter.ToLog(eAppReporterLogLevel.ERROR, "Failed to import Rally test set and convert it into " + GingerDicser.GetTermResValue(eTermResKey.BusinessFlow), ex);
                return(null);
            }
        }
コード例 #18
0
 public override void ActivityGroupStart(uint eventTime, ActivitiesGroup activityGroup)
 {
     AddExecutionDetailsToLog(eExecutionPhase.Start, GingerDicser.GetTermResValue(eTermResKey.ActivitiesGroup), activityGroup.Name, new ActivityGroupReport(activityGroup, mBusinessFlow));
 }
コード例 #19
0
        public void CreateNewGroupToUnSyncedGroupedActivitiesTest()
        {
            //Arrange
            BusinessFlow busFlow   = new BusinessFlow();
            Activity     activity1 = new Activity()
            {
                ActivityName = "Activity1"
            };

            busFlow.AddActivity(activity1);
            Activity activity2 = new Activity()
            {
                ActivityName = "Activity2"
            };

            busFlow.AddActivity(activity2);
            Activity activity3 = new Activity()
            {
                ActivityName = "Activity3"
            };

            busFlow.AddActivity(activity3);
            Activity activity4 = new Activity()
            {
                ActivityName = "Activity4"
            };

            busFlow.AddActivity(activity4);
            Activity activity5 = new Activity()
            {
                ActivityName = "Activity5"
            };

            busFlow.AddActivity(activity5);

            ActivitiesGroup group1 = new ActivitiesGroup()
            {
                Name = "Group1"
            };

            busFlow.AddActivitiesGroup(group1);
            ActivitiesGroup group2 = new ActivitiesGroup()
            {
                Name = "Group2"
            };

            busFlow.AddActivitiesGroup(group2);

            group1.AddActivityToGroup(activity1);
            group1.AddActivityToGroup(activity2);
            group2.AddActivityToGroup(activity3);
            group1.AddActivityToGroup(activity4);
            group1.AddActivityToGroup(activity5);

            //Act
            busFlow.AttachActivitiesGroupsAndActivities();

            //Assert
            Assert.IsTrue(busFlow.ActivitiesGroups.Count == 3, "Validate 1 extra groups were added");
            Assert.IsTrue(group1.ActivitiesIdentifiers.Count == 2, "Validate only 2 Activities are attached to first group");
            Assert.IsTrue(group2.ActivitiesIdentifiers.Count == 1, "Validate 1 Activities were attached to second group");
            Assert.IsTrue(busFlow.ActivitiesGroups.Where(x => x.Name == group1.Name + "_2").FirstOrDefault() != null, "Validate new added group name");
            Assert.IsTrue(activity4.ActivitiesGroupID == group1.Name + "_2", "Validate Activity was re-grouped to new added group");
            Assert.IsTrue(activity5.ActivitiesGroupID == group1.Name + "_2", "Validate Activity was re-grouped to new added group");
        }
コード例 #20
0
 public override void ActivityGroupEnd(uint eventTime, ActivitiesGroup activityGroup, bool offlineMode = false)
 {
     AddExecutionDetailsToLog(eExecutionPhase.End, GingerDicser.GetTermResValue(eTermResKey.ActivitiesGroup), activityGroup.Name, new ActivityGroupReport(activityGroup, mBusinessFlow));
 }
コード例 #21
0
        public void GroupsActivitiesOrderTest()
        {
            //Arrange
            BusinessFlow busFlow   = new BusinessFlow();
            Activity     activity1 = new Activity()
            {
                ActivityName = "Activity1"
            };

            busFlow.AddActivity(activity1);
            Activity activity2 = new Activity()
            {
                ActivityName = "Activity2"
            };

            busFlow.AddActivity(activity2);
            Activity activity3 = new Activity()
            {
                ActivityName = "Activity3"
            };

            busFlow.AddActivity(activity3);
            Activity activity4 = new Activity()
            {
                ActivityName = "Activity4"
            };

            busFlow.AddActivity(activity4);
            Activity activity5 = new Activity()
            {
                ActivityName = "Activity5"
            };

            busFlow.AddActivity(activity5);

            ActivitiesGroup group1 = new ActivitiesGroup()
            {
                Name = "Group1"
            };

            busFlow.AddActivitiesGroup(group1);
            ActivitiesGroup group2 = new ActivitiesGroup()
            {
                Name = "Group2"
            };

            busFlow.AddActivitiesGroup(group2);

            group1.AddActivityToGroup(activity3);
            group1.AddActivityToGroup(activity2);
            group1.AddActivityToGroup(activity1);
            group2.AddActivityToGroup(activity4);
            group2.AddActivityToGroup(activity5);

            //Act
            busFlow.AttachActivitiesGroupsAndActivities();

            //Assert
            Assert.IsTrue(group1.ActivitiesIdentifiers[0].IdentifiedActivity == activity1, "Validate group 1 Activity 1 order is same as in Activities flow");
            Assert.IsTrue(group1.ActivitiesIdentifiers[1].IdentifiedActivity == activity2, "Validate group 1 Activity 2 order is same as in Activities flow");
            Assert.IsTrue(group1.ActivitiesIdentifiers[2].IdentifiedActivity == activity3, "Validate group 1 Activity 3 order is same as in Activities flow");
            Assert.IsTrue(group2.ActivitiesIdentifiers[0].IdentifiedActivity == activity4, "Validate group 2 Activity 4 order is same as in Activities flow");
            Assert.IsTrue(group2.ActivitiesIdentifiers[1].IdentifiedActivity == activity5, "Validate group 2 Activity 5 order is same as in Activities flow");
        }
コード例 #22
0
        public bool ExportBusinessFlowToALM(BusinessFlow businessFlow, QtestTestSuite mappedTestSuite, string parentObjectId, ObservableList <ExternalItemFieldBase> testSetFields, ref string result)
        {
            ConnectALMServer();
            testrunApi  = new QTestApi.TestrunApi(connObj.Configuration);
            testcaseApi = new QTestApi.TestcaseApi(connObj.Configuration);
            QTestApi.TestsuiteApi testsuiteApi = new QTestApi.TestsuiteApi(connObj.Configuration);

            ObservableList <ActivitiesGroup> existingActivitiesGroups = new ObservableList <ActivitiesGroup>();

            try
            {
                QTestApiModel.TestSuiteWithCustomFieldResource testSuite = null;
                if (mappedTestSuite == null)
                {
                    testSuite = new QTestApiModel.TestSuiteWithCustomFieldResource(null, null, null, null,
                                                                                   businessFlow.Name,
                                                                                   new List <QTestApiModel.PropertyResource>());
                    testSuite = testsuiteApi.CreateTestSuite((long)Convert.ToInt32(ALMCore.DefaultAlmConfig.ALMProjectKey), testSuite, (long)Convert.ToInt32(parentObjectId), "test-cycle");

                    foreach (ActivitiesGroup ag in businessFlow.ActivitiesGroups)
                    {
                        QTestApiModel.TestRunWithCustomFieldResource testRun = new QTestApiModel.TestRunWithCustomFieldResource(null, null, null, null,
                                                                                                                                ag.Name,
                                                                                                                                new List <QTestApiModel.PropertyResource>(),
                                                                                                                                testcaseApi.GetTestCase((long)Convert.ToInt32(ALMCore.DefaultAlmConfig.ALMProjectKey), (long)Convert.ToInt32(ag.ExternalID)));
                        testrunApi.Create((long)Convert.ToInt32(ALMCore.DefaultAlmConfig.ALMProjectKey), testRun, testSuite.Id, "test-suite");
                    }
                }
                else
                {
                    //##update existing TestSuite -> TestRun
                    foreach (QtestTest test in mappedTestSuite.Tests)
                    {
                        QTestApiModel.TestRunWithCustomFieldResource  testRun  = testrunApi.Get((long)Convert.ToInt32(ALMCore.DefaultAlmConfig.ALMProjectKey), (long)Convert.ToInt32(test.Runs[0].RunID), "descendents");
                        QTestApiModel.TestCaseWithCustomFieldResource testCase = testcaseApi.GetTestCase((long)Convert.ToInt32(ALMCore.DefaultAlmConfig.ALMProjectKey), testRun.TestCase.Id);

                        ActivitiesGroup ag = businessFlow.ActivitiesGroups.Where(x => (x.ExternalID == test.TestID.ToString())).FirstOrDefault();
                        if (ag != null)
                        {
                            foreach (ActivityIdentifiers actIdent in ag.ActivitiesIdentifiers)
                            {
                                if ((actIdent.IdentifiedActivity.ExternalID == null) && (actIdent.IdentifiedActivity.ExternalID2 == null))
                                {
                                    QTestApiModel.TestCaseWithCustomFieldResource newTestCase = new QTestApiModel.TestCaseWithCustomFieldResource(null, null, null, new List <QTestApiModel.PropertyResource>());
                                    newTestCase.Description = actIdent.ActivityDescription;
                                    newTestCase.Name        = actIdent.ActivityName;
                                    testcaseApi.CreateTestCase((long)Convert.ToInt32(ALMCore.DefaultAlmConfig.ALMProjectKey), newTestCase);
                                    QTestApiModel.TestStepResource stepResource = new QTestApiModel.TestStepResource(null, null,
                                                                                                                     ((Activity)actIdent.IdentifiedActivity).Description == null ? string.Empty : ((Activity)actIdent.IdentifiedActivity).Description,
                                                                                                                     ((Activity)actIdent.IdentifiedActivity).Expected == null ? string.Empty : ((Activity)actIdent.IdentifiedActivity).Expected);
                                    stepResource.PlainValueText = ((Activity)actIdent.IdentifiedActivity).ActivityName;
                                    testcaseApi.AddTestStep((long)Convert.ToInt32(ALMCore.DefaultAlmConfig.ALMProjectKey), newTestCase.Id, stepResource);

                                    stepResource = new QTestApiModel.TestStepResource(null, null, string.Empty, string.Empty,
                                                                                      null, null, null, null, null, newTestCase.Id);
                                    stepResource = testcaseApi.AddTestStep((long)Convert.ToInt32(ALMCore.DefaultAlmConfig.ALMProjectKey), testCase.Id, stepResource);

                                    actIdent.IdentifiedActivity.ExternalID  = newTestCase.Id.ToString();
                                    actIdent.IdentifiedActivity.ExternalID2 = stepResource.Id.ToString();
                                }
                            }
                        }
                    }
                }

                businessFlow.ExternalID = testSuite != null?testSuite.Id.ToString() : string.Empty;

                WorkSpace.Instance.SolutionRepository.SaveRepositoryItem(businessFlow);
                return(true);
            }
            catch (Exception ex)
            {
                result = "Unexpected error occurred- " + ex.Message;
                Reporter.ToLog(eLogLevel.ERROR, "Failed to export the " + GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + " to qTest", ex);
                return(false);
            }
        }
コード例 #23
0
        public void AddActivityWithNewGroupTest()
        {
            //Arrange
            BusinessFlow busFlow = new BusinessFlow();

            ActivitiesGroup group1 = new ActivitiesGroup()
            {
                Name = "Group1"
            };

            busFlow.AddActivitiesGroup(group1);
            ActivitiesGroup group2 = new ActivitiesGroup()
            {
                Name = "Group2"
            };

            busFlow.AddActivitiesGroup(group2);

            Activity activity1 = new Activity()
            {
                ActivityName = "Activity1"
            };
            Activity activity2 = new Activity()
            {
                ActivityName = "Activity2"
            };
            Activity activity3 = new Activity()
            {
                ActivityName = "Activity3"
            };
            Activity activity4 = new Activity()
            {
                ActivityName = "Activity4"
            };
            Activity activity5 = new Activity()
            {
                ActivityName = "Activity5"
            };

            busFlow.AddActivity(activity1, group1);
            busFlow.AddActivity(activity2, group1);
            busFlow.AddActivity(activity3, group1);

            busFlow.AddActivity(activity4, group2);
            busFlow.AddActivity(activity5, group2);

            //Act
            busFlow.AttachActivitiesGroupsAndActivities();
            ActivitiesGroup group3 = new ActivitiesGroup()
            {
                Name = "Group3"
            };

            busFlow.AddActivitiesGroup(group3);
            Activity activity6 = new Activity()
            {
                ActivityName = "Activity6"
            };

            busFlow.AddActivity(activity6, group3);

            //Assert
            Assert.IsTrue(busFlow.Activities[5] == activity6, "Validate new Activity added in last");
            Assert.IsTrue(busFlow.ActivitiesGroups[2] == group3, "Validate new group was added to BF");
            Assert.IsTrue(activity6.ActivitiesGroupID == group3.Name, "Validate new Activity is mapped to new group");
            Assert.IsTrue(group3.ActivitiesIdentifiers[0].IdentifiedActivity == activity6, "Validate new Activity is mapped to new group");
        }
コード例 #24
0
 public override void ActivityGroupEnd(uint eventTime, ActivitiesGroup activityGroup, bool offlineMode = false)
 {
     WorkSpace.Instance.Telemetry.Add("activitygroupend", new { Guid = activityGroup.Guid, Elapsed = activityGroup.Elapsed });
 }
コード例 #25
0
        public void GroupUnGroupedActivitiesTest()
        {
            //Arrange
            BusinessFlow busFlow   = new BusinessFlow();
            Activity     activity1 = new Activity()
            {
                ActivityName = "Activity1"
            };

            busFlow.AddActivity(activity1);
            Activity activity2 = new Activity()
            {
                ActivityName = "Activity2"
            };

            busFlow.AddActivity(activity2);
            Activity activity3 = new Activity()
            {
                ActivityName = "Activity3"
            };

            busFlow.AddActivity(activity3);
            Activity activity4 = new Activity()
            {
                ActivityName = "Activity4"
            };

            busFlow.AddActivity(activity4);
            Activity activity5 = new Activity()
            {
                ActivityName = "Activity5"
            };

            busFlow.AddActivity(activity5);
            ActivitiesGroup group1 = new ActivitiesGroup()
            {
                Name = "Group1"
            };

            busFlow.AddActivitiesGroup(group1);
            ActivitiesGroup group2 = new ActivitiesGroup()
            {
                Name = "Group2"
            };

            busFlow.AddActivitiesGroup(group2);
            group1.AddActivityToGroup(activity1);
            group2.AddActivityToGroup(activity4);

            //Act
            busFlow.AttachActivitiesGroupsAndActivities();

            //Assert
            Assert.IsTrue(busFlow.ActivitiesGroups.Count == 2, "Validate no extra groups were added");
            Assert.IsTrue(group1.ActivitiesIdentifiers.Count == 3, "Validate first three Activities were attached to first group");
            Assert.IsTrue(group2.ActivitiesIdentifiers.Count == 2, "Validate last two Activities were attached to second group");
            Assert.IsTrue(group1.ActivitiesIdentifiers[2].ActivityName == activity3.ActivityName, "Validate group 1 has correct activities mapped to it");
            Assert.IsTrue(group2.ActivitiesIdentifiers[1].ActivityName == activity5.ActivityName, "Validate group 2 has correct activities mapped to it");
            Assert.IsTrue(activity2.ActivitiesGroupID == group1.Name, "Validate Activities mapped to group 1");
            Assert.IsTrue(activity5.ActivitiesGroupID == group2.Name, "Validate Activities mapped to group 2");
        }
コード例 #26
0
        private ActivitiesGroup CreateScenario(ScenarioDefinition sc, int?index = null)
        {
            // Create new activity per each step
            // Each scenario is in one ActivitiesGroup
            ActivitiesGroup AG = new ActivitiesGroup();

            AG.Name = sc.Name;
            if (index != null)
            {
                AG.Name += " #" + index;                 // Adding Scenario index so it will be unique
            }
            mBizFlow.AddActivitiesGroup(AG);

            //Add Tags - on ActivitiesGroup and solution if needed

            IEnumerable <Tag> TagList = null;

            if (sc is ScenarioOutline)
            {
                TagList = ((ScenarioOutline)sc).Tags;
            }
            else if (sc is Scenario)
            {
                TagList = ((Scenario)sc).Tags;
            }

            foreach (var t in TagList)
            {
                Guid tg = GetOrCreateTagInSolution(t.Name);
                AG.Tags.Add(tg);
            }
            foreach (Guid guid in mBizFlow.Tags)
            {
                AG.Tags.Add(guid);
            }

            foreach (Gherkin.Ast.Step step in sc.Steps)
            {
                // Find the Activity from the template BF with All activity, create a copy and add to BF
                string   GN = GherkinGeneral.GetActivityGherkinName(step.Text);
                Activity a  = (Activity)SearchActivityByName(GN);
                if (a != null)
                {
                    Activity a1 = (Activity)a.CreateCopy(false);
                    a1.ActivityName = step.Text;
                    a1.Active       = true;
                    a1.ParentGuid   = a1.Guid;
                    Guid g = Guid.NewGuid();
                    a1.Guid = g;
                    foreach (var t in AG.Tags)
                    {
                        if (!a1.Tags.Contains(t))
                        {
                            a1.Tags.Add(t);
                        }
                        if (!a.Tags.Contains(t))
                        {
                            a.Tags.Add(t);
                        }
                    }
                    //Adding feature tags
                    foreach (Guid guid in mBizFlow.Tags)
                    {
                        if (!a1.Tags.Contains(guid))
                        {
                            a1.Tags.Add(guid);
                        }
                        if (!a.Tags.Contains(guid))
                        {
                            a.Tags.Add(guid);
                        }
                    }

                    UpdateActivityVars(a1, a.ActivityName);
                    mBizFlow.AddActivity(a1, AG);
                }
                else
                {
                    //TODO: err activity not found...
                    Reporter.ToUser(eUserMsgKey.GherkinActivityNotFound, GN);
                }
            }
            return(AG);
        }
コード例 #27
0
ファイル: JiraExportManager.cs プロジェクト: svendster/Ginger
        private void CreateTestCaseFields(ActivitiesGroup activtiesGroup, IEnumerable <ExternalItemFieldBase> issueFields, JiraIssueExport jiraIssue)
        {
            jiraIssue.name         = activtiesGroup.Name;
            jiraIssue.resourceType = ALM_Common.DataContracts.ResourceType.TEST_CASE;
            jiraIssue.ExportFields.Add("project", new List <IJiraExportData>()
            {
                new JiraExportData()
                {
                    value = ALMCore.AlmConfig.ALMProjectKey
                }
            });
            jiraIssue.ExportFields.Add("summary", new List <IJiraExportData>()
            {
                new JiraExportData()
                {
                    value = activtiesGroup.Name
                }
            });
            jiraIssue.ExportFields.Add("description", new List <IJiraExportData>()
            {
                new JiraExportData()
                {
                    value = activtiesGroup.Description
                }
            });
            jiraIssue.ExportFields.Add("issuetype", new List <IJiraExportData>()
            {
                new JiraExportData()
                {
                    value = "Test"
                }
            });
            jiraIssue.ExportFields.Add("reporter", new List <IJiraExportData>()
            {
                new JiraExportData()
                {
                    value = ALMCore.AlmConfig.ALMUserName
                }
            });
            if (!string.IsNullOrEmpty(activtiesGroup.ExternalID2))
            {
                jiraIssue.ExportFields.Add("labels", new List <IJiraExportData>()
                {
                    new JiraExportData()
                    {
                        value = activtiesGroup.ExternalID2
                    }
                });
            }

            foreach (var item in issueFields)
            {
                var issueTemplate = jiraRepObj.GetFieldFromTemplateByName(ALM_Common.DataContracts.ResourceType.TEST_CASE, ALMCore.AlmConfig.ALMProjectKey, item.Name);
                if (issueTemplate == null || jiraIssue.ExportFields.ContainsKey(issueTemplate.key))
                {
                    continue;
                }
                if (issueTemplate != null)
                {
                    jiraIssue.ExportFields.Add(issueTemplate.key, new List <IJiraExportData>()
                    {
                        new JiraExportData()
                        {
                            value = item.SelectedValue
                        }
                    });
                }
            }
        }
コード例 #28
0
        public void CreateScenarios(BusinessFlow BF)
        {
            string FileName = string.Empty;

            if (BF.ExternalID != null)
            {
                FileName = BF.ExternalID.Replace(@"~", WorkSpace.Instance.Solution.Folder);
            }

            if (!System.IO.File.Exists(FileName))
            {
                // General
                Reporter.ToUser(eUserMsgKey.GherkinFileNotFound, FileName);
                return;
            }

            Parser          parser          = new Parser();
            GherkinDocument gherkinDocument = parser.Parse(FileName);

            mBizFlow = BF;

            ClearGeneretedActivites(mBizFlow);
            ClearOptimizedScenariosVariables(mBizFlow);

            //Add Tags to BF
            foreach (var t in gherkinDocument.Feature.Tags)
            {
                Guid TagGuid = GetOrCreateTagInSolution(t.Name);
                mBizFlow.Tags.Add(TagGuid);
            }

            foreach (Gherkin.Ast.ScenarioDefinition sc in gherkinDocument.Feature.Children)
            {
                IEnumerable <Examples> examples = null;
                // In case of Scenario Outline we need to generate new BF per each line in the table of examples
                if (sc.Keyword == "Scenario Outline")
                {
                    ScenarioOutline so = (ScenarioOutline)sc;
                    examples = so.Examples;
                }

                // Create new BF per each scenario

                if (examples == null)
                {
                    CreateScenario(sc);
                }
                else
                {
                    int i = 0;
                    ValuesDict = new Dictionary <string, List <OptionalValue> >();

                    //TODO: handle case of more than one example table - check what is Gherking expected todo: all combinations!!??
                    foreach (Examples x in examples)
                    {
                        foreach (Gherkin.Ast.TableRow tr in x.TableBody)
                        {
                            i++;
                            ActivitiesGroup AG = CreateScenario(sc, i);
                            // Now the we have the flow created with activities, we update the activities var replacing <param> with value from table
                            var activities = from z in BF.Activities where z.ActivitiesGroupID == AG.Name select z;

                            foreach (Activity a in activities)
                            {
                                while (true)
                                {
                                    string ColName = General.GetStringBetween(a.ActivityName, "<", ">");
                                    if (string.IsNullOrEmpty(ColName))
                                    {
                                        break;
                                    }

                                    string val = GetExampleValue(x.TableHeader, tr, ColName);
                                    a.ActivityName = a.ActivityName.Replace("<" + ColName + ">", "\"" + val + "\"");

                                    VariableBase v = a.Variables.Where(y => y.Name == ColName).FirstOrDefault();

                                    OptionalValue ov = new OptionalValue(val);
                                    if (ValuesDict.ContainsKey(ColName))
                                    {
                                        ValuesDict[ColName].Add(ov);
                                    }
                                    else
                                    {
                                        List <OptionalValue> newList = new List <OptionalValue>();
                                        newList.Add(ov);
                                        ValuesDict.Add(ColName, newList);
                                    }
                                    ((VariableSelectionList)v).OptionalValuesList.Add(ov);
                                    ((VariableSelectionList)v).SelectedValue = val;
                                }
                            }
                        }
                    }

                    foreach (Activity a in BF.Activities)
                    {
                        foreach (VariableBase vb in a.Variables)
                        {
                            if (vb is VariableSelectionList)
                            {
                                if (ValuesDict.ContainsKey(vb.Name))
                                {
                                    foreach (OptionalValue ov in ValuesDict[vb.Name])
                                    {
                                        OptionalValue ExistedOV = ((VariableSelectionList)vb).OptionalValuesList.Where(y => y.Value == ov.Value).FirstOrDefault();
                                        if (ExistedOV == null)
                                        {
                                            ((VariableSelectionList)vb).OptionalValuesList.Add(ov);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            if (!string.IsNullOrEmpty(NotFoundItems))
            {
                Reporter.ToUser(eUserMsgKey.GherkinColumnNotExist, NotFoundItems);
            }
        }
コード例 #29
0
        public static void ClassInit(TestContext context)
        {
            BF1        = new BusinessFlow();
            BF1.Name   = "VariableDependancyTest";
            BF1.Active = true;

            ActivitiesGroup activityGroup = new ActivitiesGroup();

            Activity activity1 = new Activity();

            activity1.Active = true;

            ActDummy actDummy1 = new ActDummy();

            actDummy1.Active = true;
            ActDummy actDummy2 = new ActDummy();

            actDummy2.Active = true;

            activity1.Acts.Add(actDummy1);
            activity1.Acts.Add(actDummy2);


            Activity activity2 = new Activity();

            activity2.Active = true;

            ActDummy actDummy3 = new ActDummy();

            actDummy3.Active = true;
            ActDummy actDummy4 = new ActDummy();

            actDummy4.Active = true;

            ActDummy actDummy7 = new ActDummy();

            actDummy7.Active = true;
            ActDummy actDummy8 = new ActDummy();

            actDummy8.Active = true;

            activity2.Acts.Add(actDummy3);
            activity2.Acts.Add(actDummy4);
            activity2.Acts.Add(actDummy7);
            activity2.Acts.Add(actDummy8);

            Activity activity3 = new Activity();

            activity3.Active = true;

            ActDummy actDummy5 = new ActDummy();

            actDummy5.Active = true;
            ActDummy actDummy6 = new ActDummy();

            actDummy6.Active = true;

            activity3.Acts.Add(actDummy5);
            activity3.Acts.Add(actDummy6);

            activityGroup.AddActivityToGroup(activity1);
            activityGroup.AddActivityToGroup(activity2);
            activityGroup.AddActivityToGroup(activity3);

            BF1.Activities.Add(activity1);
            BF1.Activities.Add(activity2);
            BF1.Activities.Add(activity3);

            BF1.ActivitiesGroups.Add(activityGroup);

            Platform p = new Platform();

            p.PlatformType = ePlatformType.Web;
            BF1.TargetApplications.Add(new TargetApplication()
            {
                AppName = "SCM"
            });

            if (WorkSpace.Instance != null && WorkSpace.Instance.Solution != null && WorkSpace.Instance.Solution.LoggerConfigurations != null)
            {
                string TempRepositoryFolder = TestResources.GetTestTempFolder(Path.Combine("Solutions", "temp"));
                WorkSpace.Instance.Solution.LoggerConfigurations.CalculatedLoggerFolder = Path.Combine(TempRepositoryFolder, "ExecutionResults");
                WorkSpace.Instance.Solution.SolutionOperations = new SolutionOperations(WorkSpace.Instance.Solution);
            }



            mGR          = new GingerRunner();
            mGR.Executor = new GingerExecutionEngine(mGR);

            mGR.Name = "Test Runner";
            mGR.Executor.CurrentSolution = new Ginger.SolutionGeneral.Solution();

            ProjEnvironment environment = new ProjEnvironment();

            environment.Name = "Default";
            BF1.Environment  = environment.Name;

            Agent a = new Agent();

            a.DriverType = Agent.eDriverType.SeleniumChrome;

            ((GingerExecutionEngine)mGR.Executor).SolutionAgents = new ObservableList <Agent>();
            ((GingerExecutionEngine)mGR.Executor).SolutionAgents.Add(a);

            mGR.ApplicationAgents.Add(new ApplicationAgent()
            {
                AppName = "SCM", Agent = a
            });
            mGR.Executor.SolutionApplications = new ObservableList <ApplicationPlatform>();

            mGR.Executor.SolutionApplications.Add(new ApplicationPlatform()
            {
                AppName = "SCM", Platform = ePlatformType.Web, Description = "New application"
            });
            mGR.Executor.BusinessFlows.Add(BF1);

            Context context1 = new Context();

            context1.BusinessFlow = BF1;
            context1.Activity     = BF1.Activities[0];

            mGR.Executor.CurrentBusinessFlow = BF1;
            mGR.Executor.CurrentBusinessFlow.CurrentActivity = BF1.Activities[0];
            mGR.Executor.Context = context1;
        }
コード例 #30
0
ファイル: RunListenerBase.cs プロジェクト: lanicon/Ginger
 public virtual void ActivityGroupEnd(uint eventTime, ActivitiesGroup activityGroup, bool offlineMode = false)
 {
 }