Skip to content

Commit f5d94d0

Browse files
add more tests
1 parent c26d00f commit f5d94d0

File tree

9 files changed

+216
-44
lines changed

9 files changed

+216
-44
lines changed

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 26 07:45:27 EDT 2025
3-
version_build=22
2+
#Sat Jul 26 09:17:15 EDT 2025
3+
version_build=23
44
version_major=3
55
version_minor=2
66
version_patch=1

app/jacoco.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ def jacocoCoverageVerificationProvider = tasks.register('jacocoTestCoverageVerif
7373
}
7474
limit {
7575
counter = 'BRANCH'
76-
minimum = 0.91
76+
minimum = 0.93
7777
}
7878
limit {
7979
counter = 'COMPLEXITY'
80-
minimum = 0.94
80+
minimum = 0.95
8181
}
8282
limit {
8383
counter = 'LINE'

app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/ChannelRatingTest.kt

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,6 @@ class ChannelRatingTest {
7777
validateCount(3, wiFiDetail3.wiFiSignal.centerWiFiChannel)
7878
}
7979

80-
private fun validateCount(expected: Int, wiFiChannel: WiFiChannel) {
81-
assertThat(fixture.count(wiFiChannel)).isEqualTo(expected)
82-
}
83-
8480
@Test
8581
fun strengthShouldReturnMaximum() {
8682
// setup
@@ -105,16 +101,6 @@ class ChannelRatingTest {
105101
assertThat(actual).isEqualTo(expected)
106102
}
107103

108-
private fun makeCopy(wiFiDetail: WiFiDetail): WiFiDetail {
109-
val wiFiSignal: WiFiSignal = wiFiDetail.wiFiSignal
110-
return WiFiDetail(
111-
WiFiIdentifier("SSID2-OTHER", "BSSID-OTHER"),
112-
WiFiSecurity.EMPTY,
113-
WiFiSignal(wiFiSignal.primaryFrequency, wiFiSignal.centerFrequency, wiFiSignal.wiFiWidth, -80),
114-
WiFiAdditional.EMPTY
115-
)
116-
}
117-
118104
@Test
119105
fun bestChannelsSortedInOrderWithMinimumChannelsUS() {
120106
// setup
@@ -149,16 +135,6 @@ class ChannelRatingTest {
149135
validateChannelAPCount(4, 1, actual[5])
150136
}
151137

152-
private fun validateChannelAPCount(
153-
expectedChannel: Int,
154-
expectedCount: Int,
155-
channelAPCount: ChannelAPCount
156-
) {
157-
assertThat(channelAPCount.wiFiChannel.channel).isEqualTo(expectedChannel)
158-
assertThat(channelAPCount.wiFiWidth).isEqualTo(wiFiWidth)
159-
assertThat(channelAPCount.count).isEqualTo(expectedCount)
160-
}
161-
162138
@Test
163139
fun setWiFiChannelsRemovesDuplicateAccessPoints() {
164140
// setup
@@ -173,4 +149,28 @@ class ChannelRatingTest {
173149
// validate
174150
assertThat(fixture.wiFiDetails).hasSize(1).contains(wiFiDetail1)
175151
}
176-
}
152+
153+
private fun validateCount(expected: Int, wiFiChannel: WiFiChannel) {
154+
assertThat(fixture.count(wiFiChannel)).isEqualTo(expected)
155+
}
156+
157+
private fun makeCopy(wiFiDetail: WiFiDetail): WiFiDetail {
158+
val wiFiSignal: WiFiSignal = wiFiDetail.wiFiSignal
159+
return WiFiDetail(
160+
WiFiIdentifier("SSID2-OTHER", "BSSID-OTHER"),
161+
WiFiSecurity.EMPTY,
162+
WiFiSignal(wiFiSignal.primaryFrequency, wiFiSignal.centerFrequency, wiFiSignal.wiFiWidth, -80),
163+
WiFiAdditional.EMPTY
164+
)
165+
}
166+
167+
private fun validateChannelAPCount(
168+
expectedChannel: Int,
169+
expectedCount: Int,
170+
channelAPCount: ChannelAPCount
171+
) {
172+
assertThat(channelAPCount.wiFiChannel.channel).isEqualTo(expectedChannel)
173+
assertThat(channelAPCount.wiFiWidth).isEqualTo(wiFiWidth)
174+
assertThat(channelAPCount.count).isEqualTo(expectedCount)
175+
}
176+
}

app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiConnectionTest.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,27 @@ class WiFiConnectionTest {
5353
assertThat(other).isNotSameAs(fixture)
5454
}
5555

56+
@Test
57+
fun equalsIsReflexive() {
58+
assertThat(fixture).isEqualTo(fixture)
59+
}
60+
61+
@Test
62+
fun equalsWithNull() {
63+
assertThat(fixture.equals(null)).isFalse
64+
}
65+
66+
@Test
67+
fun equalsWithDifferentClass() {
68+
assertThat(fixture.equals("not a WiFiConnection")).isFalse
69+
}
70+
71+
@Test
72+
fun equalsWithDifferentIdentifier() {
73+
val different = WiFiConnection(WiFiIdentifier("SSID-999", "BSSID-999"), ipAddress, linkSpeed)
74+
assertThat(fixture).isNotEqualTo(different)
75+
}
76+
5677
@Test
5778
fun hashCodeUsingIdentifier() {
5879
// execute & validate

app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiDataTest.kt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,42 @@ class WiFiDataTest {
7070
verify(vendorService).findVendorName(bssid1)
7171
}
7272

73+
@Test
74+
fun connectionReturnsEmptyWhenNoMatch() {
75+
// setup
76+
val wiFiData = WiFiData(listOf(
77+
WiFiDetail(
78+
WiFiIdentifier("OtherSSID", "OtherBSSID"),
79+
WiFiSecurity.EMPTY,
80+
WiFiSignal(2412, 2412, WiFiWidth.MHZ_20, -50)
81+
)
82+
), wiFiConnection)
83+
// execute
84+
val actual = wiFiData.connection()
85+
// validate
86+
assertThat(actual).isEqualTo(WiFiDetail.EMPTY)
87+
}
88+
89+
@Test
90+
fun connectionReturnsEmptyWhenWiFiDetailsIsEmpty() {
91+
// setup
92+
val wiFiData = WiFiData(emptyList(), wiFiConnection)
93+
// execute
94+
val actual = wiFiData.connection()
95+
// validate
96+
assertThat(actual).isEqualTo(WiFiDetail.EMPTY)
97+
}
98+
99+
@Test
100+
fun connectionReturnsEmptyWhenWiFiConnectionIsEmpty() {
101+
// setup
102+
val wiFiData = WiFiData(wiFiDetails, WiFiConnection.EMPTY)
103+
// execute
104+
val actual = wiFiData.connection()
105+
// validate
106+
assertThat(actual).isEqualTo(WiFiDetail.EMPTY)
107+
}
108+
73109
@Test
74110
fun wiFiDetailsWithConfiguredNetwork() {
75111
// setup

app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiDetailTest.kt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,37 @@ class WiFiDetailTest {
4949
assertThat(other).isNotSameAs(fixture)
5050
}
5151

52+
@Test
53+
fun equalsWithSelf() {
54+
// execute & validate
55+
assertThat(fixture).isEqualTo(fixture)
56+
}
57+
58+
@Test
59+
fun equalsWithNull() {
60+
// execute & validate
61+
assertThat(fixture.equals(null)).isFalse()
62+
}
63+
64+
@Test
65+
fun equalsWithDifferentClass() {
66+
// execute & validate
67+
assertThat(fixture.equals("not a WiFiDetail")).isFalse()
68+
}
69+
70+
@Test
71+
fun equalsWithDifferentIdentifier() {
72+
// setup
73+
val different = WiFiDetail(
74+
WiFiIdentifier("otherSSID", "otherBSSID"),
75+
wiFiSecurity,
76+
wiFiSignal,
77+
wiFiAdditional
78+
)
79+
// execute & validate
80+
assertThat(fixture).isNotEqualTo(different)
81+
}
82+
5283
@Test
5384
fun hashCodeUsingIdentifier() {
5485
// execute & validate
@@ -77,4 +108,16 @@ class WiFiDetailTest {
77108
assertThat(actual.wiFiSignal).isEqualTo(expected.wiFiSignal)
78109
}
79110

111+
@Test
112+
fun noChildrenReturnsFalseWhenChildrenIsEmpty() {
113+
val detail = WiFiDetail(wiFiIdentifier, wiFiSecurity, wiFiSignal, wiFiAdditional, listOf())
114+
assertThat(detail.noChildren).isFalse()
115+
}
116+
117+
@Test
118+
fun noChildrenReturnsTrueWhenChildrenIsNotEmpty() {
119+
val child = WiFiDetail(WiFiIdentifier("childSSID", "childBSSID"), wiFiSecurity, wiFiSignal, wiFiAdditional)
120+
val detail = WiFiDetail(wiFiIdentifier, wiFiSecurity, wiFiSignal, wiFiAdditional, listOf(child))
121+
assertThat(detail.noChildren).isTrue()
122+
}
80123
}

app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiIdentifierTest.kt

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,45 +48,69 @@ class WiFiIdentifierTest {
4848
}
4949

5050
@Test
51-
fun equalsUsingSameCase() {
51+
fun hashCodeUsingSameCase() {
5252
// setup
5353
val other = WiFiIdentifier(ssid, bssid)
5454
// execute & validate
55-
assertThat(other).isEqualTo(fixture)
56-
assertThat(other).isNotSameAs(fixture)
55+
assertThat(other.hashCode()).isEqualTo(fixture.hashCode())
5756
}
5857

5958
@Test
60-
fun hashCodeUsingSameCase() {
59+
fun compareTo() {
6160
// setup
6261
val other = WiFiIdentifier(ssid, bssid)
6362
// execute & validate
64-
assertThat(other.hashCode()).isEqualTo(fixture.hashCode())
63+
assertThat(fixture.compareTo(other)).isEqualTo(0)
6564
}
6665

6766
@Test
68-
fun equalsUsingDifferentCase() {
67+
fun rawSSID() {
6968
// setup
70-
val other = WiFiIdentifier(ssid.lowercase(), bssid.uppercase())
69+
val fixture = WiFiIdentifier(String.EMPTY, bssid)
7170
// execute & validate
72-
assertThat(fixture.equals(other, true)).isTrue
71+
assertThat(fixture.ssidRaw).isEqualTo(String.EMPTY)
72+
assertThat(fixture.ssid).isEqualTo(hidden)
7373
}
7474

7575
@Test
76-
fun compareTo() {
76+
fun equalsWithDifferentCaseAndIgnoreCaseFalse() {
77+
val other = WiFiIdentifier(ssid.lowercase(), bssid.uppercase())
78+
assertThat(fixture.equals(other, false)).isFalse
79+
}
80+
81+
@Test
82+
fun equalsWithDifferentSSID() {
83+
val other = WiFiIdentifier("otherSSID", bssid)
84+
assertThat(fixture.equals(other)).isFalse
85+
}
86+
87+
@Test
88+
fun equalsWithDifferentBSSID() {
89+
val other = WiFiIdentifier(ssid, "otherBSSID")
90+
assertThat(fixture.equals(other)).isFalse
91+
}
92+
93+
@Test
94+
fun equalsWithBothDifferent() {
95+
val other = WiFiIdentifier("otherSSID", "otherBSSID")
96+
assertThat(fixture.equals(other)).isFalse
97+
}
98+
99+
@Test
100+
fun equalsUsingDifferentCase() {
77101
// setup
78-
val other = WiFiIdentifier(ssid, bssid)
102+
val other = WiFiIdentifier(ssid.lowercase(), bssid.uppercase())
79103
// execute & validate
80-
assertThat(fixture.compareTo(other)).isEqualTo(0)
104+
assertThat(fixture.equals(other, true)).isTrue
81105
}
82106

83107
@Test
84-
fun rawSSID() {
108+
fun equalsUsingSameCase() {
85109
// setup
86-
val fixture = WiFiIdentifier(String.EMPTY, bssid)
110+
val other = WiFiIdentifier(ssid, bssid)
87111
// execute & validate
88-
assertThat(fixture.ssidRaw).isEqualTo(String.EMPTY)
89-
assertThat(fixture.ssid).isEqualTo(hidden)
112+
assertThat(other).isEqualTo(fixture)
113+
assertThat(other).isNotSameAs(fixture)
90114
}
91115

92116
}

app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignalExtraTest.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,25 @@ class WiFiSignalExtraTest {
7070
assertThat(actual).isEqualTo(expected)
7171
}
7272

73+
@Test
74+
fun fastRoamingDisplayWithEmptyList() {
75+
// setup
76+
val fixture = WiFiSignalExtra(fastRoaming = emptyList())
77+
val expected = ""
78+
// execute
79+
val actual = fixture.fastRoamingDisplay(mainActivity.applicationContext)
80+
// validate
81+
assertThat(actual).isEqualTo(expected)
82+
}
83+
84+
@Test
85+
fun fastRoamingDisplayWithDuplicateValues() {
86+
// setup
87+
val fixture = WiFiSignalExtra(fastRoaming = listOf(FastRoaming.FR_802_11R, FastRoaming.FR_802_11R))
88+
val expected = "802.11r 802.11r"
89+
// execute
90+
val actual = fixture.fastRoamingDisplay(mainActivity.applicationContext)
91+
// validate
92+
assertThat(actual).isEqualTo(expected)
93+
}
7394
}

app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignalTest.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,33 @@ class WiFiSignalTest {
125125
assertThat(other).isNotSameAs(fixture)
126126
}
127127

128+
@Test
129+
fun equalsReturnsFalseForDifferentPrimaryFrequency() {
130+
val different = WiFiSignal(primaryFrequency + 1, centerFrequency, WiFiWidth.MHZ_40, level)
131+
assertThat(fixture).isNotEqualTo(different)
132+
}
133+
134+
@Test
135+
fun equalsReturnsFalseForDifferentWiFiWidth() {
136+
val different = WiFiSignal(primaryFrequency, centerFrequency, WiFiWidth.MHZ_20, level)
137+
assertThat(fixture).isNotEqualTo(different)
138+
}
139+
140+
@Test
141+
fun equalsReturnsFalseForNull() {
142+
assertThat(fixture.equals(null)).isFalse
143+
}
144+
145+
@Test
146+
fun equalsReturnsFalseForDifferentType() {
147+
assertThat(fixture.equals("not a WiFiSignal")).isFalse
148+
}
149+
150+
@Test
151+
fun equalsReturnsTrueForSameInstance() {
152+
assertThat(fixture).isEqualTo(fixture)
153+
}
154+
128155
@Test
129156
fun hashCodeUsingPrimaryFrequencyAndWidth() {
130157
// execute & validate

0 commit comments

Comments
 (0)