Skip to content

Commit 81cc979

Browse files
committed
Fixed issue with dropping days (#114).
1 parent a1bb0e6 commit 81cc979

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/main/java/org/gitlab4j/api/utils/DurationUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ public static final String toString(int durationSeconds, boolean includeMonths)
7575
buf.append(days).append('d').append(hours).append('h').append(minutes).append('m');
7676
} else if (hours > 0) {
7777
buf.append(days).append('d').append(hours).append('h');
78+
} else if (days > 0) {
79+
buf.append(days).append('d');
7880
}
7981

8082
} else if (days > 0) {

src/test/java/org/gitlab4j/api/TestDuration.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.fail;
55

6+
import org.gitlab4j.api.models.Duration;
67
import org.gitlab4j.api.utils.DurationUtils;
78
import org.junit.Test;
89

@@ -27,6 +28,29 @@ public void testParse() {
2728
assertEquals(60 * 60, seconds);
2829
}
2930

31+
@Test
32+
public void testRoundTrip() {
33+
34+
Duration duration = new Duration("2mo1d");
35+
String durationString = DurationUtils.toString(duration.getSeconds(), false);
36+
assertEquals("8w1d", durationString);
37+
duration = new Duration(durationString);
38+
assertEquals("2mo1d", duration.toString());
39+
40+
duration = new Duration("9w2h5m");
41+
durationString = DurationUtils.toString(duration.getSeconds(), false);
42+
assertEquals("9w0d2h5m", durationString);
43+
duration = new Duration(durationString);
44+
assertEquals("2mo1w0d2h5m", duration.toString());
45+
46+
duration = new Duration("2mo1w1d2h5m");
47+
durationString = DurationUtils.toString(duration.getSeconds(), false);
48+
assertEquals("9w1d2h5m", durationString);
49+
duration = new Duration(durationString);
50+
assertEquals("2mo1w1d2h5m", duration.toString());
51+
}
52+
53+
3054
@Test
3155
public void testParseWithSpaces() {
3256

@@ -108,5 +132,8 @@ public void testToString() {
108132

109133
duration = DurationUtils.toString(60 * 60 * 8 * 5 * 4 * 3 + 60 * 60 * 8 * 2 + 60 * 60 * 3 + 60 * 6 + 8, false);
110134
assertEquals("12w2d3h6m8s", duration);
135+
136+
duration = DurationUtils.toString(60 * 60 * 8 * 5 * 5 + 60 * 60 * 8 * 2 + 60 * 60 * 3 + 60 * 4 + 5, false);
137+
assertEquals("5w2d3h4m5s", duration);
111138
}
112139
}

0 commit comments

Comments
 (0)