public void validate(ValidationContext validationContext) { if (!(purgeStart == null && purgeUpto == null)) { if (purgeUpto != null && (purgeStart == null || purgeStart == 0)) { errors().add(PURGE_START, "Error in artifact cleanup values. The trigger value is has to be specified when a goal is set"); } else if (purgeStart > purgeUpto) { errors().add(PURGE_START, String.format("Error in artifact cleanup values. The trigger value (%sGB) should be less than the goal (%sGB)", purgeStart, purgeUpto)); } } try { if (Double.parseDouble(jobTimeout) < 0) { errors().add(JOB_TIMEOUT, "Timeout cannot be a negative number as it represents number of minutes"); } } catch (NumberFormatException e) { errors().add(JOB_TIMEOUT, "Timeout should be a valid number as it represents number of minutes"); } }
@Test public void validate_shouldFailIfThePurgeStartIsBiggerThanPurgeUpto() { ServerConfig serverConfig = new ServerConfig("artifacts", new SecurityConfig(), 20.1, 20.05, "30"); serverConfig.validate(null); assertThat(serverConfig.errors().isEmpty(), is(false)); assertThat(serverConfig.errors().on(ServerConfig.PURGE_START), is("Error in artifact cleanup values. The trigger value (20.1GB) should be less than the goal (20.05GB)")); }
@Test public void validate_shouldFailIfThePurgeStartIs0SpecifiedButPurgeUptoIs() { ServerConfig serverConfig = new ServerConfig("artifacts", new SecurityConfig(), 0, 20.05, "30"); serverConfig.validate(null); assertThat(serverConfig.errors().isEmpty(), is(false)); assertThat(serverConfig.errors().on(ServerConfig.PURGE_START), is("Error in artifact cleanup values. The trigger value is has to be specified when a goal is set")); }
@Test public void shouldValidateThatTimeoutIsInvalidIfItsNotAValidNumber() { ServerConfig serverConfig = new ServerConfig("artifacts", new SecurityConfig(), 10, 20, "30M"); serverConfig.validate(null); assertThat(serverConfig.errors().isEmpty(), is(false)); assertThat(serverConfig.errors().on(ServerConfig.JOB_TIMEOUT), is("Timeout should be a valid number as it represents number of minutes")); }
@Test public void validate_shouldFailIfThePurgeStartIsNotSpecifiedButPurgeUptoIs() { ServerConfig serverConfig = new ServerConfig("artifacts", new SecurityConfig(), null, 20.05); serverConfig.validate(null); assertThat(serverConfig.errors().isEmpty(), is(false)); assertThat(serverConfig.errors().on(ServerConfig.PURGE_START), is("Error in artifact cleanup values. The trigger value is has to be specified when a goal is set")); }
@Test public void validate_shouldPassIfThePurgeStartAndPurgeUptoAreBothNotSet() { ServerConfig serverConfig = new ServerConfig("artifacts", new SecurityConfig()); serverConfig.validate(null); assertThat(serverConfig.errors().isEmpty(), is(true)); }
@Test public void shouldValidateThatTimeoutIsValidIfItsANumber() { ServerConfig serverConfig = new ServerConfig("artifacts", new SecurityConfig(), 10, 20, "30"); serverConfig.validate(null); assertThat(serverConfig.errors().isEmpty(), is(true)); }
@Test public void validate_shouldPassIfThePurgeStartIsSmallerThanPurgeUpto() { ServerConfig serverConfig = new ServerConfig("artifacts", new SecurityConfig(), 20.0, 20.05, "30"); serverConfig.validate(null); assertThat(serverConfig.errors().isEmpty(), is(true)); }