Skip to content

Commit 8284799

Browse files
Added unit tests for GraphDataGenerator
Removed method that wasn't needed
1 parent 18e2f1f commit 8284799

File tree

4 files changed

+38
-28
lines changed

4 files changed

+38
-28
lines changed

cost-benefit-calculator/src/test/java/org/hjug/cbc/CostBenefitCalculatorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public void tearDown() {
3434
repository.close();
3535
}
3636

37-
@Test//TODO: failing
37+
@Test
3838
public void testCostBenefitCalculation() throws IOException, GitAPIException, InterruptedException {
3939
String attributeHandler = "AttributeHandler.java";
4040
InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream(attributeHandler);

graph-data-generator/src/main/java/org/hjug/gdg/GraphDataGenerator.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,6 @@
88

99
public class GraphDataGenerator {
1010

11-
private final CostBenefitCalculator costBenefitCalculator;
12-
private final List<RankedDisharmony> calculateCostBenefitValues = new ArrayList<>();
13-
14-
public GraphDataGenerator(CostBenefitCalculator costBenefitCalculator) {
15-
this.costBenefitCalculator = costBenefitCalculator;
16-
}
17-
1811
public String getScriptStart() {
1912
return
2013
" google.charts.load('current', {'packages':['corechart']});\n" +
@@ -62,18 +55,10 @@ public String generateBubbleChartData(List<RankedDisharmony> rankedDisharmonies)
6255
chartData.append(",");
6356
chartData.append(rankedDisharmony.getWmc());
6457
chartData.append("]");
65-
if (i < rankedDisharmonies.size()) {
58+
if (i+1 < rankedDisharmonies.size()) {
6659
chartData.append(",");
6760
}
6861
}
6962
return chartData.toString();
7063
}
71-
72-
public List<RankedDisharmony> getRankedDisharmonies(String repositoryPath) {
73-
if(calculateCostBenefitValues.isEmpty()){
74-
calculateCostBenefitValues.addAll(costBenefitCalculator.calculateCostBenefitValues(repositoryPath));
75-
}
76-
77-
return calculateCostBenefitValues;
78-
}
7964
}

graph-data-generator/src/test/java/org/hjug/gdg/GraphDataGeneratorTest.java

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
11
package org.hjug.gdg;
22

33
import org.hjug.cbc.CostBenefitCalculator;
4+
import org.hjug.cbc.RankedDisharmony;
5+
import org.hjug.git.ScmLogInfo;
6+
import org.hjug.metrics.GodClass;
7+
import org.junit.Assert;
48
import org.junit.Before;
59
import org.junit.Test;
610

11+
import java.util.ArrayList;
12+
import java.util.List;
13+
714
import static org.junit.Assert.*;
815
import static org.mockito.Mockito.mock;
916

1017
public class GraphDataGeneratorTest {
1118

1219
private GraphDataGenerator graphDataGenerator;
13-
private CostBenefitCalculator costBenefitCalculator = mock(CostBenefitCalculator.class);
1420

1521
@Before
1622
public void setUp() {
17-
graphDataGenerator = new GraphDataGenerator(costBenefitCalculator);
23+
graphDataGenerator = new GraphDataGenerator();
1824
}
1925

2026
@Test
@@ -52,10 +58,31 @@ public void getScriptEnd() {
5258
}
5359

5460
@Test
55-
public void generateBubbleChartData() {
61+
public void generateBubbleChartDataOneDataPoint() {
62+
GodClass godClass = new GodClass("AttributeHandler.java",
63+
"org.apache.myfaces.tobago.facelets",
64+
"(WMC=77, ATFD=105, TCC=15.555999755859375)");
65+
godClass.setOverallRank(0);
66+
ScmLogInfo scmLogInfo = new ScmLogInfo("org/apache/myfaces/tobago/facelets/AttributeHandler.java", 1595275997, 0, 1);
67+
scmLogInfo.setChangePronenessRank(0);
68+
RankedDisharmony rankedDisharmony = new RankedDisharmony(godClass, scmLogInfo);
69+
70+
List<RankedDisharmony> rankedDisharmonies = new ArrayList<>();
71+
72+
rankedDisharmonies.add(rankedDisharmony);
73+
74+
StringBuilder chartData = new StringBuilder();
75+
chartData.append("[ 'ID', 'Effort', 'Change Proneness', 'Priority', 'Method Count'], ");
76+
chartData.append("['AttributeHandler.java',0,0,0,77]");
77+
78+
Assert.assertEquals(chartData.toString(), graphDataGenerator.generateBubbleChartData(rankedDisharmonies));
79+
5680
}
5781

5882
@Test
59-
public void getRankedDisharmonies() {
83+
public void generateBubbleChartDataTwoDataPoints() {
84+
StringBuilder chartData = new StringBuilder();
85+
chartData.append("[ 'ID', 'Effort', 'Change Proneness', 'Priority', 'Method Count'], ");
86+
6087
}
6188
}

refactor-first-maven-plugin/src/main/java/org/hjug/mavenreport/RefactorFirstMavenReport.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,7 @@ protected void executeReport(Locale locale) throws MavenReportException {
102102
}
103103

104104
CostBenefitCalculator costBenefitCalculator = new CostBenefitCalculator();
105-
GraphDataGenerator graphDataGenerator = new GraphDataGenerator(costBenefitCalculator);
106-
107-
List<RankedDisharmony> rankedDisharmonies =
108-
graphDataGenerator.getRankedDisharmonies(projectBaseDir);
105+
List<RankedDisharmony> rankedDisharmonies = costBenefitCalculator.calculateCostBenefitValues(projectBaseDir);
109106

110107
rankedDisharmonies.sort(Comparator.comparing(RankedDisharmony::getPriority).reversed());
111108

@@ -131,7 +128,7 @@ protected void executeReport(Locale locale) throws MavenReportException {
131128
mainSink.text("Refactor First Report for " + projectName + " " + projectVersion);
132129
mainSink.title_();
133130

134-
generateChart(graphDataGenerator, rankedDisharmonies, mainSink);
131+
generateChart(rankedDisharmonies, mainSink);
135132

136133
mainSink.head_();
137134

@@ -236,15 +233,16 @@ private void drawTableCell(String cellText, Sink mainSink) {
236233
/**
237234
* @See https://maven.apache.org/doxia/developers/sink.html#How_to_inject_javascript_code_into_HTML
238235
*/
239-
private void generateChart(GraphDataGenerator graphDataGenerator, List<RankedDisharmony> rankedDisharmonies, Sink mainSink) {
240-
236+
private void generateChart(List<RankedDisharmony> rankedDisharmonies, Sink mainSink) {
241237
SinkEventAttributeSet googleChartImport = new SinkEventAttributeSet();
242238
googleChartImport.addAttribute( SinkEventAttributes.TYPE, "text/javascript" );
243239
googleChartImport.addAttribute( SinkEventAttributes.SRC, "https://www.gstatic.com/charts/loader.js" );
244240

245241
String script = "script";
246242
mainSink.unknown(script, new Object[]{HtmlMarkup.TAG_TYPE_START}, googleChartImport);
247243
mainSink.unknown(script, new Object[]{HtmlMarkup.TAG_TYPE_END}, null);
244+
245+
GraphDataGenerator graphDataGenerator = new GraphDataGenerator();
248246
String scriptStart = graphDataGenerator.getScriptStart();
249247
String bubbleChartData = graphDataGenerator.generateBubbleChartData(rankedDisharmonies);
250248
String scriptEnd = graphDataGenerator.getScriptEnd();

0 commit comments

Comments
 (0)