Skip to content

Commit

Permalink
config.repairIntensity cannot be 0, add test
Browse files Browse the repository at this point in the history
  • Loading branch information
mattnworb committed Feb 23, 2015
1 parent fc19a30 commit 419621f
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import java.util.Map;

import javax.validation.Valid;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

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

@JsonProperty
@NotNull
@Min(0)
@DecimalMin(value = "0", inclusive=false)
@Max(1)
private Double repairIntensity;

Expand Down Expand Up @@ -108,6 +108,10 @@ public DataSourceFactory getDataSourceFactory() {
return database;
}

public void setDataSourceFactory(DataSourceFactory database) {
this.database = database;
}

public int getHangingRepairTimeoutMins() {
return hangingRepairTimeoutMins;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.spotify.reaper;

import org.apache.cassandra.repair.RepairParallelism;
import org.hibernate.validator.HibernateValidator;
import org.junit.Before;
import org.junit.Test;

import javax.validation.Validation;
import javax.validation.Validator;

import io.dropwizard.db.DataSourceFactory;

import static org.fest.assertions.api.Assertions.assertThat;

public class ReaperApplicationConfigurationTest {

private final Validator validator = Validation
.byProvider(HibernateValidator.class)
.configure()
.buildValidatorFactory()
.getValidator();

private final ReaperApplicationConfiguration config = new ReaperApplicationConfiguration();

@Before
public void setUp() {
//create a valid config
DataSourceFactory dataSourceFactory = new DataSourceFactory();
dataSourceFactory.setDriverClass("org.postgresql.Driver");
dataSourceFactory.setUrl("jdbc:postgresql://db.example.com/db-prod");
dataSourceFactory.setUser("user");
config.setDataSourceFactory(dataSourceFactory);
config.setHangingRepairTimeoutMins(1);
config.setRepairParallelism(RepairParallelism.DATACENTER_AWARE);
config.setRepairRunThreadCount(1);
config.setSegmentCount(1);
config.setStorageType("foo");
}

@Test
public void testRepairIntensity() {
config.setRepairIntensity(-0.1);
assertThat(validator.validate(config)).hasSize(1);

config.setRepairIntensity(0);
assertThat(validator.validate(config)).hasSize(1);

config.setRepairIntensity(1);
assertThat(validator.validate(config)).hasSize(0);
}
}

0 comments on commit 419621f

Please sign in to comment.