EMMA Coverage Report (generated Mon Nov 29 14:43:38 PST 2010)
[all classes][com.jeantessier.classreader]

COVERAGE SUMMARY FOR SOURCE FILE [TestEnclosingMethodAttribute.java]

nameclass, %method, %block, %line, %
TestEnclosingMethodAttribute.java100% (1/1)100% (5/5)100% (99/99)100% (19/19)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TestEnclosingMethodAttribute100% (1/1)100% (5/5)100% (99/99)100% (19/19)
<static initializer> 100% (1/1)100% (27/27)100% (2/2)
TestEnclosingMethodAttribute (): void 100% (1/1)100% (3/3)100% (1/1)
setUp (): void 100% (1/1)100% (18/18)100% (5/5)
testDoesNotHaveEnclosingMethodAttribute (): void 100% (1/1)100% (22/22)100% (4/4)
testHasEnclosingMethodAttribute (): void 100% (1/1)100% (29/29)100% (7/7)

1/*
2 *  Copyright (c) 2001-2009, Jean Tessier
3 *  All rights reserved.
4 *
5 *  Redistribution and use in source and binary forms, with or without
6 *  modification, are permitted provided that the following conditions
7 *  are met:
8 *
9 *      * Redistributions of source code must retain the above copyright
10 *        notice, this list of conditions and the following disclaimer.
11 *
12 *      * Redistributions in binary form must reproduce the above copyright
13 *        notice, this list of conditions and the following disclaimer in the
14 *        documentation and/or other materials provided with the distribution.
15 *
16 *      * Neither the name of Jean Tessier nor the names of his contributors
17 *        may be used to endorse or promote products derived from this software
18 *        without specific prior written permission.
19 *
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 *  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
24 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33package com.jeantessier.classreader;
34 
35import java.io.*;
36import java.util.*;
37 
38import junit.framework.*;
39 
40public class TestEnclosingMethodAttribute extends TestCase {
41    public static final String TEST_ENUM_CLASS = "testenum";
42    public static final String TEST_ENUM_VALUE1_CLASS = "testenum$1";
43    public static final String TEST_ENUM_FILENAME = "classes" + File.separator + TEST_ENUM_CLASS + ".class";
44    public static final String TEST_ENUM_VALUE1_FILENAME = "classes" + File.separator + TEST_ENUM_VALUE1_CLASS + ".class";
45 
46    private ClassfileLoader loader;
47 
48    protected void setUp() throws Exception {
49        super.setUp();
50 
51        loader = new AggregatingClassfileLoader();
52 
53        loader.load(Collections.singleton(TEST_ENUM_FILENAME));
54        loader.load(Collections.singleton(TEST_ENUM_VALUE1_FILENAME));
55    }
56 
57    public void testDoesNotHaveEnclosingMethodAttribute() {
58        Classfile enumClass = loader.getClassfile(TEST_ENUM_CLASS);
59 
60        for (Attribute_info attribute : enumClass.getAttributes()) {
61            assertFalse("EnclosingMethod attribute present", attribute instanceof EnclosingMethod_attribute);
62        }
63    }
64 
65    public void testHasEnclosingMethodAttribute() {
66        Classfile enumValue1Class = loader.getClassfile(TEST_ENUM_VALUE1_CLASS);
67 
68        EnclosingMethod_attribute enclosingMethodAttribute = null;
69        for (Attribute_info attribute : enumValue1Class.getAttributes()) {
70            if (attribute instanceof EnclosingMethod_attribute) {
71                enclosingMethodAttribute = (EnclosingMethod_attribute) attribute;
72 
73            }
74        }
75 
76        assertNotNull("EnclosingMethod attribute missing", enclosingMethodAttribute);
77    }
78}

[all classes][com.jeantessier.classreader]
EMMA 2.0.5312 (C) Vladimir Roubtsov