"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 }