Skip to content

Commit 419621f

Browse files
committed
config.repairIntensity cannot be 0, add test
1 parent fc19a30 commit 419621f

File tree

2 files changed

+57
-2
lines changed

2 files changed

+57
-2
lines changed

src/main/java/com/spotify/reaper/ReaperApplicationConfiguration.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import java.util.Map;
2222

2323
import javax.validation.Valid;
24+
import javax.validation.constraints.DecimalMin;
2425
import javax.validation.constraints.Max;
25-
import javax.validation.constraints.Min;
2626
import javax.validation.constraints.NotNull;
2727

2828
import io.dropwizard.Configuration;
@@ -40,7 +40,7 @@ public class ReaperApplicationConfiguration extends Configuration {
4040

4141
@JsonProperty
4242
@NotNull
43-
@Min(0)
43+
@DecimalMin(value = "0", inclusive=false)
4444
@Max(1)
4545
private Double repairIntensity;
4646

@@ -108,6 +108,10 @@ public DataSourceFactory getDataSourceFactory() {
108108
return database;
109109
}
110110

111+
public void setDataSourceFactory(DataSourceFactory database) {
112+
this.database = database;
113+
}
114+
111115
public int getHangingRepairTimeoutMins() {
112116
return hangingRepairTimeoutMins;
113117
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.spotify.reaper;
2+
3+
import org.apache.cassandra.repair.RepairParallelism;
4+
import org.hibernate.validator.HibernateValidator;
5+
import org.junit.Before;
6+
import org.junit.Test;
7+
8+
import javax.validation.Validation;
9+
import javax.validation.Validator;
10+
11+
import io.dropwizard.db.DataSourceFactory;
12+
13+
import static org.fest.assertions.api.Assertions.assertThat;
14+
15+
public class ReaperApplicationConfigurationTest {
16+
17+
private final Validator validator = Validation
18+
.byProvider(HibernateValidator.class)
19+
.configure()
20+
.buildValidatorFactory()
21+
.getValidator();
22+
23+
private final ReaperApplicationConfiguration config = new ReaperApplicationConfiguration();
24+
25+
@Before
26+
public void setUp() {
27+
//create a valid config
28+
DataSourceFactory dataSourceFactory = new DataSourceFactory();
29+
dataSourceFactory.setDriverClass("org.postgresql.Driver");
30+
dataSourceFactory.setUrl("jdbc:postgresql://db.example.com/db-prod");
31+
dataSourceFactory.setUser("user");
32+
config.setDataSourceFactory(dataSourceFactory);
33+
config.setHangingRepairTimeoutMins(1);
34+
config.setRepairParallelism(RepairParallelism.DATACENTER_AWARE);
35+
config.setRepairRunThreadCount(1);
36+
config.setSegmentCount(1);
37+
config.setStorageType("foo");
38+
}
39+
40+
@Test
41+
public void testRepairIntensity() {
42+
config.setRepairIntensity(-0.1);
43+
assertThat(validator.validate(config)).hasSize(1);
44+
45+
config.setRepairIntensity(0);
46+
assertThat(validator.validate(config)).hasSize(1);
47+
48+
config.setRepairIntensity(1);
49+
assertThat(validator.validate(config)).hasSize(0);
50+
}
51+
}

0 commit comments

Comments
 (0)