001 /* 002 * SonarQube, open source software quality management tool. 003 * Copyright (C) 2008-2014 SonarSource 004 * mailto:contact AT sonarsource DOT com 005 * 006 * SonarQube is free software; you can redistribute it and/or 007 * modify it under the terms of the GNU Lesser General Public 008 * License as published by the Free Software Foundation; either 009 * version 3 of the License, or (at your option) any later version. 010 * 011 * SonarQube is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 * Lesser General Public License for more details. 015 * 016 * You should have received a copy of the GNU Lesser General Public License 017 * along with this program; if not, write to the Free Software Foundation, 018 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 019 */ 020 package org.sonar.api.batch.sensor.test; 021 022 import org.sonar.api.batch.fs.InputFile; 023 024 import java.util.List; 025 026 /** 027 * Represents line coverage produced by a single test in a test file on a single main file. 028 * @since 5.0 029 */ 030 public interface TestCaseCoverage { 031 032 /** 033 * InputFile where this test is located. 034 */ 035 InputFile testFile(); 036 037 /** 038 * Set file where this test is located. Mandatory. 039 */ 040 TestCaseCoverage testFile(InputFile testFile); 041 042 /** 043 * Name of this test case. 044 */ 045 String testName(); 046 047 /** 048 * Set name of this test. Name is mandatory. 049 */ 050 TestCaseCoverage testName(String name); 051 052 /** 053 * InputFile covered by this test. 054 */ 055 InputFile coveredFile(); 056 057 /** 058 * Set file covered by this test. Mandatory. 059 */ 060 TestCaseCoverage cover(InputFile mainFile); 061 062 /** 063 * List of line numbers (1-based) covered by this test. 064 */ 065 List<Integer> coveredLines(); 066 067 /** 068 * Set list of line numbers (1-based) covered by this test. Mandatory. 069 */ 070 TestCaseCoverage onLines(List<Integer> lines); 071 072 /** 073 * Call this method only once when your are done with defining the test case coverage. 074 */ 075 void save(); 076 077 }