Skip to content

Commit 5617917

Browse files
committed
Cleanup
1 parent 53692d9 commit 5617917

File tree

1 file changed

+45
-88
lines changed

1 file changed

+45
-88
lines changed

chartjs-java-model/src/test/java/software/xdev/chartjs/model/BasicChartTest.java

Lines changed: 45 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import java.math.BigDecimal;
1919
import java.util.Map;
20-
import java.util.Set;
20+
import java.util.function.Function;
2121
import java.util.function.Supplier;
2222
import java.util.stream.Collectors;
2323
import java.util.stream.IntStream;
@@ -49,6 +49,7 @@
4949
import software.xdev.chartjs.model.datapoint.ScatterDataPoint;
5050
import software.xdev.chartjs.model.dataset.BarDataset;
5151
import software.xdev.chartjs.model.dataset.BubbleDataset;
52+
import software.xdev.chartjs.model.dataset.Dataset;
5253
import software.xdev.chartjs.model.dataset.DoughnutDataset;
5354
import software.xdev.chartjs.model.dataset.LineDataset;
5455
import software.xdev.chartjs.model.dataset.PieDataset;
@@ -89,120 +90,50 @@ class BasicChartTest extends AbstractChartTest
8990

9091
static Stream<Arguments> basicTest()
9192
{
92-
final Set<Map.Entry<String, BigDecimal>> defaultDataEntrySet = IntStream.rangeClosed(0, 3)
93+
final Map<String, BigDecimal> defaultData = IntStream.rangeClosed(0, 3)
9394
.boxed()
94-
.collect(Collectors.toMap(String::valueOf, BigDecimal::valueOf))
95-
.entrySet();
95+
.collect(Collectors.toMap(String::valueOf, BigDecimal::valueOf));
9696

9797
return Stream.of(
9898
new ArgumentDTO<>(
9999
BarChart::new,
100100
BarOptions::new,
101-
() -> {
102-
final BarDataset dataset = new BarDataset();
103-
final BarData data = new BarData().addDataset(dataset);
104-
for(final Map.Entry<String, BigDecimal> entry : defaultDataEntrySet)
105-
{
106-
data.addLabel(entry.getKey());
107-
dataset.addData(entry.getValue());
108-
}
109-
return data;
110-
}),
101+
createData(defaultData, BarData::new, BarDataset::new)),
111102
new ArgumentDTO<>(
112103
BubbleChart::new,
113104
BubbleOptions::new,
114-
() -> {
115-
final BubbleDataset dataset = new BubbleDataset();
116-
final BubbleData data = new BubbleData().addDataset(dataset);
117-
for(final Map.Entry<String, BigDecimal> entry : defaultDataEntrySet)
118-
{
119-
data.addLabel(entry.getKey());
120-
dataset.addData(
121-
new BubbleDataPoint(
122-
entry.getValue(),
123-
entry.getValue(),
124-
entry.getValue().multiply(BigDecimal.TEN)));
125-
}
126-
return data;
127-
}),
105+
createData(defaultData, BubbleData::new, BubbleDataset::new, entry -> new BubbleDataPoint(
106+
entry.getValue(),
107+
entry.getValue(),
108+
entry.getValue().multiply(BigDecimal.TEN)))),
128109
new ArgumentDTO<>(
129110
DoughnutChart::new,
130111
DoughnutOptions::new,
131-
() -> {
132-
final DoughnutDataset dataset = new DoughnutDataset();
133-
final DoughnutData data = new DoughnutData().addDataset(dataset);
134-
for(final Map.Entry<String, BigDecimal> entry : defaultDataEntrySet)
135-
{
136-
data.addLabel(entry.getKey());
137-
dataset.addData(entry.getValue());
138-
}
139-
return data;
140-
}),
112+
createData(defaultData, DoughnutData::new, DoughnutDataset::new)),
141113
new ArgumentDTO<>(
142114
LineChart::new,
143115
LineOptions::new,
144-
() -> {
145-
final LineDataset dataset = new LineDataset();
146-
final LineData data = new LineData().addDataset(dataset);
147-
for(final Map.Entry<String, BigDecimal> entry : defaultDataEntrySet)
148-
{
149-
data.addLabel(entry.getKey());
150-
dataset.addData(entry.getValue());
151-
}
152-
return data;
153-
}),
116+
createData(defaultData, LineData::new, LineDataset::new)),
154117
new ArgumentDTO<>(
155118
PieChart::new,
156119
PieOptions::new,
157-
() -> {
158-
final PieDataset dataset = new PieDataset();
159-
final PieData data = new PieData().addDataset(dataset);
160-
for(final Map.Entry<String, BigDecimal> entry : defaultDataEntrySet)
161-
{
162-
data.addLabel(entry.getKey());
163-
dataset.addData(entry.getValue());
164-
}
165-
return data;
166-
}),
120+
createData(defaultData, PieData::new, PieDataset::new)),
167121
new ArgumentDTO<>(
168122
PolarChart::new,
169123
PolarOptions::new,
170-
() -> {
171-
final PolarDataset dataset = new PolarDataset();
172-
final PolarData data = new PolarData().addDataset(dataset);
173-
for(final Map.Entry<String, BigDecimal> entry : defaultDataEntrySet)
174-
{
175-
data.addLabel(entry.getKey());
176-
dataset.addData(entry.getValue());
177-
}
178-
return data;
179-
}),
124+
createData(defaultData, PolarData::new, PolarDataset::new)),
180125
new ArgumentDTO<>(
181126
RadarChart::new,
182127
RadarOptions::new,
183-
() -> {
184-
final RadarDataset dataset = new RadarDataset();
185-
final RadarData data = new RadarData().addDataset(dataset);
186-
for(final Map.Entry<String, BigDecimal> entry : defaultDataEntrySet)
187-
{
188-
data.addLabel(entry.getKey());
189-
dataset.addData(entry.getValue());
190-
}
191-
return data;
192-
}),
128+
createData(defaultData, RadarData::new, RadarDataset::new)),
193129
new ArgumentDTO<>(
194130
ScatterChart::new,
195131
LineOptions::new,
196-
() -> {
197-
final ScatterDataset dataset = new ScatterDataset();
198-
final ScatterData data = new ScatterData().addDataset(dataset);
199-
for(final Map.Entry<String, BigDecimal> entry : defaultDataEntrySet)
200-
{
201-
data.addLabel(entry.getKey());
202-
dataset.addData(new ScatterDataPoint(entry.getValue(), entry.getValue()));
203-
}
204-
return data;
205-
})
132+
createData(
133+
defaultData,
134+
ScatterData::new,
135+
ScatterDataset::new,
136+
entry -> new ScatterDataPoint(entry.getValue(), entry.getValue())))
206137
).map(dto ->
207138
Arguments.of(
208139
dto.chartSupplier().get().getClass().getSimpleName(),
@@ -211,6 +142,32 @@ static Stream<Arguments> basicTest()
211142
dto.dataSupplier().get()));
212143
}
213144

145+
private static <D extends Data<D, S>, S extends Dataset<S, BigDecimal>> Supplier<D> createData(
146+
final Map<String, BigDecimal> defaultDataMap,
147+
final Supplier<D> dataSupplier,
148+
final Supplier<S> dataSetSupplier)
149+
{
150+
return createData(defaultDataMap, dataSupplier, dataSetSupplier, Map.Entry::getValue);
151+
}
152+
153+
private static <D extends Data<D, S>, S extends Dataset<S, O>, O> Supplier<D> createData(
154+
final Map<String, BigDecimal> defaultDataMap,
155+
final Supplier<D> dataSupplier,
156+
final Supplier<S> dataSetSupplier,
157+
final Function<Map.Entry<String, BigDecimal>, O> addDataFunc)
158+
{
159+
return () -> {
160+
final S dataset = dataSetSupplier.get();
161+
final D data = dataSupplier.get().addDataset(dataset);
162+
for(final Map.Entry<String, BigDecimal> entry : defaultDataMap.entrySet())
163+
{
164+
data.addLabel(entry.getKey());
165+
dataset.addData(addDataFunc.apply(entry));
166+
}
167+
return data;
168+
};
169+
}
170+
214171
public static class ArgumentDTO<O extends Options<O, ?>, D extends Data<D, ?>>
215172
{
216173
private final Supplier<Chart<?, O, D>> chartSupplier;

0 commit comments

Comments
 (0)