You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2015/03/07 13:07:01 UTC

[08/24] git commit: [flex-utilities] [refs/heads/feature/pmd-5.2-language-module] - Initial commit of the PMD language module for Apache Flex

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/UselessOverridenFunctionRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/UselessOverridenFunctionRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/UselessOverridenFunctionRuleTest.java
new file mode 100644
index 0000000..726096c
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/UselessOverridenFunctionRuleTest.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.maintanability;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class UselessOverridenFunctionRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("GoodComponent.as", new ViolationPosition[]
+                        {new ViolationPosition(26)}),
+                        new ExpectedViolation("AbstractRowData.as", new ViolationPosition[]
+                                {new ViolationPosition(126)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new UselessOverridenFunctionRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseDictionaryTypeRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseDictionaryTypeRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseDictionaryTypeRuleTest.java
new file mode 100644
index 0000000..04e53fc
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseDictionaryTypeRuleTest.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.maintanability.forbiddenttypes;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+import org.apache.flex.pmd.rules.maintanability.forbiddentypes.UseDictionaryTypeRule;
+
+public class UseDictionaryTypeRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("Responder.as", new ViolationPosition[]
+                        {new ViolationPosition(24)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new UseDictionaryTypeRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseGenericTypeRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseGenericTypeRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseGenericTypeRuleTest.java
new file mode 100644
index 0000000..02acc43
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseGenericTypeRuleTest.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.maintanability.forbiddenttypes;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+import org.apache.flex.pmd.rules.maintanability.forbiddentypes.UseGenericTypeRule;
+
+import java.util.List;
+
+public class UseGenericTypeRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("GenericType.as", new ViolationPosition[]
+                        {new ViolationPosition(27),
+                                new ViolationPosition(34),
+                                new ViolationPosition(23),
+                                new ViolationPosition(24),
+                                new ViolationPosition(25)})};
+    }
+
+    @Override
+    protected List<String> getIgnoreFiles() {
+        final List<String> files = super.getIgnoreFiles();
+
+        files.add("bug.FlexPMD181.as");
+        return files;
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new UseGenericTypeRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseObjectTypeRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseObjectTypeRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseObjectTypeRuleTest.java
new file mode 100644
index 0000000..a978fbc
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/maintanability/forbiddenttypes/UseObjectTypeRuleTest.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.maintanability.forbiddenttypes;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+import org.apache.flex.pmd.rules.maintanability.forbiddentypes.UseObjectTypeRule;
+
+public class UseObjectTypeRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("pseudo.look.IEditLook.as", new ViolationPosition[]
+                        {new ViolationPosition(22),
+                                new ViolationPosition(23)}),
+                        new ExpectedViolation("flexpmd114.a.Test.as", new ViolationPosition[]
+                                {new ViolationPosition(30)}),
+                        new ExpectedViolation("flexpmd114.b.Test.as", new ViolationPosition[]
+                                {new ViolationPosition(30)}),
+                        new ExpectedViolation("flexpmd114.c.Test.as", new ViolationPosition[]
+                                {new ViolationPosition(30)}),
+                        new ExpectedViolation("Looping.as", new ViolationPosition[]
+                                {new ViolationPosition(51)}),
+                        new ExpectedViolation("com.adobe.ac.ncss.ConfigProxy.as", new ViolationPosition[]
+                                {new ViolationPosition(30)}),
+                        new ExpectedViolation("Sorted.as", new ViolationPosition[]
+                                {new ViolationPosition(55)}),
+                        new ExpectedViolation("AbstractRowData.as", new ViolationPosition[]
+                                {new ViolationPosition(40)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new UseObjectTypeRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/multitouch/AvoidRollMouseEventRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/multitouch/AvoidRollMouseEventRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/multitouch/AvoidRollMouseEventRuleTest.java
new file mode 100644
index 0000000..9032669
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/multitouch/AvoidRollMouseEventRuleTest.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.multitouch;
+
+import org.apache.flex.pmd.rules.AbstractRegExpBasedRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractRegexpBasedRule;
+
+public class AvoidRollMouseEventRuleTest extends AbstractRegExpBasedRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {};
+    }
+
+    @Override
+    protected String[] getMatchableLines() {
+        return new String[]
+                {"mouseOut=\"onojverojr\"",
+                        "addEventListener( MouseEvent.MOUSE_OUT, onMousOut );",
+                        "mouseOver",
+                        "MOUSE_OVER",
+                        "rollOut",
+                        "ROLL_OUT",
+                        "rollOver",
+                        "ROLL_OVER"};
+    }
+
+    @Override
+    protected AbstractRegexpBasedRule getRegexpBasedRule() {
+        return new AvoidRollMouseEventRule();
+    }
+
+    @Override
+    protected String[] getUnmatchableLines() {
+        return new String[]
+                {"addEventListener( CHANGE, handleChange );",
+                        "addEventListener(CHANGE,handleChange);",
+                        "addEventListener( CHANGE,"};
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/multitouch/AvoidTooltipRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/multitouch/AvoidTooltipRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/multitouch/AvoidTooltipRuleTest.java
new file mode 100644
index 0000000..92efc63
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/multitouch/AvoidTooltipRuleTest.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.multitouch;
+
+import org.apache.flex.pmd.rules.AbstractRegExpBasedRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractRegexpBasedRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class AvoidTooltipRuleTest extends AbstractRegExpBasedRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("DeleteButtonRenderer.mxml", new ViolationPosition[]
+                        {new ViolationPosition(22)})};
+    }
+
+    @Override
+    protected String[] getMatchableLines() {
+        return new String[]
+                {"<mx:Button id=\"b1\" label=\"Click Me\" toolTip=\"This Button does nothing.\"/>",
+                        "myButton.toolTip = \"Click this new button to create another button.\"; "};
+    }
+
+    @Override
+    protected AbstractRegexpBasedRule getRegexpBasedRule() {
+        return new AvoidTooltipRule();
+    }
+
+    @Override
+    protected String[] getUnmatchableLines() {
+        return new String[]
+                {"addEventListener( CHANGE, handleChange );",
+                        "addEventListener(CHANGE,handleChange);",
+                        "addEventListener( CHANGE,"};
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/AbstractMoreThanEntryPointInMxmlRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/AbstractMoreThanEntryPointInMxmlRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/AbstractMoreThanEntryPointInMxmlRuleTest.java
new file mode 100644
index 0000000..0433392
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/AbstractMoreThanEntryPointInMxmlRuleTest.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.mxml;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public abstract class AbstractMoreThanEntryPointInMxmlRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("com.adobe.ac.ncss.mxml.IterationsList.mxml", iterationsListViolations()),
+                        new ExpectedViolation("com.adobe.ac.ncss.mxml.IterationsList2.mxml",
+                                iterationsList2Violations())};
+    }
+
+    abstract protected ViolationPosition[] iterationsList2Violations();
+
+    abstract protected ViolationPosition[] iterationsListViolations();
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/CodeBehindInMxmlRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/CodeBehindInMxmlRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/CodeBehindInMxmlRuleTest.java
new file mode 100644
index 0000000..cb0e366
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/CodeBehindInMxmlRuleTest.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.mxml;
+
+import org.apache.flex.pmd.rules.AbstractRegExpBasedRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractRegexpBasedRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class CodeBehindInMxmlRuleTest extends AbstractRegExpBasedRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("Main.mxml", new ViolationPosition[]
+                        {new ViolationPosition(44)})};
+    }
+
+    @Override
+    protected String[] getMatchableLines() {
+        return new String[]
+                {"<Script>",
+                        "<mx:Script",
+                        "<mx:Script source=",
+                        "<Script source="};
+    }
+
+    @Override
+    protected AbstractRegexpBasedRule getRegexpBasedRule() {
+        return new CodeBehindInMxmlRule();
+    }
+
+    @Override
+    protected String[] getUnmatchableLines() {
+        return new String[]
+                {"Script"};
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/MoreThanOneEntryPointInMxmlRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/MoreThanOneEntryPointInMxmlRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/MoreThanOneEntryPointInMxmlRuleTest.java
new file mode 100644
index 0000000..cde566b
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/MoreThanOneEntryPointInMxmlRuleTest.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.mxml;
+
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class MoreThanOneEntryPointInMxmlRuleTest extends AbstractMoreThanEntryPointInMxmlRuleTest {
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new MoreThanOneEntryPointInMxmlRule();
+    }
+
+    @Override
+    protected ViolationPosition[] iterationsList2Violations() {
+        return new ViolationPosition[]
+                {};
+    }
+
+    @Override
+    protected ViolationPosition[] iterationsListViolations() {
+        return new ViolationPosition[]
+                {new ViolationPosition(60)};
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/MoreThanTwoEntryPointsInMxmlRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/MoreThanTwoEntryPointsInMxmlRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/MoreThanTwoEntryPointsInMxmlRuleTest.java
new file mode 100644
index 0000000..d734d62
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/MoreThanTwoEntryPointsInMxmlRuleTest.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.mxml;
+
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class MoreThanTwoEntryPointsInMxmlRuleTest extends AbstractMoreThanEntryPointInMxmlRuleTest {
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new MoreThanTwoEntryPointsInMxmlRule();
+    }
+
+    @Override
+    protected ViolationPosition[] iterationsList2Violations() {
+        return new ViolationPosition[]
+                {};
+    }
+
+    @Override
+    protected ViolationPosition[] iterationsListViolations() {
+        return new ViolationPosition[]
+                {new ViolationPosition(60)};
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/OnlyOneScriptBlockPerMxmlRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/OnlyOneScriptBlockPerMxmlRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/OnlyOneScriptBlockPerMxmlRuleTest.java
new file mode 100644
index 0000000..dafb9b9
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/OnlyOneScriptBlockPerMxmlRuleTest.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.mxml;
+
+import org.apache.flex.pmd.rules.AbstractFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class OnlyOneScriptBlockPerMxmlRuleTest extends AbstractFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("Main.mxml", new ViolationPosition[]
+                        {new ViolationPosition(1)}),
+                        new ExpectedViolation("AbstractRowData.mxml", new ViolationPosition[]
+                                {new ViolationPosition(1)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new OnlyOneScriptBlockPerMxmlRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/StaticMethodInMxmlRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/StaticMethodInMxmlRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/StaticMethodInMxmlRuleTest.java
new file mode 100644
index 0000000..f2ae87b
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/StaticMethodInMxmlRuleTest.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.mxml;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class StaticMethodInMxmlRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("com.adobe.ac.ncss.mxml.IterationsList2.mxml", new ViolationPosition[]
+                        {new ViolationPosition(34)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new StaticMethodInMxmlRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/TooLongScriptBlockRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/TooLongScriptBlockRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/TooLongScriptBlockRuleTest.java
new file mode 100644
index 0000000..4e2db4a
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/TooLongScriptBlockRuleTest.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.mxml;
+
+import org.apache.flex.pmd.rules.AbstractFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class TooLongScriptBlockRuleTest extends AbstractFlexRuleTest {
+    @Override
+    public AbstractFlexRule getRule() {
+        return new TooLongScriptBlockRule();
+    }
+
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("bug.Duane.mxml", new ViolationPosition[]
+                        {new ViolationPosition(28, 128)}),
+                        new ExpectedViolation("bug.FlexPMD233b.mxml", new ViolationPosition[]
+                                {new ViolationPosition(49, 129)}),
+                        new ExpectedViolation("DeleteButtonRenderer.mxml", new ViolationPosition[]
+                                {new ViolationPosition(35, 89)}),
+                        new ExpectedViolation("com.adobe.ac.ncss.mxml.IterationsList.mxml",
+                                new ViolationPosition[]
+                                        {new ViolationPosition(26, 80)})};
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/TooManyStatesInMxmlRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/TooManyStatesInMxmlRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/TooManyStatesInMxmlRuleTest.java
new file mode 100644
index 0000000..beccae5
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/mxml/TooManyStatesInMxmlRuleTest.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.mxml;
+
+import org.apache.flex.pmd.rules.AbstractFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class TooManyStatesInMxmlRuleTest extends AbstractFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("DeleteButtonRenderer.mxml", new ViolationPosition[]
+                        {new ViolationPosition(1)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new TooManyStatesInMxmlRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/BooleanAttributeShouldContainIsHasRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/BooleanAttributeShouldContainIsHasRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/BooleanAttributeShouldContainIsHasRuleTest.java
new file mode 100644
index 0000000..69eeb26
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/BooleanAttributeShouldContainIsHasRuleTest.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+
+public class BooleanAttributeShouldContainIsHasRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new BooleanAttributeShouldContainIsHasRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/CapitalizeConstantsRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/CapitalizeConstantsRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/CapitalizeConstantsRuleTest.java
new file mode 100644
index 0000000..9f0c836
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/CapitalizeConstantsRuleTest.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class CapitalizeConstantsRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("AbstractRowData.as", new ViolationPosition[]
+                        {new ViolationPosition(33),
+                                new ViolationPosition(34)}),
+                        new ExpectedViolation("bug.FlexPMD233b.mxml", new ViolationPosition[]
+                                {new ViolationPosition(52)}),
+                        new ExpectedViolation("com.adobe.ac.ncss.ArrayVO.as", new ViolationPosition[]
+                                {new ViolationPosition(27),
+                                        new ViolationPosition(28)}),
+                        new ExpectedViolation("GenericType.as", new ViolationPosition[]
+                                {new ViolationPosition(24)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new CapitalizeConstantsRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/IncorrectClassCaseTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/IncorrectClassCaseTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/IncorrectClassCaseTest.java
new file mode 100644
index 0000000..392bf49
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/IncorrectClassCaseTest.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class IncorrectClassCaseTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("com.adobe.ac.foo.as", new ViolationPosition[]
+                        {new ViolationPosition(1, 22)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new IncorrectClassCase();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/IncorrectEventHandlerNameRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/IncorrectEventHandlerNameRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/IncorrectEventHandlerNameRuleTest.java
new file mode 100644
index 0000000..76f0521
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/IncorrectEventHandlerNameRuleTest.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class IncorrectEventHandlerNameRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("bug.Duane.mxml", new ViolationPosition[]
+                        {new ViolationPosition(57)}),
+                        new ExpectedViolation("com.adobe.ac.ncss.MyCairngormCommand.as", new ViolationPosition[]
+                                {new ViolationPosition(23)}),
+                        new ExpectedViolation("com.adobe.ac.ncss.NestedSwitch.as", new ViolationPosition[]
+                                {new ViolationPosition(23)}),
+                        new ExpectedViolation("parsley.InaccessibleMetaData.as", new ViolationPosition[]
+                                {new ViolationPosition(42),
+                                        new ViolationPosition(48)}),
+                        new ExpectedViolation("Sorted.as", new ViolationPosition[]
+                                {new ViolationPosition(59)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new IncorrectEventHandlerNameRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/InterfaceNamingRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/InterfaceNamingRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/InterfaceNamingRuleTest.java
new file mode 100644
index 0000000..9cc4cf3
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/InterfaceNamingRuleTest.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class InterfaceNamingRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("Color.as", new ViolationPosition[]
+                        {new ViolationPosition(23)}),
+                        new ExpectedViolation("src.fw.data.request.ResultListener.as", new ViolationPosition[]
+                                {new ViolationPosition(21)}),
+                        new ExpectedViolation("org.as3commons.concurrency.thread.Color.as",
+                                new ViolationPosition[]
+                                        {new ViolationPosition(21)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new InterfaceNamingRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/PackageCaseRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/PackageCaseRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/PackageCaseRuleTest.java
new file mode 100644
index 0000000..d00947a
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/PackageCaseRuleTest.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+import org.testng.annotations.Test;
+
+@Test(enabled = false) //This test requires test-data that was not donated to Apache
+public class PackageCaseRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("cairngorm.FatController.as", new ViolationPosition[]
+                        {new ViolationPosition(-1)}),
+                        new ExpectedViolation("FTestError10.IpStack1.as", new ViolationPosition[]
+                                {new ViolationPosition(-1)}),
+                        new ExpectedViolation("FTestError10.IpStack2.as", new ViolationPosition[]
+                                {new ViolationPosition(-1)}),
+                        new ExpectedViolation("src.epg.StateExit_AS2.as", new ViolationPosition[]
+                                {new ViolationPosition(-1)}),
+                        new ExpectedViolation("src.fw.data.request.ResultListener.as", new ViolationPosition[]
+                                {new ViolationPosition(-1)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new PackageCaseRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/PropertyHiddenByLocalVariableRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/PropertyHiddenByLocalVariableRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/PropertyHiddenByLocalVariableRuleTest.java
new file mode 100644
index 0000000..3bdaab4
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/PropertyHiddenByLocalVariableRuleTest.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class PropertyHiddenByLocalVariableRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("com.adobe.ac.ncss.VoidConstructor.as", new ViolationPosition[]
+                        {new ViolationPosition(28)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new PropertyHiddenByLocalVariableRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/TooLongFunctionNameRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/TooLongFunctionNameRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/TooLongFunctionNameRuleTest.java
new file mode 100644
index 0000000..22a225a
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/TooLongFunctionNameRuleTest.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class TooLongFunctionNameRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("flexunit.RulesetTest.as", new ViolationPosition[]
+                        {new ViolationPosition(41)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new TooLongFunctionNameRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/TooShortVariableRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/TooShortVariableRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/TooShortVariableRuleTest.java
new file mode 100644
index 0000000..2e25c30
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/TooShortVariableRuleTest.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractRegExpBasedRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractRegexpBasedRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class TooShortVariableRuleTest extends AbstractRegExpBasedRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("bug.Duane.mxml", new ViolationPosition[]
+                        {new ViolationPosition(54)}),
+                        new ExpectedViolation("bug.FlexPMD233b.mxml", new ViolationPosition[]
+                                {new ViolationPosition(88)}),
+                        new ExpectedViolation("flexpmd114.a.Test.as", new ViolationPosition[]
+                                {new ViolationPosition(30)}),
+                        new ExpectedViolation("flexpmd114.b.Test.as", new ViolationPosition[]
+                                {new ViolationPosition(30)}),
+                        new ExpectedViolation("flexpmd114.c.Test.as", new ViolationPosition[]
+                                {new ViolationPosition(30)}),
+                        new ExpectedViolation("PngEncoder.as", new ViolationPosition[]
+                                {new ViolationPosition(30)}),
+                        new ExpectedViolation("Looping.as", new ViolationPosition[]
+                                {new ViolationPosition(51)})};
+    }
+
+    @Override
+    protected String[] getMatchableLines() {
+        return new String[]
+                {"  var toto : int = 0;",
+                        "  var i : int = 0;",
+                        "var ii : int = 0;",
+                        "var iii : int = 0;",
+                        "for ( var i : int = 0; i < 10; i++ ){}"};
+    }
+
+    @Override
+    protected AbstractRegexpBasedRule getRegexpBasedRule() {
+        return new TooShortVariableRule();
+    }
+
+    @Override
+    protected String[] getUnmatchableLines() {
+        return new String[]
+                {"function lala() : Number",
+                        "lala();"};
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/VariableNameEndingWithNumericRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/VariableNameEndingWithNumericRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/VariableNameEndingWithNumericRuleTest.java
new file mode 100644
index 0000000..18bd66a
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/VariableNameEndingWithNumericRuleTest.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+import org.testng.annotations.Test;
+
+import java.util.List;
+
+@Test(enabled = false) // This test requires test-data that was not donated to Apache
+public class VariableNameEndingWithNumericRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("PngEncoder.as", new ViolationPosition[]
+                        {new ViolationPosition(388),
+                                new ViolationPosition(424),
+                                new ViolationPosition(442)}),
+                        new ExpectedViolation("src.epg.StateExit_AS2.as", new ViolationPosition[]
+                                {new ViolationPosition(62),
+                                        new ViolationPosition(63),
+                                        new ViolationPosition(69),
+                                        new ViolationPosition(70),
+                                        new ViolationPosition(71),
+                                        new ViolationPosition(60)}),
+                        new ExpectedViolation("com.adobe.ac.ncss.BigModel.as", new ViolationPosition[]
+                                {new ViolationPosition(82),
+                                        new ViolationPosition(86),
+                                        new ViolationPosition(90),
+                                        new ViolationPosition(94),
+                                        new ViolationPosition(98)}),
+                        new ExpectedViolation("cairngorm.LightController.as", new ViolationPosition[]
+                                {new ViolationPosition(115),
+                                        new ViolationPosition(134),
+                                        new ViolationPosition(153),
+                                        new ViolationPosition(172),
+                                        new ViolationPosition(191)}),
+                        new ExpectedViolation("com.adobe.ac.ncss.BigImporterModel.as", new ViolationPosition[]
+                                {new ViolationPosition(62),
+                                        new ViolationPosition(62),
+                                        new ViolationPosition(62),
+                                        new ViolationPosition(62),
+                                        new ViolationPosition(62),
+                                        new ViolationPosition(64)})};
+    }
+
+    @Override
+    protected List<String> getIgnoreFiles() {
+        final List<String> files = super.getIgnoreFiles();
+
+        files.add("bug.FlexPMD181.as");
+        return files;
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new VariableNameEndingWithNumericRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/WronglyNamedVariableRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/WronglyNamedVariableRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/WronglyNamedVariableRuleTest.java
new file mode 100644
index 0000000..808fc38
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/naming/WronglyNamedVariableRuleTest.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.naming;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class WronglyNamedVariableRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("PngEncoder.as", new ViolationPosition[]
+                        {new ViolationPosition(323),
+                                new ViolationPosition(324),
+                                new ViolationPosition(325),
+                                new ViolationPosition(326),
+                                new ViolationPosition(327),
+                                new ViolationPosition(328),
+                                new ViolationPosition(329),
+                                new ViolationPosition(330),
+                                new ViolationPosition(333),
+                                new ViolationPosition(334),
+                                new ViolationPosition(335),
+                                new ViolationPosition(336),
+                                new ViolationPosition(370),
+                                new ViolationPosition(371),
+                                new ViolationPosition(372),
+                                new ViolationPosition(373),
+                                new ViolationPosition(374),
+                                new ViolationPosition(375),
+                                new ViolationPosition(376),
+                                new ViolationPosition(377),
+                                new ViolationPosition(380),
+                                new ViolationPosition(381),
+                                new ViolationPosition(382),
+                                new ViolationPosition(383)}),
+                        new ExpectedViolation("GenericType.as", new ViolationPosition[]
+                                {new ViolationPosition(32),
+                                        new ViolationPosition(34)}),
+                        new ExpectedViolation("com.adobe.ac.ncss.ConfigProxy.as", new ViolationPosition[]
+                                {new ViolationPosition(30)}),
+                        new ExpectedViolation("bug.FlexPMD141a.mxml", new ViolationPosition[]
+                                {new ViolationPosition(26)}),
+                        new ExpectedViolation("AbstractRowData.as", new ViolationPosition[]
+                                {new ViolationPosition(40)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new WronglyNamedVariableRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parameterized/ParameterizedRegExpBasedRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parameterized/ParameterizedRegExpBasedRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parameterized/ParameterizedRegExpBasedRuleTest.java
new file mode 100644
index 0000000..9ba3f30
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parameterized/ParameterizedRegExpBasedRuleTest.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.parameterized;
+
+import org.apache.flex.pmd.rules.AbstractFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.maintanability.AlertShowRuleTest;
+
+public class ParameterizedRegExpBasedRuleTest extends AbstractFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return AlertShowRuleTest.VIOLATING_FILES;
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        final ParameterizedRegExpBasedRule rule = new ParameterizedRegExpBasedRule();
+
+
+        rule.setProperty(ParameterizedRegExpBasedRule.VIOLATION_SUPPRESS_REGEX_DESCRIPTOR,
+                ".*\\s+Alert.show\\(.*");
+        rule.compilePattern();
+        return rule;
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parameterized/ParameterizedRegExpBasedRuleWithEmptyRegexpTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parameterized/ParameterizedRegExpBasedRuleWithEmptyRegexpTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parameterized/ParameterizedRegExpBasedRuleWithEmptyRegexpTest.java
new file mode 100644
index 0000000..15e65a6
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parameterized/ParameterizedRegExpBasedRuleWithEmptyRegexpTest.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.parameterized;
+
+import org.apache.flex.pmd.rules.AbstractFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+
+public class ParameterizedRegExpBasedRuleWithEmptyRegexpTest extends AbstractFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new ParameterizedRegExpBasedRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/InaccessibleMetaDataRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/InaccessibleMetaDataRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/InaccessibleMetaDataRuleTest.java
new file mode 100644
index 0000000..445f201
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/InaccessibleMetaDataRuleTest.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.parsley;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class InaccessibleMetaDataRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("parsley.InaccessibleMetaData.as", new ViolationPosition[]
+                        {new ViolationPosition(26, 26),
+                                new ViolationPosition(35, 35),
+                                new ViolationPosition(47, 47)}),
+                        new ExpectedViolation("parsley.InaccessibleMetaDataInternalClass.as",
+                                new ViolationPosition[]
+                                        {new ViolationPosition(21, 21)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new InaccessibleMetaDataRule();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MessageInterceptorSignatureRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MessageInterceptorSignatureRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MessageInterceptorSignatureRuleTest.java
new file mode 100644
index 0000000..6f7e279
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MessageInterceptorSignatureRuleTest.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.parsley;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class MessageInterceptorSignatureRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("parsley.MessageInterceptorSignature.as", new ViolationPosition[]
+                        {new ViolationPosition(30, 30),
+                                new ViolationPosition(35, 35),
+                                new ViolationPosition(41, 41)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new MessageInterceptorSignatureRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MismatchedManagedEventRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MismatchedManagedEventRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MismatchedManagedEventRuleTest.java
new file mode 100644
index 0000000..248f637
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MismatchedManagedEventRuleTest.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.parsley;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class MismatchedManagedEventRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("parsley.MismatchedManagedEvent.as", new ViolationPosition[]
+                        {new ViolationPosition(24, 24)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new MismatchedManagedEventRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MisplacedMetaDataRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MisplacedMetaDataRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MisplacedMetaDataRuleTest.java
new file mode 100644
index 0000000..157d031
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/MisplacedMetaDataRuleTest.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.parsley;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class MisplacedMetaDataRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("parsley.MisplacedMetaData.as", new ViolationPosition[]
+                        {new ViolationPosition(36, 36),
+                                new ViolationPosition(37, 37),
+                                new ViolationPosition(38, 38),
+                                new ViolationPosition(39, 39),
+                                new ViolationPosition(40, 40),
+                                new ViolationPosition(41, 41),
+                                new ViolationPosition(42, 42),
+                                new ViolationPosition(43, 43),
+                                new ViolationPosition(46, 46),
+                                new ViolationPosition(51, 51),
+                                new ViolationPosition(52, 52),
+                                new ViolationPosition(53, 53),
+                                new ViolationPosition(54, 54),
+                                new ViolationPosition(55, 55),
+                                new ViolationPosition(56, 56),
+                                new ViolationPosition(57, 57),
+                                new ViolationPosition(58, 58),
+                                new ViolationPosition(21, 21),
+                                new ViolationPosition(22, 22),
+                                new ViolationPosition(23, 23),
+                                new ViolationPosition(24, 24),
+                                new ViolationPosition(25, 25),
+                                new ViolationPosition(26, 26),
+                                new ViolationPosition(27, 27),
+                                new ViolationPosition(28, 28),
+                                new ViolationPosition(29, 29),
+                                new ViolationPosition(30, 30),
+                                new ViolationPosition(31, 31),
+                                new ViolationPosition(32, 32),
+                                new ViolationPosition(33, 33),})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new MisplacedMetaDataRule();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ff722d6f/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/RedundantMessageHandlerTypeAttributeRuleTest.java
----------------------------------------------------------------------
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/RedundantMessageHandlerTypeAttributeRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/RedundantMessageHandlerTypeAttributeRuleTest.java
new file mode 100644
index 0000000..15d0419
--- /dev/null
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/parsley/RedundantMessageHandlerTypeAttributeRuleTest.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.pmd.rules.parsley;
+
+import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
+import org.apache.flex.pmd.rules.core.AbstractFlexRule;
+import org.apache.flex.pmd.rules.core.ViolationPosition;
+
+public class RedundantMessageHandlerTypeAttributeRuleTest extends AbstractAstFlexRuleTest {
+    @Override
+    protected ExpectedViolation[] getExpectedViolatingFiles() {
+        return new ExpectedViolation[]
+                {new ExpectedViolation("parsley.RedundantMessageHandlerTypeAttribute.as", new ViolationPosition[]
+                        {new ViolationPosition(29, 29)})};
+    }
+
+    @Override
+    protected AbstractFlexRule getRule() {
+        return new RedundantMessageHandlerTypeAttributeRule();
+    }
+}