1- package com.example.storybridge_android.ui.main
1+ package com.example.storybridge_android
22
33import android.app.Activity.RESULT_OK
44import android.app.Instrumentation
@@ -15,16 +15,17 @@ import androidx.test.espresso.intent.Intents
1515import androidx.test.espresso.intent.matcher.IntentMatchers
1616import androidx.test.espresso.intent.Intents.intended
1717import androidx.test.ext.junit.runners.AndroidJUnit4
18- import com.example.storybridge_android.ServiceLocator
1918import com.example.storybridge_android.data.*
2019import com.example.storybridge_android.network.UserInfoResponse
21- import com.example.storybridge_android.R
2220import com.example.storybridge_android.network.DiscardSessionResponse
21+ import com.example.storybridge_android.network.StartSessionResponse
22+ import com.example.storybridge_android.ui.main.MainActivity
2323import io.mockk.*
2424import kotlinx.coroutines.ExperimentalCoroutinesApi
2525import kotlinx.coroutines.test.runTest
2626import org.junit.*
2727import org.junit.runner.RunWith
28+ import retrofit2.Response
2829
2930@RunWith(AndroidJUnit4 ::class )
3031@OptIn(ExperimentalCoroutinesApi ::class )
@@ -47,6 +48,9 @@ class MainActivityMockTest {
4748 mockkStatic(Settings .Secure ::class )
4849 every { Settings .Secure .getString(any(), Settings .Secure .ANDROID_ID ) } returns " DEVICE123"
4950
51+ coEvery { mockSessionRepo.startSession(" DEVICE123" ) } returns
52+ Result .success(StartSessionResponse (" SESSION_123" , " 2025-12-03" , 1 ))
53+
5054 Intents .init ()
5155 }
5256
@@ -60,21 +64,9 @@ class MainActivityMockTest {
6064 Intent (ApplicationProvider .getApplicationContext(), MainActivity ::class .java)
6165 )
6266
63- @Test
64- fun startButton_opensStartSessionActivity () = runTest {
65- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2.Response .success(emptyList())
66-
67- launchMain()
68- Thread .sleep(1500 )
69-
70- onView(withId(R .id.startNewReadingButton)).perform(click())
71-
72- intended(IntentMatchers .hasComponent(" com.example.storybridge_android.ui.session.start.StartSessionActivity" ))
73- }
74-
7567 @Test
7668 fun settingsButton_opensSettingActivity () = runTest {
77- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(emptyList())
69+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(emptyList())
7870
7971 launchMain()
8072 Thread .sleep(800 )
@@ -105,7 +97,7 @@ class MainActivityMockTest {
10597 )
10698 )
10799
108- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(fakeList)
100+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(fakeList)
109101
110102 launchMain()
111103 Thread .sleep(1000 )
@@ -116,7 +108,7 @@ class MainActivityMockTest {
116108
117109 @Test
118110 fun userInfo_empty_showsEmptyContainer () = runTest {
119- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(emptyList())
111+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(emptyList())
120112
121113 launchMain()
122114 Thread .sleep(800 )
@@ -126,7 +118,7 @@ class MainActivityMockTest {
126118
127119 @Test
128120 fun settingsLauncher_receivesResultOk () = runTest {
129- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(emptyList())
121+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(emptyList())
130122
131123 val intent = Intent (ApplicationProvider .getApplicationContext(), MainActivity ::class .java)
132124 val scenario = ActivityScenario .launch<MainActivity >(intent)
@@ -145,7 +137,7 @@ class MainActivityMockTest {
145137 Thread .sleep(1000 )
146138
147139 // THEN: SettingActivity activated
148- Intents . intended(
140+ intended(
149141 IntentMatchers .hasComponent(" com.example.storybridge_android.ui.setting.SettingActivity" )
150142 )
151143
@@ -158,7 +150,7 @@ class MainActivityMockTest {
158150
159151 @Test
160152 fun backPress_showsExitPanel () = runTest {
161- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(emptyList())
153+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(emptyList())
162154
163155 launchMain()
164156 Thread .sleep(500 )
@@ -171,7 +163,7 @@ class MainActivityMockTest {
171163
172164 @Test
173165 fun exitConfirmBtn_closesExitPanel () = runTest {
174- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(emptyList())
166+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(emptyList())
175167
176168 val scenario = launchMain()
177169 Thread .sleep(500 )
@@ -200,7 +192,7 @@ class MainActivityMockTest {
200192
201193 @Test
202194 fun exitCancelBtn_hidesExitPanel () = runTest {
203- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(emptyList())
195+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(emptyList())
204196
205197 launchMain()
206198 Thread .sleep(500 )
@@ -228,7 +220,7 @@ class MainActivityMockTest {
228220 translated_title = " TestBook"
229221 )
230222 )
231- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(fakeList)
223+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(fakeList)
232224
233225 launchMain()
234226 Thread .sleep(800 )
@@ -251,7 +243,7 @@ class MainActivityMockTest {
251243 translated_title = " TestBook"
252244 )
253245 )
254- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(fakeList)
246+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(fakeList)
255247
256248 launchMain()
257249 Thread .sleep(800 )
@@ -277,7 +269,7 @@ class MainActivityMockTest {
277269 translated_title = " TestBook"
278270 )
279271 )
280- coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns retrofit2. Response .success(fakeList)
272+ coEvery { mockUserRepo.getUserInfo(" DEVICE123" ) } returns Response .success(fakeList)
281273 coEvery { mockSessionRepo.discardSession(" S1" ) } returns
282274 Result .success(DiscardSessionResponse (" Session discarded" ))
283275
0 commit comments