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

COVERAGE SUMMARY FOR SOURCE FILE [TestRuntimeAnnotationsWithAnnotationsBase.java]

nameclass, %method, %block, %line, %
TestRuntimeAnnotationsWithAnnotationsBase.java100% (1/1)100% (7/7)100% (79/79)100% (21/21)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TestRuntimeAnnotationsWithAnnotationsBase100% (1/1)100% (7/7)100% (79/79)100% (21/21)
TestRuntimeAnnotationsWithAnnotationsBase (): void 100% (1/1)100% (3/3)100% (1/1)
doTestConstructorWithAnnotations (int): void 100% (1/1)100% (41/41)100% (8/8)
estimateTotalSize (int): int 100% (1/1)100% (7/7)100% (1/1)
testConstructorMultipleZeroAnnotations (): void 100% (1/1)100% (4/4)100% (2/2)
testConstructorWithASingleAnnotations (): void 100% (1/1)100% (4/4)100% (2/2)
testConstructorWithNoAnnotations (): void 100% (1/1)100% (4/4)100% (2/2)
testGetAttributeName (): void 100% (1/1)100% (16/16)100% (5/5)

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.impl;
34 
35import java.io.*;
36 
37public abstract class TestRuntimeAnnotationsWithAnnotationsBase extends TestAnnotationsBase {
38    private static final int TYPE_INDEX = 2;
39    private static final String TYPE = "Labc;";
40 
41    public void testConstructorWithNoAnnotations() throws Exception {
42        doTestConstructorWithAnnotations(0);
43    }
44 
45    public void testConstructorWithASingleAnnotations() throws Exception {
46        doTestConstructorWithAnnotations(1);
47    }
48 
49    public void testConstructorMultipleZeroAnnotations() throws Exception {
50        doTestConstructorWithAnnotations(2);
51    }
52 
53    public void testGetAttributeName() throws Exception {
54        expectReadAttributeLength(2);
55        expectReadNumAnnotations(0);
56 
57        RuntimeAnnotations_attribute sut = createSut();
58        assertEquals(getAttributeType().getAttributeName(), sut.getAttributeName());
59    }
60 
61    private void doTestConstructorWithAnnotations(int numAnnotations) throws IOException {
62        expectReadAttributeLength(estimateTotalSize(numAnnotations));
63        expectReadNumAnnotations(numAnnotations);
64        for (int i = 0; i < numAnnotations; i++) {
65            expectReadAnnotation(TYPE_INDEX, 0);
66            expectLookupUtf8(TYPE_INDEX, TYPE, "annotation " + i);
67        }
68 
69        RuntimeAnnotations_attribute sut = createSut();
70        assertEquals("Num annotations", numAnnotations, sut.getAnnotations().size());
71    }
72 
73    private int estimateTotalSize(int numAnnotations) {
74        return 2 + numAnnotations * estimateSizeOfAnnotation();
75    }
76 
77    protected abstract RuntimeAnnotations_attribute createSut() throws IOException;
78    protected abstract AttributeType getAttributeType();
79}

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