1/******************************************************************************* 2 * Copyright (c) 2009, 2015 Mountainminds GmbH & Co. KG and Contributors 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * Marc R. Hoffmann - initial API and implementation 10 * 11 *******************************************************************************/ 12package org.jacoco.core.internal.analysis; 13 14import static org.junit.Assert.assertEquals; 15 16import org.jacoco.core.analysis.ICoverageNode; 17import org.junit.Test; 18 19/** 20 * Unit test for {@link MethodCoverageImpl}. 21 */ 22public class MethodCoverageImplTest { 23 24 @Test 25 public void testProperties() { 26 // Example: java.util.Collections.emptySet() 27 MethodCoverageImpl node = new MethodCoverageImpl("emptySet", 28 "()Ljava/util/Set;", 29 "<T:Ljava/lang/Object;>()Ljava/util/Set<TT;>;"); 30 assertEquals(ICoverageNode.ElementType.METHOD, node.getElementType()); 31 assertEquals("emptySet", node.getName()); 32 assertEquals("()Ljava/util/Set;", node.getDesc()); 33 assertEquals("<T:Ljava/lang/Object;>()Ljava/util/Set<TT;>;", 34 node.getSignature()); 35 } 36 37 @Test 38 public void testEmptyMethod() { 39 ICoverageNode node = new MethodCoverageImpl("sample", "()V", null); 40 41 assertEquals(CounterImpl.COUNTER_0_0, node.getInstructionCounter()); 42 assertEquals(CounterImpl.COUNTER_0_0, node.getBranchCounter()); 43 assertEquals(CounterImpl.COUNTER_0_0, node.getLineCounter()); 44 assertEquals(CounterImpl.COUNTER_0_0, node.getComplexityCounter()); 45 assertEquals(CounterImpl.COUNTER_0_0, node.getMethodCounter()); 46 assertEquals(CounterImpl.COUNTER_0_0, node.getClassCounter()); 47 } 48 49 @Test 50 public void testIncrementMissedInstructions() { 51 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 52 node.increment(CounterImpl.getInstance(25, 0), CounterImpl.COUNTER_0_0, 53 3); 54 node.incrementMethodCounter(); 55 assertEquals(CounterImpl.COUNTER_1_0, node.getMethodCounter()); 56 assertEquals(CounterImpl.COUNTER_1_0, node.getComplexityCounter()); 57 } 58 59 @Test 60 public void testIncrementCoveredInstructions() { 61 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 62 node.increment(CounterImpl.getInstance(12, 13), 63 CounterImpl.COUNTER_0_0, 3); 64 node.incrementMethodCounter(); 65 assertEquals(CounterImpl.COUNTER_0_1, node.getMethodCounter()); 66 assertEquals(CounterImpl.COUNTER_0_1, node.getComplexityCounter()); 67 } 68 69 @Test 70 public void testIncrementComplexity1() { 71 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 72 node.increment(CounterImpl.COUNTER_0_0, CounterImpl.COUNTER_0_0, 3); 73 assertEquals(CounterImpl.COUNTER_0_0, node.getComplexityCounter()); 74 } 75 76 @Test 77 public void testIncrementComplexity2() { 78 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 79 node.increment(CounterImpl.COUNTER_0_0, CounterImpl.getInstance(2, 0), 80 3); 81 assertEquals(CounterImpl.getInstance(1, 0), node.getComplexityCounter()); 82 } 83 84 @Test 85 public void testIncrementComplexity3() { 86 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 87 node.increment(CounterImpl.COUNTER_0_0, CounterImpl.getInstance(1, 1), 88 3); 89 assertEquals(CounterImpl.getInstance(1, 0), node.getComplexityCounter()); 90 } 91 92 @Test 93 public void testIncrementComplexity4() { 94 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 95 node.increment(CounterImpl.COUNTER_0_0, CounterImpl.getInstance(0, 2), 96 3); 97 assertEquals(CounterImpl.getInstance(0, 1), node.getComplexityCounter()); 98 } 99 100 @Test 101 public void testIncrementComplexity5() { 102 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 103 node.increment(CounterImpl.COUNTER_0_0, CounterImpl.getInstance(3, 0), 104 3); 105 assertEquals(CounterImpl.getInstance(2, 0), node.getComplexityCounter()); 106 } 107 108 @Test 109 public void testIncrementComplexity6() { 110 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 111 node.increment(CounterImpl.COUNTER_0_0, CounterImpl.getInstance(2, 1), 112 3); 113 assertEquals(CounterImpl.getInstance(2, 0), node.getComplexityCounter()); 114 } 115 116 @Test 117 public void testIncrementComplexity7() { 118 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 119 node.increment(CounterImpl.COUNTER_0_0, CounterImpl.getInstance(1, 2), 120 3); 121 assertEquals(CounterImpl.getInstance(1, 1), node.getComplexityCounter()); 122 } 123 124 @Test 125 public void testIncrementComplexity8() { 126 MethodCoverageImpl node = new MethodCoverageImpl("sample", "()V", null); 127 node.increment(CounterImpl.COUNTER_0_0, CounterImpl.getInstance(0, 3), 128 3); 129 assertEquals(CounterImpl.getInstance(0, 2), node.getComplexityCounter()); 130 } 131} 132