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

COVERAGE SUMMARY FOR SOURCE FILE [TestRuntimeParameterAnnotationsWithAnnotationsBase.java]

nameclass, %method, %block, %line, %
TestRuntimeParameterAnnotationsWithAnnotationsBase.java100% (1/1)100% (8/8)100% (157/157)100% (26/26)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TestRuntimeParameterAnnotationsWithAnnotationsBase100% (1/1)100% (8/8)100% (157/157)100% (26/26)
TestRuntimeParameterAnnotationsWithAnnotationsBase (): void 100% (1/1)100% (3/3)100% (1/1)
doTestConstructorWithParametersWithAnnotations (int []): void 100% (1/1)100% (66/66)100% (9/9)
estimateSizeOfParameter (int): int 100% (1/1)100% (7/7)100% (1/1)
estimateTotalSize (int []): int 100% (1/1)100% (26/26)100% (4/4)
testConstructorWithASingleParameterWithNoAnnotations (): void 100% (1/1)100% (13/13)100% (2/2)
testConstructorWithMultipleParameterEachWithNoAnnotations (): void 100% (1/1)100% (17/17)100% (2/2)
testConstructorWithNoParameters (): void 100% (1/1)100% (9/9)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 TestRuntimeParameterAnnotationsWithAnnotationsBase extends TestAnnotationsBase {
38    public void testConstructorWithNoParameters() throws Exception {
39        doTestConstructorWithParametersWithAnnotations(0);
40    }
41 
42    public void testConstructorWithASingleParameterWithNoAnnotations() throws Exception {
43        doTestConstructorWithParametersWithAnnotations(0, 0);
44    }
45 
46    public void testConstructorWithMultipleParameterEachWithNoAnnotations() throws Exception {
47        doTestConstructorWithParametersWithAnnotations(0, 0, 0);
48    }
49 
50    public void testGetAttributeName() throws Exception {
51        expectReadAttributeLength(2);
52        expectReadNumParameters(0);
53 
54        RuntimeParameterAnnotations_attribute sut = createSut();
55        assertEquals(getAttributeType().getAttributeName(), sut.getAttributeName());
56    }
57 
58    private void doTestConstructorWithParametersWithAnnotations(int ... numAnnotationsPerParameter) throws IOException {
59        expectReadAttributeLength(estimateTotalSize(numAnnotationsPerParameter));
60        expectReadNumParameters(numAnnotationsPerParameter.length);
61        for (int numAnnotations : numAnnotationsPerParameter) {
62            expectReadNumAnnotations(numAnnotations);
63        }
64 
65        RuntimeParameterAnnotations_attribute sut = createSut();
66        assertEquals("Num parameters", numAnnotationsPerParameter.length, sut.getParameterAnnotations().size());
67        for (int parameter = 0; parameter < numAnnotationsPerParameter.length; parameter++) {
68            assertEquals("New annotations on parameter " + parameter, numAnnotationsPerParameter[parameter], sut.getParameterAnnotations().get(parameter).getAnnotations().size());
69        }
70    }
71 
72    private int estimateTotalSize(int ... numAnnotationsPerParameter) {
73        int result = 1;
74 
75        for (int numAnnotations : numAnnotationsPerParameter) {
76            result += estimateSizeOfParameter(numAnnotations);
77        }
78 
79        return result;
80    }
81 
82    private int estimateSizeOfParameter(int numAnnotations) {
83        return 2 + numAnnotations * estimateSizeOfAnnotation();
84    }
85 
86    protected abstract RuntimeParameterAnnotations_attribute createSut() throws IOException;
87    protected abstract AttributeType getAttributeType();
88}

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