From 3fa3ca8e5bbcd61764d38f9730e9f47bb7ed5073 Mon Sep 17 00:00:00 2001 From: Yang Sun Date: Tue, 15 Apr 2025 09:39:15 +0000 Subject: [PATCH] Add unit test for ThreadNetworkControllerService#SetEnabled Bug: 321853291 Test: atest ThreadNetworkUnitTests Flag: TEST_ONLY Change-Id: Ifa74a629a20c87bf45d3d3e0693033d8e28b4e8f --- .../ThreadNetworkControllerServiceTest.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/thread/tests/unit/src/com/android/server/thread/ThreadNetworkControllerServiceTest.java b/thread/tests/unit/src/com/android/server/thread/ThreadNetworkControllerServiceTest.java index a73390c670..51f20e15d6 100644 --- a/thread/tests/unit/src/com/android/server/thread/ThreadNetworkControllerServiceTest.java +++ b/thread/tests/unit/src/com/android/server/thread/ThreadNetworkControllerServiceTest.java @@ -652,6 +652,43 @@ public final class ThreadNetworkControllerServiceTest { assertThat(failure.getErrorCode()).isEqualTo(ERROR_FAILED_PRECONDITION); } + @Test + public void setEnabled_success_threadNetworkEnabled() throws Exception { + mService.initialize(); + + CompletableFuture setEnabledFuture = new CompletableFuture<>(); + mService.setEnabled(true, newOperationReceiver(setEnabledFuture)); + mTestLooper.dispatchAll(); + + assertThat(mFakeOtDaemon.getEnabledState()).isEqualTo(STATE_ENABLED); + } + + @Test + public void setDisabled_success_threadNetworkDisabled() throws Exception { + mService.initialize(); + + CompletableFuture setEnabledFuture = new CompletableFuture<>(); + mService.setEnabled(false, newOperationReceiver(setEnabledFuture)); + mTestLooper.dispatchAll(); + + assertThat(mFakeOtDaemon.getEnabledState()).isEqualTo(STATE_DISABLED); + } + + @Test + public void setEnabled_otDaemonRemoteFailure_returnsInternalError() throws Exception { + mService.initialize(); + CompletableFuture setEnabledFuture = new CompletableFuture<>(); + mFakeOtDaemon.setSetEnabledException( + new RemoteException("ot-daemon setThreadEnabled() throws")); + + mService.setEnabled(true, newOperationReceiver(setEnabledFuture)); + mTestLooper.dispatchAll(); + + var thrown = assertThrows(ExecutionException.class, () -> setEnabledFuture.get()); + ThreadNetworkException failure = (ThreadNetworkException) thrown.getCause(); + assertThat(failure.getErrorCode()).isEqualTo(ERROR_INTERNAL_ERROR); + } + private AtomicReference captureBroadcastReceiver(String action) { AtomicReference receiverRef = new AtomicReference<>();