forked from wix/react-native-navigation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FakeParentController.kt
33 lines (28 loc) · 1.37 KB
/
FakeParentController.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.reactnativenavigation.viewcontrollers.fakes
import android.app.Activity
import androidx.coordinatorlayout.widget.CoordinatorLayout
import org.mockito.kotlin.mock
import com.reactnativenavigation.options.Options
import com.reactnativenavigation.viewcontrollers.viewcontroller.Presenter
import com.reactnativenavigation.utils.CompatUtils
import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry
import com.reactnativenavigation.viewcontrollers.parent.ParentController
import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController
class FakeParentController @JvmOverloads constructor(
activity: Activity,
childRegistry: ChildControllersRegistry,
private val child: ViewController<*>,
id: String = "Parent" + CompatUtils.generateViewId(),
presenter: Presenter = mock(),
initialOptions: Options = Options.EMPTY
) : ParentController<CoordinatorLayout>(activity, childRegistry, id, presenter, initialOptions) {
init {
child.parentController = this
}
override fun getCurrentChild(): ViewController<*> = child
override fun createView() = CoordinatorLayout(activity).apply {
addView(child.view)
}
override fun getChildControllers() = listOf(child)
override fun sendOnNavigationButtonPressed(buttonId: String?) = child.sendOnNavigationButtonPressed(buttonId)
}