@@ -77,21 +77,22 @@ internal class MainActivityViewModelTest {
7777 }
7878
7979 @Test
80- fun `startObservingUsbDevice does not call openDeviceAndPort when device is null` () = runTest {
81- // arrange
82- val expected = null
83- val deviceFlow = MutableStateFlow <UsbDevice ?>(expected)
84- every { mockUsbUseCase.usbDevice } returns deviceFlow
80+ fun `startObservingUsbDevice does not call openDeviceAndPort when device is null` () =
81+ runTest {
82+ // arrange
83+ val expected = null
84+ val deviceFlow = MutableStateFlow <UsbDevice ?>(expected)
85+ every { mockUsbUseCase.usbDevice } returns deviceFlow
8586
86- // act
87- sut.startObservingUsbDevice()
88- deviceFlow.value = expected
89- advanceUntilIdle()
87+ // act
88+ sut.startObservingUsbDevice()
89+ deviceFlow.value = expected
90+ advanceUntilIdle()
9091
91- // assert
92- verify(exactly = 0 ) { mockArduinoUsecase.openDeviceAndPort(any()) }
93- assertThat(sut.infoMessage.value).contains(expected.toString())
94- }
92+ // assert
93+ verify(exactly = 0 ) { mockArduinoUsecase.openDeviceAndPort(any()) }
94+ assertThat(sut.infoMessage.value).contains(expected.toString())
95+ }
9596
9697 @Test
9798 fun `connect emits expected message when device list is empty` () =
@@ -209,4 +210,31 @@ internal class MainActivityViewModelTest {
209210 verify { mockUsbUseCase.hasPermission(mockDevice) }
210211 verify { mockArduinoUsecase.openDeviceAndPort(mockDevice) }
211212 }
213+
214+ @Test
215+ fun `disconnect calls disconnect on both usbUseCase and arduinoUseCase` () =
216+ runTest {
217+ // arrange
218+ // act
219+ sut.disconnect()
220+
221+ // assert
222+ verify(exactly = 1 ) { mockUsbUseCase.disconnect() }
223+ verify(exactly = 1 ) { mockArduinoUsecase.disconnect() }
224+ }
225+
226+ @Test
227+ fun `serialWrite updates output and returns result from arduinoUseCase` () = runTest {
228+ // arrange
229+ val expected = " TEST_COMMAND"
230+ every { mockArduinoUsecase.serialWrite(expected) } returns true
231+
232+ // act
233+ val result = sut.serialWrite(expected)
234+
235+ // assert
236+ verify { mockArduinoUsecase.serialWrite(expected) }
237+ assertThat(result).isTrue()
238+ assertThat(sut.output.value).contains(expected)
239+ }
212240}
0 commit comments