<?xml version="1.0" encoding="UTF-8"?>
<test-data
    xmlns="http://pmd.sourceforge.net/rule-tests"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sourceforge.net/rule-tests http://pmd.sourceforge.net/rule-tests_1_0_0.xsd">

    <test-code>
        <description>short</description>
        <rule-property name="minimum">10</rule-property>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
public class Foo {
    public void foo() {
        Integer x;
    }
}
        ]]></code>
    </test-code>

    <code-fragment id="long"><![CDATA[
public class Foo {
    public void bar() {
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
    }
}
    ]]></code-fragment>

    <test-code>
        <description>long</description>
        <rule-property name="minimum">10</rule-property>
        <expected-problems>1</expected-problems>
        <code-ref id="long"/>
    </test-code>

    <test-code>
        <description>long class - changed minimum</description>
        <rule-property name="minimum">2000</rule-property>
        <expected-problems>0</expected-problems>
        <code-ref id="long"/>
    </test-code>

    <test-code>
        <description>ignore test classes</description>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
@isTest
public class Foo {
    public void bar() {
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
    }
}
        ]]></code>
    </test-code>

    <test-code>
       <description>#1396 Public method with javadoc</description>
       <expected-problems>0</expected-problems>
       <code><![CDATA[
/**
 * Class comment
 */
public class SomeClass {

    /**
     * Comment
     */
    public void doSomething() {
        System.debug('hello world');
    }

    /** Field comment */
    private String field;
}
       ]]></code>
    </test-code>

    <test-code>
        <description>[apex] ExcessiveClassLength multiple warning on the same class #3142</description>
        <rule-property name="minimum">10</rule-property>
        <expected-problems>1</expected-problems>
        <expected-linenumbers>1</expected-linenumbers>
        <code><![CDATA[
public class FooSmaller {

    public class bar1 {
        public void m() {
            System.out.println('foo');
            System.out.println('foo');
        }
    }

    public class bar2 {
        public void m() {
            System.out.println('foo');
            System.out.println('foo');
        }
    }
}
        ]]></code>
    </test-code>
</test-data>
