You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2019/06/28 17:21:52 UTC
[groovy] 05/08: Add test cases for IndexedProperty, Bindable,
and Vetoable
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit ddb8e04b77a47a8c6e201c776e6d2df03657b054
Author: aalmiray <aa...@gmail.com>
AuthorDate: Tue Jun 11 19:21:06 2019 +0200
Add test cases for IndexedProperty, Bindable, and Vetoable
---
.../groovy/generated/BindableGeneratedTest.groovy | 98 ++++++++++++++++++++++
.../generated/IndexedPropertyGeneratedTest.groovy | 67 +++++++++++++++
.../groovy/generated/SortableGeneratedTest.groovy | 1 -
.../groovy/generated/VetoableGeneratedTest.groovy | 98 ++++++++++++++++++++++
4 files changed, 263 insertions(+), 1 deletion(-)
diff --git a/src/test/groovy/generated/BindableGeneratedTest.groovy b/src/test/groovy/generated/BindableGeneratedTest.groovy
new file mode 100644
index 0000000..db2655d
--- /dev/null
+++ b/src/test/groovy/generated/BindableGeneratedTest.groovy
@@ -0,0 +1,98 @@
+package groovy.generated
+
+import groovy.transform.CompileStatic
+import org.junit.Test
+
+import java.beans.PropertyChangeListener
+
+@CompileStatic
+class BindableGeneratedTest extends AbstractGeneratedAstTestCase {
+ final Class<?> implicitBindable = parseClass('''@groovy.beans.Bindable
+ class ClassUnderTest {
+ String name
+ int age
+ }''')
+
+ final Class<?> explicitBindable = parseClass('''@groovy.beans.Bindable
+ class ClassUnderTest {
+ String name
+ int age
+ void addPropertyChangeListener(java.beans.PropertyChangeListener l) { }
+ void addPropertyChangeListener(String p, java.beans.PropertyChangeListener l) { }
+ void removePropertyChangeListener(java.beans.PropertyChangeListener l) { }
+ void removePropertyChangeListener(String p, java.beans.PropertyChangeListener l) { }
+ void firePropertyChange(String p, Object o, Object n) { }
+ java.beans.PropertyChangeListener[] getPropertyChangeListeners() { null }
+ java.beans.PropertyChangeListener[] getPropertyChangeListeners(String p) { null }
+ }''')
+
+ @Test
+ void test_addPropertyChangeListener_is_annotated() {
+ assertMethodIsAnnotated(implicitBindable, 'addPropertyChangeListener', PropertyChangeListener)
+ }
+
+ @Test
+ void test_addPropertyChangeListener2_is_annotated() {
+ assertMethodIsAnnotated(implicitBindable, 'addPropertyChangeListener', String, PropertyChangeListener)
+ }
+
+ @Test
+ void test_removePropertyChangeListener_is_annotated() {
+ assertMethodIsAnnotated(implicitBindable, 'removePropertyChangeListener', PropertyChangeListener)
+ }
+
+ @Test
+ void test_removePropertyChangeListener2_is_annotated() {
+ assertMethodIsAnnotated(implicitBindable, 'removePropertyChangeListener', String, PropertyChangeListener)
+ }
+
+ @Test
+ void test_firePropertyChange_is_annotated() {
+ assertMethodIsAnnotated(implicitBindable, 'firePropertyChange', String, Object, Object)
+ }
+
+ @Test
+ void test_getPropertyChangeListeners_is_annotated() {
+ assertExactMethodIsAnnotated(implicitBindable, 'getPropertyChangeListeners', PropertyChangeListener[].class)
+ }
+
+ @Test
+ void test_getPropertyChangeListeners2_is_annotated() {
+ assertExactMethodIsAnnotated(implicitBindable, 'getPropertyChangeListeners', PropertyChangeListener[].class, String)
+ }
+
+ @Test
+ void test_explicit_addPropertyChangeListener_is_annotated() {
+ assertMethodIsNotAnnotated(explicitBindable, 'addPropertyChangeListener', PropertyChangeListener)
+ }
+
+ @Test
+ void test_explicit_addPropertyChangeListener2_is_annotated() {
+ assertMethodIsNotAnnotated(explicitBindable, 'addPropertyChangeListener', String, PropertyChangeListener)
+ }
+
+ @Test
+ void test_explicit_removePropertyChangeListener_is_annotated() {
+ assertMethodIsNotAnnotated(explicitBindable, 'removePropertyChangeListener', PropertyChangeListener)
+ }
+
+ @Test
+ void test_explicit_removePropertyChangeListener2_is_annotated() {
+ assertMethodIsNotAnnotated(explicitBindable, 'removePropertyChangeListener', String, PropertyChangeListener)
+ }
+
+ @Test
+ void test_explicit_firePropertyChange_is_annotated() {
+ assertMethodIsNotAnnotated(explicitBindable, 'firePropertyChange', String, Object, Object)
+ }
+
+ @Test
+ void test_explicit_getPropertyChangeListeners_is_annotated() {
+ assertExactMethodIsNotAnnotated(explicitBindable, 'getPropertyChangeListeners', PropertyChangeListener[].class)
+ }
+
+ @Test
+ void test_explicit_getPropertyChangeListeners2_is_annotated() {
+ assertExactMethodIsNotAnnotated(explicitBindable, 'getPropertyChangeListeners', PropertyChangeListener[].class, String)
+ }
+}
\ No newline at end of file
diff --git a/src/test/groovy/generated/IndexedPropertyGeneratedTest.groovy b/src/test/groovy/generated/IndexedPropertyGeneratedTest.groovy
new file mode 100644
index 0000000..ae049d4
--- /dev/null
+++ b/src/test/groovy/generated/IndexedPropertyGeneratedTest.groovy
@@ -0,0 +1,67 @@
+package groovy.generated
+
+import groovy.transform.CompileStatic
+import org.junit.Test
+
+@CompileStatic
+class IndexedPropertyGeneratedTest extends AbstractGeneratedAstTestCase {
+ final Class<?> implicitIndex = parseClass('''import groovy.transform.IndexedProperty
+ class ClassUnderTest {
+ @IndexedProperty
+ String[] names
+ @IndexedProperty
+ List ages
+ }''')
+
+ final Class<?> explicitIndex = parseClass('''import groovy.transform.IndexedProperty
+ class ClassUnderTest {
+ @IndexedProperty
+ String[] names
+ @IndexedProperty
+ List ages
+ String getNames(int idx) { null }
+ Object getAges(int idx) { null }
+ void setNames(int idx, String n) { }
+ void setAges(int idx, Object o) { }
+ }''')
+
+ @Test
+ void test_implicit_getNames_is_annotated() {
+ assertExactMethodIsAnnotated(implicitIndex, 'getNames', String, int.class)
+ }
+
+ @Test
+ void test_implicit_getAges_is_annotated() {
+ assertExactMethodIsAnnotated(implicitIndex, 'getAges', Object, int.class)
+ }
+
+ @Test
+ void test_implicit_setNames_is_annotated() {
+ assertMethodIsAnnotated(implicitIndex, 'setNames', int.class, String)
+ }
+
+ @Test
+ void test_implicit_setAges_is_annotated() {
+ assertMethodIsAnnotated(implicitIndex, 'setAges', int.class, Object)
+ }
+
+ @Test
+ void test_explicit_getNames_is_annotated() {
+ assertExactMethodIsNotAnnotated(explicitIndex, 'getNames', String, int.class)
+ }
+
+ @Test
+ void test_explicit_getAges_is_annotated() {
+ assertExactMethodIsNotAnnotated(explicitIndex, 'getAges', Object, int.class)
+ }
+
+ @Test
+ void test_explicit_setNames_is_annotated() {
+ assertMethodIsNotAnnotated(explicitIndex, 'setNames', int.class, String)
+ }
+
+ @Test
+ void test_explicit_setAges_is_annotated() {
+ assertMethodIsNotAnnotated(explicitIndex, 'setAges', int.class, Object)
+ }
+}
\ No newline at end of file
diff --git a/src/test/groovy/generated/SortableGeneratedTest.groovy b/src/test/groovy/generated/SortableGeneratedTest.groovy
index 409795c..958dc50 100644
--- a/src/test/groovy/generated/SortableGeneratedTest.groovy
+++ b/src/test/groovy/generated/SortableGeneratedTest.groovy
@@ -39,7 +39,6 @@ class SortableGeneratedTest extends AbstractGeneratedAstTestCase {
assertMethodIsAnnotated(implicitSortable, 'comparatorByAge')
}
-
@Test
void test_explicit_compareTo_is_not_annotated() {
assertMethodIsNotAnnotated(explicitSortable, 'compareTo', Object)
diff --git a/src/test/groovy/generated/VetoableGeneratedTest.groovy b/src/test/groovy/generated/VetoableGeneratedTest.groovy
new file mode 100644
index 0000000..8bb099d
--- /dev/null
+++ b/src/test/groovy/generated/VetoableGeneratedTest.groovy
@@ -0,0 +1,98 @@
+package groovy.generated
+
+import groovy.transform.CompileStatic
+import org.junit.Test
+
+import java.beans.VetoableChangeListener
+
+@CompileStatic
+class VetoableGeneratedTest extends AbstractGeneratedAstTestCase {
+ final Class<?> implicitVetoable = parseClass('''@groovy.beans.Vetoable
+ class ClassUnderTest {
+ String name
+ int age
+ }''')
+
+ final Class<?> explicitVetoable = parseClass('''@groovy.beans.Vetoable
+ class ClassUnderTest {
+ String name
+ int age
+ void addVetoableChangeListener(java.beans.VetoableChangeListener l) { }
+ void addVetoableChangeListener(String p, java.beans.VetoableChangeListener l) { }
+ void removeVetoableChangeListener(java.beans.VetoableChangeListener l) { }
+ void removeVetoableChangeListener(String p, java.beans.VetoableChangeListener l) { }
+ void fireVetoableChange(String p, Object o, Object n) throws java.beans.PropertyVetoException { }
+ java.beans.VetoableChangeListener[] getVetoableChangeListeners() { null }
+ java.beans.VetoableChangeListener[] getVetoableChangeListeners(String p) { null }
+ }''')
+
+ @Test
+ void test_addVetoableChangeListener_is_annotated() {
+ assertMethodIsAnnotated(implicitVetoable, 'addVetoableChangeListener', VetoableChangeListener)
+ }
+
+ @Test
+ void test_addVetoableChangeListener2_is_annotated() {
+ assertMethodIsAnnotated(implicitVetoable, 'addVetoableChangeListener', String, VetoableChangeListener)
+ }
+
+ @Test
+ void test_removeVetoableChangeListener_is_annotated() {
+ assertMethodIsAnnotated(implicitVetoable, 'removeVetoableChangeListener', VetoableChangeListener)
+ }
+
+ @Test
+ void test_removeVetoableChangeListener2_is_annotated() {
+ assertMethodIsAnnotated(implicitVetoable, 'removeVetoableChangeListener', String, VetoableChangeListener)
+ }
+
+ @Test
+ void test_fireVetoableChange_is_annotated() {
+ assertMethodIsAnnotated(implicitVetoable, 'fireVetoableChange', String, Object, Object)
+ }
+
+ @Test
+ void test_getVetoableChangeListeners_is_annotated() {
+ assertExactMethodIsAnnotated(implicitVetoable, 'getVetoableChangeListeners', VetoableChangeListener[].class)
+ }
+
+ @Test
+ void test_getVetoableChangeListeners2_is_annotated() {
+ assertExactMethodIsAnnotated(implicitVetoable, 'getVetoableChangeListeners', VetoableChangeListener[].class, String)
+ }
+
+ @Test
+ void test_explicit_addVetoableChangeListener_is_annotated() {
+ assertMethodIsNotAnnotated(explicitVetoable, 'addVetoableChangeListener', VetoableChangeListener)
+ }
+
+ @Test
+ void test_explicit_addVetoableChangeListener2_is_annotated() {
+ assertMethodIsNotAnnotated(explicitVetoable, 'addVetoableChangeListener', String, VetoableChangeListener)
+ }
+
+ @Test
+ void test_explicit_removeVetoableChangeListener_is_annotated() {
+ assertMethodIsNotAnnotated(explicitVetoable, 'removeVetoableChangeListener', VetoableChangeListener)
+ }
+
+ @Test
+ void test_explicit_removeVetoableChangeListener2_is_annotated() {
+ assertMethodIsNotAnnotated(explicitVetoable, 'removeVetoableChangeListener', String, VetoableChangeListener)
+ }
+
+ @Test
+ void test_explicit_fireVetoableChange_is_annotated() {
+ assertMethodIsNotAnnotated(explicitVetoable, 'fireVetoableChange', String, Object, Object)
+ }
+
+ @Test
+ void test_explicit_getVetoableChangeListeners_is_annotated() {
+ assertExactMethodIsNotAnnotated(explicitVetoable, 'getVetoableChangeListeners', VetoableChangeListener[].class)
+ }
+
+ @Test
+ void test_explicit_getVetoableChangeListeners2_is_annotated() {
+ assertExactMethodIsNotAnnotated(explicitVetoable, 'getVetoableChangeListeners', VetoableChangeListener[].class, String)
+ }
+}
\ No newline at end of file