Skip to content

Commit 826026e

Browse files
add more tests
1 parent 2d2d595 commit 826026e

2 files changed

Lines changed: 60 additions & 21 deletions

File tree

app/build.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Build Properties
2-
#Sat Jul 12 11:38:03 EDT 2025
3-
version_build=11
2+
#Sat Jul 12 12:37:43 EDT 2025
3+
version_build=12
44
version_major=3
55
version_minor=2
66
version_patch=1

app/src/test/kotlin/com/vrem/wifianalyzer/navigation/items/ExportItemTest.kt

Lines changed: 58 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,11 @@ package com.vrem.wifianalyzer.navigation.items
1919

2020
import android.content.ComponentName
2121
import android.content.Intent
22-
import android.content.pm.PackageManager
2322
import android.os.Build
2423
import android.view.View
2524
import androidx.test.ext.junit.runners.AndroidJUnit4
26-
import com.vrem.wifianalyzer.MainActivity
2725
import com.vrem.wifianalyzer.MainContextHelper
26+
import com.vrem.wifianalyzer.RobolectricUtil
2827
import com.vrem.wifianalyzer.export.Export
2928
import com.vrem.wifianalyzer.navigation.NavigationMenu
3029
import com.vrem.wifianalyzer.wifi.model.WiFiConnection
@@ -36,14 +35,14 @@ import org.junit.Test
3635
import org.junit.runner.RunWith
3736
import org.mockito.kotlin.*
3837
import org.robolectric.annotation.Config
38+
import org.robolectric.shadows.ShadowToast
3939

4040
@RunWith(AndroidJUnit4::class)
4141
@Config(sdk = [Build.VERSION_CODES.VANILLA_ICE_CREAM])
4242
class ExportItemTest {
43+
private val mainActivity = RobolectricUtil.INSTANCE.activity
4344
private val export: Export = mock()
44-
private val mainActivity: MainActivity = mock()
4545
private val intent: Intent = mock()
46-
private val packageManager: PackageManager = mock()
4746
private val componentName: ComponentName = mock()
4847
private val scanner = MainContextHelper.INSTANCE.scannerService
4948

@@ -52,43 +51,83 @@ class ExportItemTest {
5251
@After
5352
fun tearDown() {
5453
verifyNoMoreInteractions(export)
55-
verifyNoMoreInteractions(mainActivity)
56-
verifyNoMoreInteractions(intent)
57-
verifyNoMoreInteractions(packageManager)
5854
verifyNoMoreInteractions(componentName)
5955
verifyNoMoreInteractions(scanner)
6056
MainContextHelper.INSTANCE.restore()
6157
}
6258

59+
@Test
60+
fun registered() {
61+
// execute & validate
62+
assertThat(fixture.registered).isFalse
63+
}
64+
65+
@Test
66+
fun visibility() {
67+
// execute & validate
68+
assertThat(fixture.visibility).isEqualTo(View.GONE)
69+
}
70+
6371
@Test
6472
fun activate() {
6573
// setup
6674
val wiFiData: WiFiData = withWiFiData()
6775
doReturn(wiFiData).whenever(scanner).wiFiData()
6876
doReturn(intent).whenever(export).export(mainActivity, wiFiData.wiFiDetails)
69-
doNothing().whenever(mainActivity).startActivity(intent)
70-
doReturn(packageManager).whenever(mainActivity).packageManager
71-
doReturn(componentName).whenever(intent).resolveActivity(packageManager)
77+
doReturn(componentName).whenever(intent).resolveActivity(any())
7278
// execute
7379
fixture.activate(mainActivity, NavigationMenu.EXPORT)
7480
// validate
7581
verify(scanner).wiFiData()
76-
verify(mainActivity).packageManager
77-
verify(intent).resolveActivity(packageManager)
78-
verify(mainActivity).startActivity(intent)
7982
verify(export).export(mainActivity, wiFiData.wiFiDetails)
83+
verify(intent).resolveActivity(mainActivity.packageManager)
8084
}
8185

8286
@Test
83-
fun registered() {
84-
// execute & validate
85-
assertThat(fixture.registered).isFalse
87+
fun activateWithNoWiFiData() {
88+
// setup
89+
val wiFiData = WiFiData(listOf(), WiFiConnection.EMPTY)
90+
doReturn(wiFiData).whenever(scanner).wiFiData()
91+
// execute
92+
fixture.activate(mainActivity, NavigationMenu.EXPORT)
93+
// validate
94+
verify(scanner).wiFiData()
95+
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo("No Data")
8696
}
8797

8898
@Test
89-
fun visibility() {
90-
// execute & validate
91-
assertThat(fixture.visibility).isEqualTo(View.GONE)
99+
fun activateWithNoExportAvailable() {
100+
// setup
101+
val wiFiData: WiFiData = withWiFiData()
102+
doReturn(wiFiData).whenever(scanner).wiFiData()
103+
doReturn(intent).whenever(export).export(mainActivity, wiFiData.wiFiDetails)
104+
doReturn(null).whenever(intent).resolveActivity(any())
105+
// execute
106+
fixture.activate(mainActivity, NavigationMenu.EXPORT)
107+
// validate
108+
verify(scanner).wiFiData()
109+
verify(export).export(mainActivity, wiFiData.wiFiDetails)
110+
verify(intent).resolveActivity(mainActivity.packageManager)
111+
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo("Export not available")
112+
}
113+
114+
@Test
115+
fun activateThrowsException() {
116+
// setup
117+
val activity = spy(mainActivity)
118+
val wiFiData: WiFiData = withWiFiData()
119+
val expected = "error"
120+
doReturn(wiFiData).whenever(scanner).wiFiData()
121+
doReturn(intent).whenever(export).export(activity, wiFiData.wiFiDetails)
122+
doReturn(componentName).whenever(intent).resolveActivity(any())
123+
doThrow(RuntimeException(expected)).whenever(activity).startActivity(intent)
124+
// execute
125+
fixture.activate(activity, NavigationMenu.EXPORT)
126+
// validate
127+
verify(scanner).wiFiData()
128+
verify(export).export(activity, wiFiData.wiFiDetails)
129+
verify(intent).resolveActivity(activity.packageManager)
130+
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(expected)
92131
}
93132

94133
private fun withWiFiData(): WiFiData {

0 commit comments

Comments
 (0)