// Path: src/main/java/bv/offa/netbeans/cnd/unittest/api/CndTestCase.java
// public class CndTestCase extends Testcase
// {
//     private final TestFramework framework;
//     private FailureInfo failureInfo;
//     
//     
//     public CndTestCase(String name, TestFramework framework, TestSession session)
//     {
//         super(name, framework.getName(), session);
//         this.framework = framework;
//     }
// 
//     
//     /**
//      * Returns the framework.
//      * 
//      * @return  Framework
//      */
//     public TestFramework getFramework()
//     {
//         return framework;
//     }
//     
//     
//     /**
//      * Sets the Test as failed.
//      */
//     public void setError()
//     {
//         Trouble trouble = getTrouble();
//         
//         if( trouble == null )
//         {
//             trouble = new Trouble(true);
//         }
//         
//         trouble.setError(true);
//         setTrouble(trouble);
//     }
//     
// 
//     /**
//      * Sets the test as {@link #setError() failed}. The source of failure is
//      * described by the parameters.
//      * 
//      * @param file      File of failure
//      * @param line      Line of failure
//      */
//     public void setError(String file, int line)
//     {
//         Trouble trouble = new Trouble(true);
//         trouble.setStackTrace(new String[] { file + ":" + line });
//         setTrouble(trouble);
//         this.failureInfo = new FailureInfo(file, line);
//     }
//     
//     
//     /**
//      * Sets the Test as skipped (ignored by the test runner).
//      */
//     public void setSkipped()
//     {
//         setStatus(Status.SKIPPED);
//     }
// 
// 
//     /**
//      * Returns the failure info if the test has failed or {@code null} otherwise.
//      * 
//      * @return      Failure or {@code null} if not failed
//      */
//     public FailureInfo getFailureInfo()
//     {
//         return failureInfo;
//     }
//     
// }
// 
// Path: src/main/java/bv/offa/netbeans/cnd/unittest/api/CndTestSuite.java
// public class CndTestSuite extends TestSuite
// {
//     private final TestFramework framework;
//     
//     public CndTestSuite(String name, TestFramework framework)
//     {
//         super(name);
//         this.framework = framework;
//     }
// 
//     
//     /**
//      * Returns the framework.
//      * 
//      * @return  Framework
//      */
//     public TestFramework getFramework()
//     {
//         return framework;
//     }
//     
// }
// 
// Path: src/main/java/bv/offa/netbeans/cnd/unittest/api/FailureInfo.java
// public class FailureInfo
// {
//     private final String file;
//     private final int line;
//     
//     public FailureInfo(String file, int line)
//     {
//         this.file = file;
//         this.line = line;
//     }
// 
//     
//     /**
//      * Returns the file of failure.
//      * 
//      * @return      File
//      */
//     public String getFile()
//     {
//         return file;
//     }
// 
//     
//     /**
//      * Returns the line of failure.
//      * 
//      * @return      Line
//      */
//     public int getLine()
//     {
//         return line;
//     }
//     
// }


import org.netbeans.modules.cnd.modelutil.CsmUtilities;
import org.netbeans.modules.gsf.testrunner.api.Status;
import org.openide.util.RequestProcessor;
import bv.offa.netbeans.cnd.unittest.api.CndTestCase;
import bv.offa.netbeans.cnd.unittest.api.CndTestSuite;
import bv.offa.netbeans.cnd.unittest.api.FailureInfo;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.netbeans.api.project.Project;
import org.netbeans.modules.cnd.api.model.CsmDeclaration;
import org.netbeans.modules.cnd.api.model.CsmFile;
import org.netbeans.modules.cnd.api.model.CsmModelAccessor;
import org.netbeans.modules.cnd.api.model.CsmProject;
        final String uniqueDecl = TestSupportUtils.getUniqueDeclarationName(testSuite);
        goToDeclaration(project, uniqueDecl);
    }


    /**
     * Executes a Go-To-Source to the given TestCase. If the jump target isn't
     * available, this method does nothing.
     *
     * <p>The execution is done in a task; the method doesn't block.</p>
     *
     * @param project   Project
     * @param testCase  TestCase
     */
    public static void goToSourceOfTestCase(Project project, CndTestCase testCase)
    {
        final String uniqueDecl = getUniqueDeclarationName(testCase);
        goToDeclaration(project, uniqueDecl);
    }


    /**
     * Executes a Go-To-Source to the given failure. If the jump
     * target isn't available, this method does nothing.
     *
     * <p>The execution is done in a task; the method doesn't block.</p>
     *
     * @param project       Project
     * @param failure       Failure
     */
// Path: src/main/java/bv/offa/netbeans/cnd/unittest/api/CndTestCase.java
// public class CndTestCase extends Testcase
// {
//     private final TestFramework framework;
//     private FailureInfo failureInfo;
//     
//     
//     public CndTestCase(String name, TestFramework framework, TestSession session)
//     {
//         super(name, framework.getName(), session);
//         this.framework = framework;
//     }
// 
//     
//     /**
//      * Returns the framework.
//      * 
//      * @return  Framework
//      */
//     public TestFramework getFramework()
//     {
//         return framework;
//     }
//     
//     
//     /**
//      * Sets the Test as failed.
//      */
//     public void setError()
//     {
//         Trouble trouble = getTrouble();
//         
//         if( trouble == null )
//         {
//             trouble = new Trouble(true);
//         }
//         
//         trouble.setError(true);
//         setTrouble(trouble);
//     }
//     
// 
//     /**
//      * Sets the test as {@link #setError() failed}. The source of failure is
//      * described by the parameters.
//      * 
//      * @param file      File of failure
//      * @param line      Line of failure
//      */
//     public void setError(String file, int line)
//     {
//         Trouble trouble = new Trouble(true);
//         trouble.setStackTrace(new String[] { file + ":" + line });
//         setTrouble(trouble);
//         this.failureInfo = new FailureInfo(file, line);
//     }
//     
//     
//     /**
//      * Sets the Test as skipped (ignored by the test runner).
//      */
//     public void setSkipped()
//     {
//         setStatus(Status.SKIPPED);
//     }
// 
// 
//     /**
//      * Returns the failure info if the test has failed or {@code null} otherwise.
//      * 
//      * @return      Failure or {@code null} if not failed
//      */
//     public FailureInfo getFailureInfo()
//     {
//         return failureInfo;
//     }
//     
// }
// 
// Path: src/main/java/bv/offa/netbeans/cnd/unittest/api/CndTestSuite.java
// public class CndTestSuite extends TestSuite
// {
//     private final TestFramework framework;
//     
//     public CndTestSuite(String name, TestFramework framework)
//     {
//         super(name);
//         this.framework = framework;
//     }
// 
//     
//     /**
//      * Returns the framework.
//      * 
//      * @return  Framework
//      */
//     public TestFramework getFramework()
//     {
//         return framework;
//     }
//     
// }
// 
// Path: src/main/java/bv/offa/netbeans/cnd/unittest/api/FailureInfo.java
// public class FailureInfo
// {
//     private final String file;
//     private final int line;
//     
//     public FailureInfo(String file, int line)
//     {
//         this.file = file;
//         this.line = line;
//     }
// 
//     
//     /**
//      * Returns the file of failure.
//      * 
//      * @return      File
//      */
//     public String getFile()
//     {
//         return file;
//     }
// 
//     
//     /**
//      * Returns the line of failure.
//      * 
//      * @return      Line
//      */
//     public int getLine()
//     {
//         return line;
//     }
//     
// }


// Path: src/main/java/bv/offa/netbeans/cnd/unittest/TestSupportUtils.java
import org.netbeans.modules.cnd.modelutil.CsmUtilities;
import org.netbeans.modules.gsf.testrunner.api.Status;
import org.openide.util.RequestProcessor;
import bv.offa.netbeans.cnd.unittest.api.CndTestCase;
import bv.offa.netbeans.cnd.unittest.api.CndTestSuite;
import bv.offa.netbeans.cnd.unittest.api.FailureInfo;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.netbeans.api.project.Project;
import org.netbeans.modules.cnd.api.model.CsmDeclaration;
import org.netbeans.modules.cnd.api.model.CsmFile;
import org.netbeans.modules.cnd.api.model.CsmModelAccessor;
import org.netbeans.modules.cnd.api.model.CsmProject;

        final String uniqueDecl = TestSupportUtils.getUniqueDeclarationName(testSuite);
        goToDeclaration(project, uniqueDecl);
    }


    /**
     * Executes a Go-To-Source to the given TestCase. If the jump target isn't
     * available, this method does nothing.
     *
     * <p>The execution is done in a task; the method doesn't block.</p>
     *
     * @param project   Project
     * @param testCase  TestCase
     */
    public static void goToSourceOfTestCase(Project project, CndTestCase testCase)
    {
        final String uniqueDecl = getUniqueDeclarationName(testCase);
        goToDeclaration(project, uniqueDecl);
    }


    /**
     * Executes a Go-To-Source to the given failure. If the jump
     * target isn't available, this method does nothing.
     *
     * <p>The execution is done in a task; the method doesn't block.</p>
     *
     * @param project       Project
     * @param failure       Failure
     */
    public static void goToSourceOfFailure(final Project project, final FailureInfo failure)