Home | History | Annotate | Download | only in analysis
      1 /*******************************************************************************
      2  * Copyright (c) 2009, 2018 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  *******************************************************************************/
     12 package org.jacoco.core.internal.analysis;
     13 
     14 import static org.junit.Assert.assertEquals;
     15 
     16 import org.jacoco.core.analysis.ICoverageNode;
     17 import org.junit.Test;
     18 
     19 /**
     20  * Unit test for {@link MethodCoverageImpl}.
     21  */
     22 public 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