/// <summary>
        /// Moves to the next test case. User must check for the condition type themselves. Conidtion type can return EXEC_FINISHED or EXEC_PASSED.
        /// </summary>
        /// <returns>true if there is a next test case.</returns>
        public bool MoveToNextTestCase()
        {
            if (this.currTestCaseID != this.lastTestCaseID)
            {
                this.currTestCaseID = this.testCaseFlow[this.currTestCaseID][0];
                this.currTestCase   = new TestCaseInstance(this.testCaseDict[this.currTestCaseID], this.GetField("Test Environment"), this.buildNumber);
                return(true);
            }

            this.Finished = DateTime.Now;
            return(false);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="TestSetInstance"/> class.
        /// </summary>
        /// <param name="testSet">The TestSet<see cref="TestSet"/>.</param>
        /// <param name="username">The username of the alm</param>
        public TestSetInstance(TestSet testSet, string username)
        {
            this.TestSet  = testSet;
            this.Name     = testSet.Name;
            this.ID       = $"{testSet.ID}";
            this.username = username;

            try
            {
                this.IniatilizeTestSet();
            }
            catch (Exception e)
            {
                throw new ExecutionFlowDeterminer(ExecutionFlowDeterminer.ErrorMsg + " " + e.ToString());
            }

            this.currTestCase = new TestCaseInstance(this.testCaseDict[this.currTestCaseID], this.GetField("Test Environment"), this.buildNumber);
        }