diff --git a/app/src/test/java/com/hieuwu/groceriesstore/domain/usecases/impl/SubmitOrderUseCaseImplTest.kt b/app/src/test/java/com/hieuwu/groceriesstore/domain/usecases/impl/SubmitOrderUseCaseImplTest.kt new file mode 100644 index 00000000..9686e288 --- /dev/null +++ b/app/src/test/java/com/hieuwu/groceriesstore/domain/usecases/impl/SubmitOrderUseCaseImplTest.kt @@ -0,0 +1,51 @@ +package com.hieuwu.groceriesstore.domain.usecases.impl + +import com.hieuwu.groceriesstore.data.repository.OrderRepository +import com.hieuwu.groceriesstore.domain.models.OrderModel +import com.hieuwu.groceriesstore.domain.usecases.SubmitOrderUseCase +import kotlinx.coroutines.runBlocking +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.junit.MockitoJUnitRunner +import org.mockito.kotlin.any +import org.mockito.kotlin.verify +import org.mockito.kotlin.whenever + +@RunWith(MockitoJUnitRunner::class) +class SubmitOrderUseCaseImplTest { + + @Mock + lateinit var mockedOrderRepository: OrderRepository + + private lateinit var testee: SubmitOrderUseCase + + @Before + fun setUp() { + testee = SubmitOrderUseCaseImpl( + orderRepository = mockedOrderRepository + ) + } + + @Test + fun whenExecute_thenSubmitOrderSuccessfully() { + runBlocking { + whenever(mockedOrderRepository.sendOrderToServer(any())).thenReturn(true) + testee.execute( + SubmitOrderUseCase.Input( + order = OrderModel( + lineItemList = mutableListOf() + ) + ) + ) + + verify(mockedOrderRepository).sendOrderToServer( + OrderModel( + lineItemList = mutableListOf() + ) + ) + } + } + +} \ No newline at end of file