|
17 | 17 | package de.doubleslash.keeptime.controller; |
18 | 18 |
|
19 | 19 | import static org.hamcrest.Matchers.is; |
| 20 | +import static org.junit.Assert.assertEquals; |
20 | 21 | import static org.junit.Assert.assertThat; |
21 | 22 |
|
| 23 | +import java.time.LocalDate; |
22 | 24 | import java.time.LocalDateTime; |
| 25 | +import java.util.ArrayList; |
23 | 26 | import java.util.Arrays; |
24 | 27 | import java.util.List; |
| 28 | +import java.util.concurrent.TimeUnit; |
25 | 29 |
|
26 | 30 | import org.hamcrest.Matchers; |
27 | 31 | import org.junit.Before; |
@@ -284,4 +288,39 @@ public void changeProjectOtherDayWithTimeTest() { |
284 | 288 | assertThat(work.getStartTime(), is(firstProjectPlusOneHour)); |
285 | 289 | } |
286 | 290 |
|
| 291 | + @Test |
| 292 | + public void shouldCalculateSecondsCorrectlyWhenWorkItemsAreGiven() { |
| 293 | + final Project workProject1 = new Project("workProject1", Color.GREEN, true, 0); |
| 294 | + final Project workProject2 = new Project("workProject2", Color.RED, true, 1); |
| 295 | + final Project nonworkProject1 = new Project("nonworkProject1", Color.RED, false, 2); |
| 296 | + final Project nonworkProject2 = new Project("nonworkProject2", Color.RED, false, 3); |
| 297 | + |
| 298 | + final LocalDate localDateNow = LocalDate.now(); |
| 299 | + final LocalDateTime localDateTimeMorning = LocalDateTime.now().withHour(4); |
| 300 | + |
| 301 | + final List<Work> workItems = new ArrayList<>(4); |
| 302 | + workItems.add(new Work(localDateNow, localDateTimeMorning.plusHours(0), localDateTimeMorning.plusHours(1), |
| 303 | + workProject1, "")); |
| 304 | + workItems.add(new Work(localDateNow, localDateTimeMorning.plusHours(1), localDateTimeMorning.plusHours(2), |
| 305 | + workProject2, "")); |
| 306 | + workItems.add(new Work(localDateNow, localDateTimeMorning.plusHours(2), localDateTimeMorning.plusHours(3), |
| 307 | + nonworkProject1, "")); |
| 308 | + workItems.add(new Work(localDateNow, localDateTimeMorning.plusHours(3), localDateTimeMorning.plusHours(4), |
| 309 | + nonworkProject2, "")); |
| 310 | + |
| 311 | + model.getAllProjects().addAll(workProject1, workProject2, nonworkProject1, nonworkProject2); |
| 312 | + model.getPastWorkItems().addAll(workItems); |
| 313 | + |
| 314 | + final long totalSeconds = testee.calcSeconds(workItems); |
| 315 | + assertEquals("Seconds were not calculated correctly.", TimeUnit.HOURS.toSeconds(4), totalSeconds); |
| 316 | + |
| 317 | + final long todaysSeconds = testee.calcTodaysSeconds(); |
| 318 | + assertEquals("Todays seconds were not calulated correctly.", TimeUnit.HOURS.toSeconds(4), todaysSeconds); |
| 319 | + |
| 320 | + final long todaysWorkSeconds = testee.calcTodaysWorkSeconds(); |
| 321 | + // assertEquals("Todays work seconds were not calculated correctly.",TimeUnit.HOURS.toSeconds(2), |
| 322 | + // todaysWorkSeconds); |
| 323 | + // TODO does not work, as id within project cannot be set |
| 324 | + |
| 325 | + } |
287 | 326 | } |
0 commit comments