Skip to content

Commit 500cc72

Browse files
more tests
1 parent dfe16b0 commit 500cc72

20 files changed

Lines changed: 328 additions & 75 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 12:37:43 EDT 2025
3-
version_build=12
2+
#Sun Jul 13 12:33:53 EDT 2025
3+
version_build=13
44
version_major=3
55
version_minor=2
66
version_patch=1

app/jacoco.gradle

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -69,51 +69,28 @@ def jacocoCoverageVerificationProvider = tasks.register('jacocoTestCoverageVerif
6969
element = 'BUNDLE'
7070
limit {
7171
counter = 'INSTRUCTION'
72-
minimum = 0.97
72+
minimum = 0.98
7373
}
7474
limit {
7575
counter = 'BRANCH'
76-
minimum = 0.88
76+
minimum = 0.90
7777
}
7878
limit {
7979
counter = 'COMPLEXITY'
80-
minimum = 0.92
80+
minimum = 0.94
8181
}
8282
limit {
8383
counter = 'LINE'
8484
minimum = 0.98
8585
}
8686
limit {
8787
counter = 'METHOD'
88-
minimum = 0.97
88+
minimum = 0.98
8989
}
9090
limit {
9191
counter = 'CLASS'
9292
minimum = 0.99
9393
}
9494
}
95-
rule {
96-
element = 'CLASS'
97-
limit {
98-
counter = 'INSTRUCTION'
99-
minimum = 0.67
100-
}
101-
limit {
102-
counter = 'BRANCH'
103-
minimum = 0.50
104-
}
105-
limit {
106-
counter = 'COMPLEXITY'
107-
minimum = 0.33
108-
}
109-
limit {
110-
counter = 'LINE'
111-
minimum = 0.60
112-
}
113-
limit {
114-
counter = 'METHOD'
115-
minimum = 0.33
116-
}
117-
}
11895
}
11996
}

app/src/main/kotlin/com/vrem/wifianalyzer/navigation/NavigationMenuController.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class NavigationMenuController(
4848
private fun setChecked(menu: Menu, id: Int) {
4949
if (id != -1) {
5050
menu.forEach { it.isChecked = false }
51-
menu.findItem(id)?.isChecked = true
51+
menu.findItem(id)!!.isChecked = true
5252
}
5353
}
5454

app/src/main/kotlin/com/vrem/wifianalyzer/permission/ApplicationPermission.kt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,19 @@ class ApplicationPermission(
2828
private val permissionDialog: PermissionDialog = PermissionDialog(activity)
2929
) {
3030
fun check() {
31-
PERMISSIONS.forEach {
32-
if (!granted(it) && !activity.isFinishing) {
33-
permissionDialog.show()
34-
}
31+
if (!granted() && !activity.isFinishing) {
32+
permissionDialog.show()
3533
}
3634
}
3735

3836
fun granted(requestCode: Int, grantResults: IntArray): Boolean =
3937
requestCode == REQUEST_CODE && grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED
4038

4139
fun granted(): Boolean =
42-
PERMISSIONS.all { return granted(it) }
43-
44-
private fun granted(permission: String): Boolean =
45-
activity.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED
40+
activity.checkSelfPermission(PERMISSION) == PackageManager.PERMISSION_GRANTED
4641

4742
companion object {
48-
internal val PERMISSIONS = arrayOf(Manifest.permission.ACCESS_FINE_LOCATION)
43+
internal const val PERMISSION = Manifest.permission.ACCESS_FINE_LOCATION
4944
internal const val REQUEST_CODE = 0x123450
5045
}
5146

app/src/main/kotlin/com/vrem/wifianalyzer/permission/PermissionDialog.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class PermissionDialog(private val activity: Activity) {
3131
fun show(): View? {
3232
val view = activity.layoutInflater.inflate(R.layout.info_permission, null)
3333
val visibility = if (buildMinVersionP()) View.VISIBLE else View.GONE
34-
view.findViewById<View>(R.id.throttling)?.visibility = visibility
34+
view.findViewById<View>(R.id.throttling)!!.visibility = visibility
3535
AlertDialog.Builder(activity)
3636
.setView(view)
3737
.setTitle(R.string.app_full_name)
@@ -46,7 +46,7 @@ class PermissionDialog(private val activity: Activity) {
4646
internal class OkClick(private val activity: Activity) : DialogInterface.OnClickListener {
4747
override fun onClick(alertDialog: DialogInterface, which: Int) {
4848
alertDialog.dismiss()
49-
activity.requestPermissions(ApplicationPermission.PERMISSIONS, ApplicationPermission.REQUEST_CODE)
49+
activity.requestPermissions(arrayOf(ApplicationPermission.PERMISSION), ApplicationPermission.REQUEST_CODE)
5050
}
5151
}
5252

app/src/main/kotlin/com/vrem/wifianalyzer/vendor/model/VendorService.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ class VendorService(private val resources: Resources) {
5353
val vendors: MutableMap<String, List<String>> = TreeMap()
5454
readZipFile(resources, R.raw.data)
5555
.map { it.split("|").toTypedArray() }
56-
.filter { it.size == 2 }
5756
.forEach {
5857
val name = it[0]
5958
val results: List<String> = it[1].chunked(MAX_SIZE)

app/src/main/kotlin/com/vrem/wifianalyzer/wifi/channelrating/ChannelRatingAdapter.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ class ChannelRatingAdapter(
7474
override fun getView(position: Int, view: View?, parent: ViewGroup): View {
7575
val wiFiBand = MainContext.INSTANCE.settings.wiFiBand()
7676
val binding = view?.let { ChannelRatingAdapterBinding(it) } ?: ChannelRatingAdapterBinding(create(parent))
77-
getItem(position)?.let { wiFiChannel ->
78-
val wiFiWidth = wiFiBand.wiFiChannels.wiFiWidthByChannel(wiFiChannel.channel)
79-
binding.channelRatingChannel.text = wiFiChannel.channel.toString()
80-
binding.channelRatingAPCount.text = channelRating.count(wiFiChannel).toString()
77+
getItem(position)?.let {
78+
val wiFiWidth = wiFiBand.wiFiChannels.wiFiWidthByChannel(it.channel)
79+
binding.channelRatingChannel.text = it.channel.toString()
80+
binding.channelRatingAPCount.text = channelRating.count(it).toString()
8181
binding.channelRatingWidth.text = ContextCompat.getString(context, wiFiWidth.textResource)
82-
ratingBar(wiFiChannel, binding.channelRating)
82+
ratingBar(it, binding.channelRating)
8383
}
8484
return binding.root
8585
}

app/src/test/kotlin/com/vrem/util/FileUtilsTest.kt

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@ class FileUtilsTest {
4444
fun readFile() {
4545
// setup
4646
val id = 11
47+
val input = "Line-1\r\nLine-2\r\n"
4748
val expected = "Line-1\nLine-2\n"
48-
whenever(resources.openRawResource(id)).thenReturn(expected.byteInputStream())
49+
whenever(resources.openRawResource(id)).thenReturn(input.byteInputStream())
4950
// execute
5051
val actual = readFile(resources, id)
5152
// validate
@@ -90,12 +91,26 @@ class FileUtilsTest {
9091
verify(resources).openRawResource(id)
9192
}
9293

93-
private fun createZippedInputStream(lines: List<String>): InputStream {
94+
@Test
95+
fun readZipFileWithEmptyZipReturnsEmptyList() {
96+
// setup
97+
val id = 12
98+
whenever(resources.openRawResource(id)).thenReturn(createZippedInputStream(emptyList(), false))
99+
// execute
100+
val actual = readZipFile(resources, id)
101+
// validate
102+
assertThat(actual).isEmpty()
103+
verify(resources).openRawResource(id)
104+
}
105+
106+
private fun createZippedInputStream(lines: List<String>, addEntry: Boolean = true): InputStream {
94107
val outputStream = ByteArrayOutputStream()
95108
ZipOutputStream(outputStream).use {
96-
it.putNextEntry(ZipEntry("file.txt"))
97-
it.write(lines.joinToString("\n").toByteArray())
98-
it.closeEntry()
109+
if (addEntry) {
110+
it.putNextEntry(ZipEntry("file.txt"))
111+
it.write(lines.joinToString("\n").toByteArray())
112+
it.closeEntry()
113+
}
99114
}
100115
return outputStream.toByteArray().inputStream()
101116
}

app/src/test/kotlin/com/vrem/wifianalyzer/navigation/availability/FilterOnTest.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,25 @@ class FilterOnTest {
9999
verify(optionMenu).menu
100100
}
101101

102+
@Test
103+
fun navigationOptionFilterOnWithNoIconDoesNotSetTint() {
104+
// setup
105+
whenever(filterAdapter.isActive()).thenReturn(false)
106+
whenever(mainActivity.optionMenu).thenReturn(optionMenu)
107+
whenever(optionMenu.menu).thenReturn(menu)
108+
whenever(menu.findItem(R.id.action_filter)).thenReturn(menuItem)
109+
whenever(menuItem.icon).thenReturn(null)
110+
// execute
111+
navigationOptionFilterOn(mainActivity)
112+
// validate
113+
verify(mainActivity).optionMenu
114+
verify(optionMenu).menu
115+
verify(menu).findItem(R.id.action_filter)
116+
verify(menuItem).icon
117+
verify(filterAdapter).isActive()
118+
verify(menuItem).isVisible = true
119+
}
120+
102121
private fun verifyMenuItem() {
103122
verify(mainActivity).optionMenu
104123
verify(optionMenu).menu

app/src/test/kotlin/com/vrem/wifianalyzer/permission/ApplicationPermissionTest.kt

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class ApplicationPermissionTest {
8080
}
8181

8282
@Test
83-
fun granted() {
83+
fun grantedWithRequestCode() {
8484
// setup
8585
val grantResults = intArrayOf(PackageManager.PERMISSION_GRANTED)
8686
// execute
@@ -118,4 +118,26 @@ class ApplicationPermissionTest {
118118
// validate
119119
assertThat(actual).isFalse
120120
}
121+
122+
@Test
123+
fun grantedWhenPermissionGranted() {
124+
// setup
125+
doReturn(PackageManager.PERMISSION_GRANTED).whenever(activity).checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
126+
// execute
127+
val actual = fixture.granted()
128+
// validate
129+
assertThat(actual).isTrue
130+
verify(activity).checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
131+
}
132+
133+
@Test
134+
fun grantedWhenPermissionDenied() {
135+
// setup
136+
doReturn(PackageManager.PERMISSION_DENIED).whenever(activity).checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
137+
// execute
138+
val actual = fixture.granted()
139+
// validate
140+
assertThat(actual).isFalse
141+
verify(activity).checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
142+
}
121143
}

0 commit comments

Comments
 (0)