*/
package org.sonar.batch.issue;
-import org.apache.commons.lang.time.DateUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.sonar.api.utils.Duration;
import org.sonar.api.utils.MessageException;
-import java.util.Calendar;
import java.util.Date;
import static org.assertj.core.api.Assertions.assertThat;
ArgumentCaptor<DefaultIssue> argument = ArgumentCaptor.forClass(DefaultIssue.class);
verify(cache).put(argument.capture());
assertThat(argument.getValue().severity()).isEqualTo(Severity.CRITICAL);
- assertThat(argument.getValue().creationDate()).isEqualTo(DateUtils.truncate(analysisDate, Calendar.SECOND));
+ assertThat(argument.getValue().creationDate()).isEqualTo(analysisDate);
}
@Test
ArgumentCaptor<DefaultIssue> argument = ArgumentCaptor.forClass(DefaultIssue.class);
verify(cache).put(argument.capture());
assertThat(argument.getValue().severity()).isEqualTo(Severity.INFO);
- assertThat(argument.getValue().creationDate()).isEqualTo(DateUtils.truncate(analysisDate, Calendar.SECOND));
+ assertThat(argument.getValue().creationDate()).isEqualTo(analysisDate);
}
@Test
import com.google.common.collect.Collections2;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.time.DateUtils;
import org.sonar.api.BatchComponent;
import org.sonar.api.ServerComponent;
import org.sonar.api.issue.ActionPlan;
import javax.annotation.Nullable;
-import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
}
public void setCloseDate(DefaultIssue issue, @Nullable Date d, IssueChangeContext context) {
- Date dateWithoutMilliseconds = d == null ? null : DateUtils.truncate(d, Calendar.SECOND);
- if (!Objects.equal(dateWithoutMilliseconds, issue.closeDate())) {
+ if (!Objects.equal(d, issue.closeDate())) {
issue.setCloseDate(d);
issue.setUpdateDate(context.date());
issue.setChanged(true);
import org.sonar.core.rule.RuleDto;
import java.util.Arrays;
-import java.util.Calendar;
import java.util.Date;
import static org.assertj.core.api.Assertions.assertThat;
assertThat(issue.assignee()).isEqualTo("perceval");
assertThat(issue.attribute("key")).isEqualTo("value");
assertThat(issue.authorLogin()).isEqualTo("pierre");
- assertThat(issue.creationDate()).isEqualTo(DateUtils.truncate(createdAt, Calendar.SECOND));
- assertThat(issue.updateDate()).isEqualTo(DateUtils.truncate(updatedAt, Calendar.SECOND));
- assertThat(issue.closeDate()).isEqualTo(DateUtils.truncate(closedAt, Calendar.SECOND));
+ assertThat(issue.creationDate()).isEqualTo(createdAt);
+ assertThat(issue.updateDate()).isEqualTo(updatedAt);
+ assertThat(issue.closeDate()).isEqualTo(closedAt);
assertThat(issue.isNew()).isFalse();
}
import com.google.common.base.Function;
import com.google.common.collect.Collections2;
-import org.apache.commons.lang.time.DateUtils;
import org.junit.Test;
import org.sonar.api.issue.DefaultTransitions;
import org.sonar.api.issue.Issue;
import javax.annotation.Nullable;
-import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.List;
}
}
-
@Test
public void do_automatic_transition() throws Exception {
workflow.start();
assertThat(issue.resolution()).isEqualTo(Issue.RESOLUTION_FIXED);
assertThat(issue.status()).isEqualTo(Issue.STATUS_CLOSED);
assertThat(issue.closeDate()).isNotNull();
- assertThat(issue.updateDate()).isEqualTo(DateUtils.truncate(now, Calendar.SECOND));
+ assertThat(issue.updateDate()).isEqualTo(now);
}
@Test
assertThat(issue.resolution()).isEqualTo(Issue.RESOLUTION_FIXED);
assertThat(issue.status()).isEqualTo(Issue.STATUS_CLOSED);
assertThat(issue.closeDate()).isNotNull();
- assertThat(issue.updateDate()).isEqualTo(DateUtils.truncate(now, Calendar.SECOND));
+ assertThat(issue.updateDate()).isEqualTo(now);
}
@Test
assertThat(issue.resolution()).isEqualTo(Issue.RESOLUTION_FIXED);
assertThat(issue.status()).isEqualTo(Issue.STATUS_CLOSED);
assertThat(issue.closeDate()).isNotNull();
- assertThat(issue.updateDate()).isEqualTo(DateUtils.truncate(now, Calendar.SECOND));
+ assertThat(issue.updateDate()).isEqualTo(now);
}
@Test
assertThat(issue.resolution()).isEqualTo(Issue.RESOLUTION_FIXED);
assertThat(issue.status()).isEqualTo(Issue.STATUS_CLOSED);
assertThat(issue.closeDate()).isNotNull();
- assertThat(issue.updateDate()).isEqualTo(DateUtils.truncate(now, Calendar.SECOND));
+ assertThat(issue.updateDate()).isEqualTo(now);
}
-
@Test
public void fail_if_unknown_status_on_automatic_trans() throws Exception {
workflow.start();
Transition.create("resolve", "OPEN", "RESOLVED"),
Transition.create("falsepositive", "OPEN", "RESOLVED"),
Transition.create("wontfix", "OPEN", "RESOLVED")
- );
+ );
workflow.doTransition(issue, "resolve", mock(IssueChangeContext.class));
assertThat(issue.resolution()).isEqualTo("FIXED");
assertThat(workflow.outTransitions(issue)).containsOnly(
Transition.create("reopen", "RESOLVED", "REOPENED")
- );
+ );
workflow.doAutomaticTransition(issue, mock(IssueChangeContext.class));
assertThat(issue.resolution()).isEqualTo("FIXED");
Transition.create("resolve", "OPEN", "RESOLVED"),
Transition.create("falsepositive", "OPEN", "RESOLVED"),
Transition.create("wontfix", "OPEN", "RESOLVED")
- );
+ );
workflow.doTransition(issue, "confirm", mock(IssueChangeContext.class));
assertThat(issue.resolution()).isNull();
Transition.create("resolve", "CONFIRMED", "RESOLVED"),
Transition.create("falsepositive", "CONFIRMED", "RESOLVED"),
Transition.create("wontfix", "CONFIRMED", "RESOLVED")
- );
+ );
// keep confirmed and unresolved
workflow.doAutomaticTransition(issue, mock(IssueChangeContext.class));
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
-import org.apache.commons.lang.time.DateUtils;
import org.sonar.api.issue.Issue;
import org.sonar.api.issue.IssueComment;
import org.sonar.api.rule.RuleKey;
}
public DefaultIssue setCreationDate(Date d) {
- // d is not marked as Nullable but we still allow null parameter for unit testing.
- this.creationDate = (d != null ? DateUtils.truncate(d, Calendar.SECOND) : null);
+ this.creationDate = d;
return this;
}
}
public DefaultIssue setUpdateDate(@Nullable Date d) {
- this.updateDate = (d != null ? DateUtils.truncate(d, Calendar.SECOND) : null);
+ this.updateDate = d;
return this;
}
}
public DefaultIssue setCloseDate(@Nullable Date d) {
- this.closeDate = (d != null ? DateUtils.truncate(d, Calendar.SECOND) : null);
+ this.closeDate = d;
return this;
}