Skip to content

Instantly share code, notes, and snippets.

import kotlinx.serialization.Serializable
@Serializable
class GeofencingResponse(val id: String, val accessCode: String, val nickname: String?)
val builder = Retrofit.Builder()
.client(getClient(serviceClass))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GuavaOptionalConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.baseUrl(endpointAdapter.getURLString(context, serviceClass.simpleName))
.addConverterFactory(Json.asConverterFactory(MediaType.get("application/json")))
class MessageData @Inject constructor(val welcomeMessage: String)
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.P])
class GreetingServiceRoboTest {
@get:Rule
val mockitoRule: MockitoRule = MockitoJUnit.rule()
@Mock
lateinit var timeService: TimeService
class GreetingServiceFakeTest {
@Inject
lateinit var greetingService: GreetingService
@Test
fun testGreetingInTheMorning() {
val testModule = module {
bind<TimeService>().toInstance(object : TimeService {
@RunWith(MockitoJUnitRunner::class)
class GreetingServiceMockTest {
@get:Rule
var toothPickRule = ToothPickRule(this, "scope")
@Inject
lateinit var greetingService: GreetingService
@Mock
class MainActivity : AppCompatActivity() {
private val greetingService: GreetingService by inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
KTP.openRootScope().inject(this)
class ToothpickApplication : Application() {
override fun onCreate() {
super.onCreate()
KTP.openRootScope().installModules(toothpickModule)
}
}
@InjectConstructor
class GreetingServiceImpl(private val messageData: MessageData, private val timeService: TimeService) :
GreetingService {
val toothpickModule = module {
bind<GreetingService>().toClass<GreetingServiceImpl>().singleton()
bind<TimeService>().toInstance(TimeServiceImpl())
bind<MessageData>().toInstance(MessageData())
}