aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/org/aspectj/systemtest/ajc161/OptimizedAnnotationFieldBinding.java
blob: 72cba14e2f7ddb6eabdb526caff96518ce5228df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/* *******************************************************************
 * Copyright (c) 2008 Contributors
 * All rights reserved. 
 * This program and the accompanying materials are made available 
 * under the terms of the Eclipse Public License v1.0 
 * which accompanies this distribution and is available at 
 * http://www.eclipse.org/legal/epl-v10.html 
 *  
 *  Contributors
 *  Andy Clement 
 * ******************************************************************/
package org.aspectj.systemtest.ajc161;
 
import java.io.File;

import junit.framework.Test;

import org.aspectj.testing.XMLBasedAjcTestCase;

/**
 * Optimising Annotation Field Binding - better code gen for the cases where the user just wants a field from the
 * annotation on a method but not the whole annotation.
 * 
 */
public class OptimizedAnnotationFieldBinding extends XMLBasedAjcTestCase {
	
    public void testCaseOne_Syntax() {
        runTest("case one - syntax");
    }
    public void testCaseTwo_NoSuchField() {
        runTest("case two - no such field");
    }
    public void testCaseThree_Ambiguous() {
        runTest("case three - ambiguous");
    }
    public void testCaseFour_DefaultValue() {
        runTest("case four - default value");
    }
    public void testCaseFive_NotAnEnum_CompilerLimitation() {
        runTest("case five - not an enum - compiler limitation");
    }
    public void testCaseSeven_AnnosInPackagesOne() {
        runTest("case seven - annos in packages one");
    }
    public void testCaseEight_AnnosInPackagesTwo() {
        runTest("case eight - annos in packages two");
    }
    public void testCaseNine_AllInDifferentPackages() {
        runTest("case nine - everything in different packages");
    }
    public void testCaseTen_BindingMultipleThings() {
        runTest("case ten - binding multiple things");
    }
    public void testCaseEleven_BindingMultipleAnnotationFields() {
        runTest("case eleven - binding multiple annotation fields");
    }
    public void testCaseTwelve_BindingAnnoAndAnnoValue() {
        runTest("case twelve - binding anno and anno value");
    }
    
	/////////////////////////////////////////
	public static Test suite() {
	    return XMLBasedAjcTestCase.loadSuite(OptimizedAnnotationFieldBinding.class);
	}

	protected File getSpecFile() {
	    return new File("../tests/src/org/aspectj/systemtest/ajc161/annotationFieldBinding.xml");
	}
}