// 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;
            }
            else
            {
                LOGGER.log(Level.INFO, "No declaration found for {0}", uniqueDeclaration);
            }

            return Boolean.FALSE;
        });
    }


    /**
     * Returns the unique declaration name for the TestCase.
     *
     * @param testCase  TestCase
     * @return          Unique declaration name
     * @exception       IllegalArgumentException - if it's a TestCase of a
     *                  unsupported test framework.
     */
    static String getUniqueDeclarationName(CndTestCase testCase)
    {
        switch(testCase.getFramework())
        {
            case CPPUTEST:
                final String enabled = ( testCase.getStatus() == Status.SKIPPED ? "IGNORE" : "TEST_" );
                return "C:" +  enabled + testCase.getClassName()
                        + "_" + testCase.getName() + "_Test";
            case GOOGLETEST:
                return "C:" + removeGTestParameter(testCase.getClassName())
                        + "_" + testCase.getName() + "_Test";
// 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;

            }
            else
            {
                LOGGER.log(Level.INFO, "No declaration found for {0}", uniqueDeclaration);
            }

            return Boolean.FALSE;
        });
    }


    /**
     * Returns the unique declaration name for the TestCase.
     *
     * @param testCase  TestCase
     * @return          Unique declaration name
     * @exception       IllegalArgumentException - if it's a TestCase of a
     *                  unsupported test framework.
     */
    static String getUniqueDeclarationName(CndTestCase testCase)
    {
        switch(testCase.getFramework())
        {
            case CPPUTEST:
                final String enabled = ( testCase.getStatus() == Status.SKIPPED ? "IGNORE" : "TEST_" );
                return "C:" +  enabled + testCase.getClassName()
                        + "_" + testCase.getName() + "_Test";
            case GOOGLETEST:
                return "C:" + removeGTestParameter(testCase.getClassName())
                        + "_" + testCase.getName() + "_Test";
            case LIBUNITTESTCPP: