|
30 | 30 | package org.scijava.task; |
31 | 31 |
|
32 | 32 | import static org.junit.Assert.assertEquals; |
| 33 | +import static org.junit.Assert.assertSame; |
| 34 | +import static org.junit.Assert.assertTrue; |
33 | 35 |
|
| 36 | +import java.util.ArrayList; |
| 37 | +import java.util.List; |
34 | 38 | import java.util.concurrent.ExecutionException; |
35 | 39 |
|
36 | 40 | import org.junit.After; |
37 | 41 | import org.junit.Before; |
38 | 42 | import org.junit.Test; |
39 | 43 | import org.scijava.Context; |
| 44 | +import org.scijava.log.LogLevel; |
| 45 | +import org.scijava.log.LogMessage; |
| 46 | +import org.scijava.log.Logger; |
40 | 47 |
|
41 | 48 | /** |
42 | 49 | * Tests {@link TaskService}. |
@@ -71,4 +78,46 @@ public void testTask() throws InterruptedException, ExecutionException { |
71 | 78 | task.waitFor(); |
72 | 79 | assertEquals(100, result[0]); |
73 | 80 | } |
| 81 | + |
| 82 | + @Test |
| 83 | + public void testLogger() { |
| 84 | + final Task task = taskService.createTask("chatty"); |
| 85 | + final Logger logger = task.log(); |
| 86 | + assertSame(logger, task.log()); |
| 87 | + assertEquals("chatty", logger.getSource().name()); |
| 88 | + |
| 89 | + final List<LogMessage> messages = new ArrayList<>(); |
| 90 | + logger.addLogListener(messages::add); |
| 91 | + logger.debug("detail"); |
| 92 | + logger.warn("careful"); |
| 93 | + assertEquals(2, messages.size()); |
| 94 | + assertEquals("detail", messages.get(0).text()); |
| 95 | + assertEquals(LogLevel.DEBUG, messages.get(0).level()); |
| 96 | + assertEquals(LogLevel.WARN, messages.get(1).level()); |
| 97 | + } |
| 98 | + |
| 99 | + @Test |
| 100 | + public void testDefaultLoggerDiscards() { |
| 101 | + final Task task = new Task() { |
| 102 | + @Override public void run(final Runnable r) {} |
| 103 | + @Override public void waitFor() {} |
| 104 | + @Override public boolean isDone() { return false; } |
| 105 | + @Override public String getStatusMessage() { return null; } |
| 106 | + @Override public long getProgressValue() { return 0; } |
| 107 | + @Override public long getProgressMaximum() { return 0; } |
| 108 | + @Override public void setStatusMessage(final String status) {} |
| 109 | + @Override public void setProgressValue(final long step) {} |
| 110 | + @Override public void setProgressMaximum(final long max) {} |
| 111 | + @Override public boolean isCanceled() { return false; } |
| 112 | + @Override public void cancel(final String reason) {} |
| 113 | + @Override public String getCancelReason() { return null; } |
| 114 | + @Override public String getName() { return null; } |
| 115 | + @Override public void setName(final String name) {} |
| 116 | + }; |
| 117 | + final Logger logger = task.log(); |
| 118 | + final List<LogMessage> messages = new ArrayList<>(); |
| 119 | + logger.addLogListener(messages::add); |
| 120 | + logger.error("ignored"); |
| 121 | + assertTrue(messages.isEmpty()); |
| 122 | + } |
74 | 123 | } |
0 commit comments