### Question:
AplAppStatus { public synchronized String durableTaskUpdate(String taskId, Double percentComplete, String message) { return durableTaskUpdate(taskId, percentComplete, message, -1); } @Inject  AplAppStatus(); String durableTaskStart(String name, String description, boolean isCritical); String durableTaskStart(String name, String description, boolean isCritical, Double percentComplete); synchronized String durableTaskUpdate(String taskId, Double percentComplete, String message); synchronized String durableTaskUpdate(String taskId, Double percentComplete, String message, int keepPrevMessages); synchronized void durableTaskUpdate(String taskId, Double percentComplete, String message, int keepPrevMessages, Double offset); synchronized double durableTaskUpdate(String taskId, String message, double addPercents); synchronized void durableTaskPaused(String taskId, String message); synchronized void durableTaskContinue(String taskId, String message); synchronized void durableTaskFinished(String taskId, boolean isCancelled, String message); synchronized void clearFinished(Long secondsAgo); Collection<DurableTaskInfo> getTasksList(); synchronized Optional<DurableTaskInfo> findTaskByName(String taskName); double durableTaskUpdateAddPercents(String taskId, Double percentIncreaseValue);  }### Answer:
@Test void durableTaskUpdate() { String taskId = status.durableTaskStart("name1", "descr1", true, 10.0); assertNotNull(taskId); String result = status.durableTaskUpdate(taskId, 50.0, "new msg"); assertEquals(taskId, result); result = status.durableTaskUpdate(taskId, 60.0, null); assertEquals(taskId, result); Double completeResult = status.durableTaskUpdateAddPercents(taskId, 1.0); assertEquals(61.0, completeResult); completeResult = status.durableTaskUpdateAddPercents(taskId, 1.2); assertEquals(62.2, completeResult); completeResult = status.durableTaskUpdateAddPercents(taskId, 1.05); assertEquals(63.25, completeResult); }