"Fossies" - the Fresh Open Source Software Archive

Member "groovy-4.0.12/subprojects/groovy-contracts/src/test/groovy/org/apache/groovy/contracts/tests/other/AbstractClassTests.groovy" (31 Jan 1980, 2005 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 org.apache.groovy.contracts.tests.other
   20 
   21 import org.apache.groovy.contracts.PreconditionViolation
   22 import org.apache.groovy.contracts.tests.basic.BaseTestClass
   23 import org.junit.Test
   24 
   25 class AbstractClassTests extends BaseTestClass {
   26 
   27     def source1 = '''
   28 @Contracted
   29 package tests
   30 
   31 import groovy.contracts.*
   32 
   33 @Invariant({ property != null })
   34 abstract class A {
   35 
   36   def property
   37 
   38   def A(def someValue)  {
   39     property = someValue
   40   }
   41 
   42   @Requires({ param != null })
   43   def some_operation(def param)  {
   44     // noop
   45   }
   46 }
   47 '''
   48 
   49     def source2 = '''
   50 @Contracted
   51 package tests
   52 
   53 import groovy.contracts.*
   54 
   55 class B extends A  {
   56 
   57   def B(def someValue)  {
   58     super(someValue)
   59   }
   60 
   61   def some_operation(def param)  {
   62     // noop
   63   }
   64 }
   65 '''
   66 
   67     @Test
   68     void inherited_class_invariant() {
   69         add_class_to_classpath source1
   70 
   71         shouldFail AssertionError, {
   72             create_instance_of(source2, [null])
   73         }
   74     }
   75 
   76     @Test
   77     void inherited_precondition() {
   78         add_class_to_classpath source1
   79 
   80         def bInstance = create_instance_of(source2, ["test"])
   81 
   82         shouldFail PreconditionViolation, {
   83             bInstance.some_operation null
   84         }
   85     }
   86 
   87 }