"Fossies" - the Fresh Open Source Software Archive

Member "groovy-4.0.12/src/test/groovy/generated/AbstractGeneratedAstTestCase.groovy" (31 Jan 1980, 3566 Bytes) of package /linux/misc/apache-groovy-src-4.0.12.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Java source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /*
    2  *  Licensed to the Apache Software Foundation (ASF) under one
    3  *  or more contributor license agreements.  See the NOTICE file
    4  *  distributed with this work for additional information
    5  *  regarding copyright ownership.  The ASF licenses this file
    6  *  to you under the Apache License, Version 2.0 (the
    7  *  "License"); you may not use this file except in compliance
    8  *  with the License.  You may obtain a copy of the License at
    9  *
   10  *    http://www.apache.org/licenses/LICENSE-2.0
   11  *
   12  *  Unless required by applicable law or agreed to in writing,
   13  *  software distributed under the License is distributed on an
   14  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   15  *  KIND, either express or implied.  See the License for the
   16  *  specific language governing permissions and limitations
   17  *  under the License.
   18  */
   19 package groovy.generated
   20 
   21 import groovy.transform.CompileStatic
   22 import groovy.transform.Generated
   23 
   24 import java.lang.reflect.Constructor
   25 import java.lang.reflect.Method
   26 
   27 @CompileStatic
   28 abstract class AbstractGeneratedAstTestCase {
   29     protected final Class<?> parseClass(String str) {
   30         new GroovyClassLoader().parseClass(str)
   31     }
   32 
   33     protected final void assertClassIsAnnotated(Class<?> classUnderTest) {
   34         assert classUnderTest.getAnnotation(Generated)
   35     }
   36 
   37     protected final void assertClassIsNotAnnotated(Class<?> classUnderTest) {
   38         assert !classUnderTest.getAnnotation(Generated)
   39     }
   40 
   41     protected final void assertConstructorIsAnnotated(Class<?> classUnderTest, Class... paramTypes) {
   42         assert findConstructor(classUnderTest, paramTypes).getAnnotation(Generated)
   43     }
   44 
   45     protected final void assertConstructorIsNotAnnotated(Class<?> classUnderTest, Class... paramTypes) {
   46         assert !findConstructor(classUnderTest, paramTypes).getAnnotation(Generated)
   47     }
   48 
   49     protected final void assertMethodIsAnnotated(Class<?> classUnderTest, String methodName, Class... paramTypes) {
   50         assert findMethod(classUnderTest, methodName, paramTypes).getAnnotation(Generated)
   51     }
   52 
   53     protected final void assertMethodIsNotAnnotated(Class<?> classUnderTest, String methodName, Class... paramTypes) {
   54         assert !findMethod(classUnderTest, methodName, paramTypes).getAnnotation(Generated)
   55     }
   56 
   57     protected final void assertExactMethodIsAnnotated(Class<?> classUnderTest, String methodName, Class returnType, Class... paramTypes) {
   58         assert findExactMethod(classUnderTest, methodName, returnType, paramTypes).getAnnotation(Generated)
   59     }
   60 
   61     protected final void assertExactMethodIsNotAnnotated(Class<?> classUnderTest, String methodName, Class returnType, Class... paramTypes) {
   62         assert !findExactMethod(classUnderTest, methodName, returnType, paramTypes).getAnnotation(Generated)
   63     }
   64 
   65     private Method findMethod(Class<?> classUnderTest, String methodName, Class... paramTypes) {
   66         Method target = classUnderTest.getMethod(methodName, paramTypes)
   67         assert target
   68         target
   69     }
   70 
   71     private Method findExactMethod(Class<?> classUnderTest, String methodName, Class returnType, Class... paramTypes) {
   72         Method target = classUnderTest.methods.find { m ->
   73             m.name == methodName &&
   74                 m.returnType == returnType &&
   75                 Arrays.equals(m.parameterTypes, paramTypes)
   76         }
   77         assert target
   78         target
   79     }
   80 
   81     private Constructor findConstructor(Class<?> classUnderTest, Class... paramTypes) {
   82         Constructor target = classUnderTest.getConstructor(paramTypes)
   83         assert target
   84         target
   85     }
   86 }