From fabd33a147c5525e05b30393702725c48ba47212 Mon Sep 17 00:00:00 2001 From: Pell Date: Mon, 21 Apr 2025 11:04:53 +0200 Subject: [PATCH 01/22] Added hilt test modules --- core/api/build.gradle.kts | 2 + .../com/random/users/api/di/TestApiModule.kt | 61 +++++++++++++++++++ core/database/build.gradle.kts | 2 + .../users/database/di/TestDatabaseModule.kt | 32 ++++++++++ core/preferences/build.gradle.kts | 1 + .../preferences/di/TestPreferencesModule.kt | 31 ++++++++++ 6 files changed, 129 insertions(+) create mode 100644 core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt create mode 100644 core/database/src/main/kotlin/com/random/users/database/di/TestDatabaseModule.kt create mode 100644 core/preferences/src/main/kotlin/com/random/users/preferences/di/TestPreferencesModule.kt diff --git a/core/api/build.gradle.kts b/core/api/build.gradle.kts index c53dd27..d2b2eb9 100644 --- a/core/api/build.gradle.kts +++ b/core/api/build.gradle.kts @@ -39,6 +39,8 @@ dependencies { implementation(libs.retrofit.gson) implementation(libs.okhttp) implementation(libs.okhttp.logging.interceptor) + implementation(libs.hilt.testing) + implementation(libs.mockwebserver) ksp(libs.com.google.dagger.hilt.compiler) diff --git a/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt b/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt new file mode 100644 index 0000000..e09fc74 --- /dev/null +++ b/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt @@ -0,0 +1,61 @@ +package com.random.users.api.di + +import arrow.retrofit.adapter.either.EitherCallAdapterFactory +import com.random.users.api.api.UsersApi +import dagger.Module +import dagger.Provides +import dagger.hilt.components.SingletonComponent +import dagger.hilt.testing.TestInstallIn +import okhttp3.OkHttpClient +import okhttp3.logging.HttpLoggingInterceptor +import okhttp3.mockwebserver.MockResponse +import okhttp3.mockwebserver.MockWebServer +import okhttp3.mockwebserver.QueueDispatcher +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory +import javax.inject.Singleton + +@Module +@TestInstallIn( + components = [SingletonComponent::class], + replaces = [ApiModule::class], +) +object TestApiModule { + @Provides + @Singleton + fun provideRetrofit( + mockWebServer: MockWebServer, + client: OkHttpClient, + ): Retrofit = + Retrofit + .Builder() + .baseUrl(mockWebServer.url("/").toString()) + .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(EitherCallAdapterFactory.create()) + .client(client) + .build() + + @Provides + fun provideOkHttpClient(): OkHttpClient { + val logging = HttpLoggingInterceptor() + logging.setLevel(HttpLoggingInterceptor.Level.BODY) + return OkHttpClient + .Builder() + .addInterceptor(logging) + .build() + } + + @Provides + @Singleton + fun provideMockWebServer(): MockWebServer { + val mockWebServer = MockWebServer() + val queueDispatcher = QueueDispatcher() + queueDispatcher.setFailFast(MockResponse()) + mockWebServer.dispatcher = queueDispatcher + return mockWebServer + } + + @Provides + @Singleton + fun provideUsersApi(retrofit: Retrofit): UsersApi = retrofit.create(UsersApi::class.java) +} diff --git a/core/database/build.gradle.kts b/core/database/build.gradle.kts index 05a3fff..716d2df 100644 --- a/core/database/build.gradle.kts +++ b/core/database/build.gradle.kts @@ -35,6 +35,8 @@ android { dependencies { implementation(libs.bundles.layer.data) implementation(libs.room.ktx) + implementation(libs.room.testing) + implementation(libs.hilt.testing) ksp(libs.com.google.dagger.hilt.compiler) ksp(libs.room.compiler) diff --git a/core/database/src/main/kotlin/com/random/users/database/di/TestDatabaseModule.kt b/core/database/src/main/kotlin/com/random/users/database/di/TestDatabaseModule.kt new file mode 100644 index 0000000..fb761ad --- /dev/null +++ b/core/database/src/main/kotlin/com/random/users/database/di/TestDatabaseModule.kt @@ -0,0 +1,32 @@ +package com.random.users.database.di + +import android.content.Context +import androidx.room.Room +import com.random.users.database.RandomUsersDatabase +import com.random.users.database.dao.UserDao +import dagger.Module +import dagger.Provides +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import dagger.hilt.testing.TestInstallIn +import javax.inject.Singleton + +@Module +@TestInstallIn( + components = [SingletonComponent::class], + replaces = [DatabaseModule::class], +) +object TestDatabaseModule { + @Provides + @Singleton + fun provideDatabase( + @ApplicationContext appContext: Context, + ) = Room + .inMemoryDatabaseBuilder(appContext, RandomUsersDatabase::class.java) + .allowMainThreadQueries() + .build() + + @Provides + @Singleton + fun provideUserDao(db: RandomUsersDatabase): UserDao = db.userDao() +} diff --git a/core/preferences/build.gradle.kts b/core/preferences/build.gradle.kts index 828c689..5c1a46e 100644 --- a/core/preferences/build.gradle.kts +++ b/core/preferences/build.gradle.kts @@ -34,6 +34,7 @@ android { dependencies { implementation(libs.bundles.layer.data) + implementation(libs.hilt.testing) ksp(libs.com.google.dagger.hilt.compiler) diff --git a/core/preferences/src/main/kotlin/com/random/users/preferences/di/TestPreferencesModule.kt b/core/preferences/src/main/kotlin/com/random/users/preferences/di/TestPreferencesModule.kt new file mode 100644 index 0000000..58d4933 --- /dev/null +++ b/core/preferences/src/main/kotlin/com/random/users/preferences/di/TestPreferencesModule.kt @@ -0,0 +1,31 @@ +package com.random.users.preferences.di + +import android.content.Context +import android.content.SharedPreferences +import com.random.users.preferences.manager.PreferencesManager +import dagger.Module +import dagger.Provides +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import dagger.hilt.testing.TestInstallIn +import javax.inject.Singleton + +@Module +@TestInstallIn( + components = [SingletonComponent::class], + replaces = [PreferencesModule::class], +) +object TestPreferencesModule { + private const val TEST_PREFERENCES_NAME = "test_preferences" + + @Provides + @Singleton + fun provideFakeSharedPreferences( + @ApplicationContext context: Context, + ): SharedPreferences = context.getSharedPreferences(TEST_PREFERENCES_NAME, Context.MODE_PRIVATE) + + @Provides + @Singleton + fun providePreferencesManager(sharedPreferences: SharedPreferences): PreferencesManager = + PreferencesManager(sharedPreferences) +} From 7bb66d326ecc8f00068ba69dc3852402e2639fb6 Mon Sep 17 00:00:00 2001 From: Pell Date: Mon, 21 Apr 2025 11:05:44 +0200 Subject: [PATCH 02/22] Added hilt activity debug to tests --- core/test/build.gradle.kts | 16 + core/test/src/debug/AndroidManifest.xml | 15 + .../users/test/HiltComponentActivity.kt | 7 + .../test/model/getUsersListResponseJson.kt | 1716 +++++++++++++++++ .../random/users/test/rules/RoborazziRules.kt | 4 +- .../data/datasource/UsersApiDataSource.kt | 4 +- .../data/repository/UsersRepositoryImpl.kt | 2 +- 7 files changed, 1760 insertions(+), 4 deletions(-) create mode 100644 core/test/src/debug/AndroidManifest.xml create mode 100644 core/test/src/debug/kotlin/com/random/users/test/HiltComponentActivity.kt create mode 100644 core/test/src/main/kotlin/com/random/users/test/model/getUsersListResponseJson.kt diff --git a/core/test/build.gradle.kts b/core/test/build.gradle.kts index d40783a..b57f960 100644 --- a/core/test/build.gradle.kts +++ b/core/test/build.gradle.kts @@ -30,11 +30,27 @@ android { kotlinOptions { jvmTarget = AppVersions.JVM_TARGET } + testOptions { + unitTests { + isIncludeAndroidResources = true + } + } } dependencies { implementation(libs.bundles.layer.data) ksp(libs.com.google.dagger.hilt.compiler) implementation(libs.bundles.test.compose) + implementation(libs.retrofit) + implementation(libs.retrofit.gson) + implementation(libs.okhttp) + implementation(libs.okhttp.logging.interceptor) + implementation(libs.room.ktx) + implementation(libs.room.testing) + + implementation(project(":core:api")) + implementation(project(":core:database")) + implementation(project(":core:preferences")) + testImplementation(libs.bundles.test.unit) } diff --git a/core/test/src/debug/AndroidManifest.xml b/core/test/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..3b52a4a --- /dev/null +++ b/core/test/src/debug/AndroidManifest.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/core/test/src/debug/kotlin/com/random/users/test/HiltComponentActivity.kt b/core/test/src/debug/kotlin/com/random/users/test/HiltComponentActivity.kt new file mode 100644 index 0000000..e4a1822 --- /dev/null +++ b/core/test/src/debug/kotlin/com/random/users/test/HiltComponentActivity.kt @@ -0,0 +1,7 @@ +package com.random.users.test + +import androidx.activity.ComponentActivity +import dagger.hilt.android.AndroidEntryPoint + +@AndroidEntryPoint +class HiltComponentActivity: ComponentActivity() diff --git a/core/test/src/main/kotlin/com/random/users/test/model/getUsersListResponseJson.kt b/core/test/src/main/kotlin/com/random/users/test/model/getUsersListResponseJson.kt new file mode 100644 index 0000000..61a2dbc --- /dev/null +++ b/core/test/src/main/kotlin/com/random/users/test/model/getUsersListResponseJson.kt @@ -0,0 +1,1716 @@ +package com.random.users.test.model + +val getUserListResponsePage1Json = + """ +{ + "results": [ + { + "gender": "female", + "name": { + "title": "Mrs", + "first": "Josepha", + "last": "Van Slooten" + }, + "location": { + "street": { + "number": 7476, + "name": "Klaas Risstraat" + }, + "city": "Feanwalden", + "state": "Zuid-Holland", + "country": "Netherlands", + "postcode": "6690 FJ", + "coordinates": { + "latitude": "37.0200", + "longitude": "63.9935" + }, + "timezone": { + "offset": "+4:00", + "description": "Abu Dhabi, Muscat, Baku, Tbilisi" + } + }, + "email": "josepha.vanslooten@example.com", + "login": { + "uuid": "1", + "username": "silverswan307", + "password": "1031", + "salt": "DNXXVi7c", + "md5": "ea9db62bd657a660dab17cef41e7b919", + "sha1": "128074425933d31421891e00fafb02dad6fb72bc", + "sha256": "ba4a33b2ab88585213daaa06ecc5b19aa61d03e289e6a1889c98e77a9c56245e" + }, + "dob": { + "date": "1950-06-13T04:25:41.108Z", + "age": 74 + }, + "registered": { + "date": "2014-12-04T09:56:39.459Z", + "age": 10 + }, + "phone": "(070) 8310840", + "cell": "(06) 68510177", + "id": { + "name": "BSN", + "value": "35780981" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/96.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/96.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/96.jpg" + }, + "nat": "NL" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Felix", + "last": "Hansen" + }, + "location": { + "street": { + "number": 3893, + "name": "Solparken" + }, + "city": "Roedovre", + "state": "Nordjylland", + "country": "Denmark", + "postcode": 26549, + "coordinates": { + "latitude": "-17.6922", + "longitude": "-144.9417" + }, + "timezone": { + "offset": "0:00", + "description": "Western Europe Time, London, Lisbon, Casablanca" + } + }, + "email": "felix.hansen@example.com", + "login": { + "uuid": "2", + "username": "angrybutterfly440", + "password": "return", + "salt": "iigHH0qB", + "md5": "4d85055c03bac7724c4b88fbb54ce9ba", + "sha1": "185d3b9665710ba42ed32e0acdd02f3b49fed5cd", + "sha256": "4071c18ddd77b0ca5af68c3d774ce79dc5df991d24a6c415207a9da5cda1176e" + }, + "dob": { + "date": "1998-01-13T00:21:35.346Z", + "age": 27 + }, + "registered": { + "date": "2015-01-21T20:57:05.563Z", + "age": 10 + }, + "phone": "27582140", + "cell": "16992488", + "id": { + "name": "CPR", + "value": "120198-4273" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/69.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/69.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/69.jpg" + }, + "nat": "DK" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Pranav", + "last": "Gupta" + }, + "location": { + "street": { + "number": 2288, + "name": "Tank Bund Rd" + }, + "city": "Dharmavaram", + "state": "Puducherry", + "country": "India", + "postcode": 31611, + "coordinates": { + "latitude": "-22.5974", + "longitude": "-94.1764" + }, + "timezone": { + "offset": "-3:00", + "description": "Brazil, Buenos Aires, Georgetown" + } + }, + "email": "pranav.gupta@example.com", + "login": { + "uuid": "3", + "username": "whitebird338", + "password": "vvvvvvvv", + "salt": "gsrLAlfr", + "md5": "cc104f06bfbda6cd4954729ddbb82972", + "sha1": "a4fdbf6d81b8295aec72895ed24820dd0107e00e", + "sha256": "ea81a600cfdfd19d78f950bad0dbc2a8ca7081046c4bded3c5eb287423cf3e19" + }, + "dob": { + "date": "1996-01-16T00:02:18.918Z", + "age": 29 + }, + "registered": { + "date": "2019-02-20T04:18:37.962Z", + "age": 6 + }, + "phone": "9084650508", + "cell": "8587017105", + "id": { + "name": "UIDAI", + "value": "237690287303" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/77.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/77.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/77.jpg" + }, + "nat": "IN" + }, + { + "gender": "female", + "name": { + "title": "Mrs", + "first": "Käthi", + "last": "Wurst" + }, + "location": { + "street": { + "number": 9953, + "name": "Birkenweg" + }, + "city": "Bad Teinach-Zavelstein", + "state": "Niedersachsen", + "country": "Germany", + "postcode": 92961, + "coordinates": { + "latitude": "-84.5439", + "longitude": "-134.6555" + }, + "timezone": { + "offset": "0:00", + "description": "Western Europe Time, London, Lisbon, Casablanca" + } + }, + "email": "kathi.wurst@example.com", + "login": { + "uuid": "4", + "username": "goldensnake878", + "password": "drew", + "salt": "QnsgoCXw", + "md5": "120998bda1c199ee3fa90d183a44d757", + "sha1": "8f3b4e3dcefbb3c84a6456d8d0e6cade0d8dc41b", + "sha256": "521002c954b681167edece9a613c01f0e525a3ae4f20d505d33140d7dc1b5d24" + }, + "dob": { + "date": "1959-05-19T22:10:59.102Z", + "age": 65 + }, + "registered": { + "date": "2005-01-23T21:37:19.295Z", + "age": 20 + }, + "phone": "0236-0968353", + "cell": "0174-4190414", + "id": { + "name": "SVNR", + "value": "14 190559 W 514" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/27.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/27.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/27.jpg" + }, + "nat": "DE" + }, + { + "gender": "female", + "name": { + "title": "Ms", + "first": "Indie", + "last": "Wang" + }, + "location": { + "street": { + "number": 6927, + "name": "Cambridge Terrace" + }, + "city": "Wellington", + "state": "Auckland", + "country": "New Zealand", + "postcode": 80424, + "coordinates": { + "latitude": "-76.9649", + "longitude": "-84.6366" + }, + "timezone": { + "offset": "+2:00", + "description": "Kaliningrad, South Africa" + } + }, + "email": "indie.wang@example.com", + "login": { + "uuid": "5", + "username": "beautifultiger224", + "password": "shaolin", + "salt": "4TvG4Hgf", + "md5": "515d8840c159e61eeb73924908974db5", + "sha1": "63723ae9c79d7704c972ad04a5474089119a9952", + "sha256": "3302f989cb3de8ec2e727dba1cd32fabb5d62965855e5ffce5d985b6fc3e7b31" + }, + "dob": { + "date": "1980-04-15T18:02:40.704Z", + "age": 45 + }, + "registered": { + "date": "2004-10-31T23:08:13.522Z", + "age": 20 + }, + "phone": "(027)-156-8998", + "cell": "(293)-279-9056", + "id": { + "name": "", + "value": null + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/86.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/86.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/86.jpg" + }, + "nat": "NZ" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Kuzman", + "last": "Anđelić" + }, + "location": { + "street": { + "number": 4720, + "name": "Porodice Ristić" + }, + "city": "Bosilegrad", + "state": "North Banat", + "country": "Serbia", + "postcode": 77512, + "coordinates": { + "latitude": "38.3831", + "longitude": "-71.2108" + }, + "timezone": { + "offset": "-1:00", + "description": "Azores, Cape Verde Islands" + } + }, + "email": "kuzman.andelic@example.com", + "login": { + "uuid": "6", + "username": "brownpanda718", + "password": "diver1", + "salt": "pMt71QHl", + "md5": "dbb6737d340ab6a5a7d7e6c5e8617e7a", + "sha1": "733923fb26bf708f49c5c072148126e0cb75997d", + "sha256": "0df48583c838da70152e31ad7069ca7338d8dd3143804a567683348ff09a8428" + }, + "dob": { + "date": "1977-01-11T16:48:30.071Z", + "age": 48 + }, + "registered": { + "date": "2020-10-08T04:23:35.874Z", + "age": 4 + }, + "phone": "024-9733-745", + "cell": "065-9391-510", + "id": { + "name": "SID", + "value": "329693642" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/51.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/51.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/51.jpg" + }, + "nat": "RS" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Alexander", + "last": "Macdonald" + }, + "location": { + "street": { + "number": 1244, + "name": "Victoria Ave" + }, + "city": "Chipman", + "state": "Saskatchewan", + "country": "Canada", + "postcode": "A7Q 3G6", + "coordinates": { + "latitude": "-86.1438", + "longitude": "157.9625" + }, + "timezone": { + "offset": "-11:00", + "description": "Midway Island, Samoa" + } + }, + "email": "alexander.macdonald@example.com", + "login": { + "uuid": "7", + "username": "lazyleopard442", + "password": "sheepdog", + "salt": "Q3LM5O0W", + "md5": "ec87e5576741bd7d678406f9f1f07cb4", + "sha1": "db07baeeb9fd777d59143271d57cda5c859f7212", + "sha256": "6ac30c881a256a16467843a3fab42e3ca52018280c3e1ff18ed4ca83a08d0b34" + }, + "dob": { + "date": "1985-11-05T16:21:16.832Z", + "age": 39 + }, + "registered": { + "date": "2018-04-30T02:37:05.366Z", + "age": 6 + }, + "phone": "I45 Z60-3334", + "cell": "Y23 F47-3466", + "id": { + "name": "SIN", + "value": "117718502" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/1.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/1.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/1.jpg" + }, + "nat": "CA" + }, + { + "gender": "female", + "name": { + "title": "Mrs", + "first": "Sandra", + "last": "Faure" + }, + "location": { + "street": { + "number": 583, + "name": "Place de L'Abbé-Franz-Stock" + }, + "city": "Colombes", + "state": "Dordogne", + "country": "France", + "postcode": 55365, + "coordinates": { + "latitude": "70.5960", + "longitude": "14.9052" + }, + "timezone": { + "offset": "+4:00", + "description": "Abu Dhabi, Muscat, Baku, Tbilisi" + } + }, + "email": "sandra.faure@example.com", + "login": { + "uuid": "8", + "username": "purplepeacock710", + "password": "chelle", + "salt": "EupiQyqy", + "md5": "c1cfb174db113baad0244f5ea32d15ba", + "sha1": "c293b97a94fade9ba798bf3741816285ba27fecc", + "sha256": "f502f2ae64e96ecd83d193820f0ea20ceaaccce92907b992fa39a77efefe3645" + }, + "dob": { + "date": "1958-12-20T02:36:34.390Z", + "age": 66 + }, + "registered": { + "date": "2002-07-12T02:16:23.479Z", + "age": 22 + }, + "phone": "04-11-93-23-91", + "cell": "06-29-86-93-29", + "id": { + "name": "INSEE", + "value": "2581134043821 25" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/75.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/75.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/75.jpg" + }, + "nat": "FR" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Borja", + "last": "Giménez" + }, + "location": { + "street": { + "number": 2294, + "name": "Calle de Téllez" + }, + "city": "Torrejón de Ardoz", + "state": "Asturias", + "country": "Spain", + "postcode": 53813, + "coordinates": { + "latitude": "-19.3128", + "longitude": "-171.3009" + }, + "timezone": { + "offset": "+5:45", + "description": "Kathmandu" + } + }, + "email": "borja.gimenez@example.com", + "login": { + "uuid": "9", + "username": "orangedog726", + "password": "shot", + "salt": "ac67mKMY", + "md5": "b9829501eb4d0c72e561311e97af4c1f", + "sha1": "5bd91739d87b285a14374c96f1ab2d7af71cf2b1", + "sha256": "a296a510705bd60cfc5062b36a52eefc8973b90e6f5ecb3621cbf10e2b4a4455" + }, + "dob": { + "date": "2001-02-17T06:09:27.329Z", + "age": 24 + }, + "registered": { + "date": "2005-11-17T06:56:42.526Z", + "age": 19 + }, + "phone": "904-903-137", + "cell": "694-171-691", + "id": { + "name": "DNI", + "value": "01714079-X" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/82.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/82.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/82.jpg" + }, + "nat": "ES" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Carl", + "last": "Garza" + }, + "location": { + "street": { + "number": 6178, + "name": "Smokey Ln" + }, + "city": "Pearland", + "state": "Georgia", + "country": "United States", + "postcode": 49541, + "coordinates": { + "latitude": "78.2839", + "longitude": "-54.9246" + }, + "timezone": { + "offset": "+5:00", + "description": "Ekaterinburg, Islamabad, Karachi, Tashkent" + } + }, + "email": "carl.garza@example.com", + "login": { + "uuid": "10", + "username": "bluefish309", + "password": "chaser", + "salt": "l2Vu87Hj", + "md5": "fa865b1af309faaeab3ab58d3cf5d0a4", + "sha1": "381425b73e94fae50e0a3750b73f0059f309bbf7", + "sha256": "853a710ade76e34c7bfc71828adba3cfba41c2e6ef85bb999a945ae70bd423c2" + }, + "dob": { + "date": "1983-07-28T12:49:25.461Z", + "age": 41 + }, + "registered": { + "date": "2014-02-03T21:54:16.388Z", + "age": 11 + }, + "phone": "(792) 768-6349", + "cell": "(510) 625-7250", + "id": { + "name": "SSN", + "value": "024-69-1119" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/23.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/23.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/23.jpg" + }, + "nat": "US" + }, + { + "gender": "female", + "name": { + "title": "Ms", + "first": "Amelia", + "last": "Kumar" + }, + "location": { + "street": { + "number": 6201, + "name": "College Road" + }, + "city": "Taupo", + "state": "Marlborough", + "country": "New Zealand", + "postcode": 16873, + "coordinates": { + "latitude": "51.9290", + "longitude": "108.9934" + }, + "timezone": { + "offset": "+9:30", + "description": "Adelaide, Darwin" + } + }, + "email": "amelia.kumar@example.com", + "login": { + "uuid": "11", + "username": "lazybutterfly984", + "password": "aileen", + "salt": "Iz0VwYV8", + "md5": "73d19a642dba48e1efdd7f1785c114d1", + "sha1": "8ab62a4a0bc6c6b634811c3e338654cec551396f", + "sha256": "fa06b8f52b38581f91e4d965d8545b030c805109669c747f630bb3f682f32696" + }, + "dob": { + "date": "1981-07-02T04:21:33.185Z", + "age": 43 + }, + "registered": { + "date": "2006-09-15T09:50:32.144Z", + "age": 18 + }, + "phone": "(464)-056-3509", + "cell": "(664)-753-9639", + "id": { + "name": "", + "value": null + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/71.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/71.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/71.jpg" + }, + "nat": "NZ" + }, + { + "gender": "female", + "name": { + "title": "Ms", + "first": "Patricia", + "last": "Burke" + }, + "location": { + "street": { + "number": 6124, + "name": "Green Lane" + }, + "city": "Carrick-on-Suir", + "state": "Fingal", + "country": "Ireland", + "postcode": 20723, + "coordinates": { + "latitude": "58.0955", + "longitude": "3.7608" + }, + "timezone": { + "offset": "-5:00", + "description": "Eastern Time (US & Canada), Bogota, Lima" + } + }, + "email": "patricia.burke@example.com", + "login": { + "uuid": "12", + "username": "tinyswan195", + "password": "airwolf", + "salt": "jAsP6jnO", + "md5": "956dc63590394f90621d54a84c2ff8d9", + "sha1": "975a6540535a833de1308db2b9d3c7f80fd6a0f3", + "sha256": "ff9661668c5cff4ee7ce55d854eee76b9d5248ba04cec21e7f2e5c4dcb0cbf91" + }, + "dob": { + "date": "1974-10-17T18:35:14.154Z", + "age": 50 + }, + "registered": { + "date": "2014-11-12T15:16:56.054Z", + "age": 10 + }, + "phone": "051-519-3184", + "cell": "081-860-0352", + "id": { + "name": "PPS", + "value": "2080264T" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/77.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/77.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/77.jpg" + }, + "nat": "IE" + }, + { + "gender": "female", + "name": { + "title": "Mrs", + "first": "Ashley", + "last": "Taylor" + }, + "location": { + "street": { + "number": 9071, + "name": "Homestead Rd" + }, + "city": "Bunbury", + "state": "Victoria", + "country": "Australia", + "postcode": 3609, + "coordinates": { + "latitude": "-44.5935", + "longitude": "-174.4859" + }, + "timezone": { + "offset": "+5:00", + "description": "Ekaterinburg, Islamabad, Karachi, Tashkent" + } + }, + "email": "ashley.taylor@example.com", + "login": { + "uuid": "13", + "username": "redmouse104", + "password": "bigmike", + "salt": "puoIM8c6", + "md5": "1ab7ed076e62047a077954e1e746bceb", + "sha1": "843158934c8ff3843e4cde3ca0c1f16434b73409", + "sha256": "16fe5fdcb44c3baf264e852dd262f142c5fcbec55763c3f65b37e9d8ee1f338c" + }, + "dob": { + "date": "1945-02-12T23:37:08.128Z", + "age": 80 + }, + "registered": { + "date": "2002-03-26T05:04:49.764Z", + "age": 23 + }, + "phone": "00-6785-1546", + "cell": "0421-837-688", + "id": { + "name": "TFN", + "value": "240309476" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/15.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/15.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/15.jpg" + }, + "nat": "AU" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Budimir", + "last": "Isaković" + }, + "location": { + "street": { + "number": 9709, + "name": "Ljiljane Jovanović" + }, + "city": "Temerin", + "state": "South Banat", + "country": "Serbia", + "postcode": 59515, + "coordinates": { + "latitude": "-48.7053", + "longitude": "71.5556" + }, + "timezone": { + "offset": "+3:00", + "description": "Baghdad, Riyadh, Moscow, St. Petersburg" + } + }, + "email": "budimir.isakovic@example.com", + "login": { + "uuid": "14", + "username": "smallfrog663", + "password": "polly", + "salt": "ZH0xv5b6", + "md5": "0cd884b08359fb809e80ef02d700c3b5", + "sha1": "ab82ba53acae77145557f694eb139e306b862c69", + "sha256": "d5551bef863ab6d8af6429cc2de77c4958016d593646120abbb5f3e606b4a9f1" + }, + "dob": { + "date": "1996-04-27T19:47:54.458Z", + "age": 28 + }, + "registered": { + "date": "2011-11-27T10:24:18.035Z", + "age": 13 + }, + "phone": "031-3132-169", + "cell": "060-0635-671", + "id": { + "name": "SID", + "value": "148945470" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/86.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/86.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/86.jpg" + }, + "nat": "RS" + }, + { + "gender": "female", + "name": { + "title": "Mademoiselle", + "first": "Melissa", + "last": "Mathieu" + }, + "location": { + "street": { + "number": 4489, + "name": "Place du 8 Novembre 1942" + }, + "city": "Saint-Légier-La Chiésaz", + "state": "Glarus", + "country": "Switzerland", + "postcode": 4027, + "coordinates": { + "latitude": "33.0288", + "longitude": "158.1784" + }, + "timezone": { + "offset": "+10:00", + "description": "Eastern Australia, Guam, Vladivostok" + } + }, + "email": "melissa.mathieu@example.com", + "login": { + "uuid": "15", + "username": "ticklishgorilla700", + "password": "packard", + "salt": "ozRJfFdw", + "md5": "73ead56bb98f057dbb18f9028045b813", + "sha1": "d96456d9606526e5711f82bd7e7e1d2324aed12b", + "sha256": "675382a0499256964acf7a27363afe3f6c0374352dfe55fcd33992135a4cca25" + }, + "dob": { + "date": "1948-02-29T02:49:08.437Z", + "age": 77 + }, + "registered": { + "date": "2009-01-05T07:46:36.689Z", + "age": 16 + }, + "phone": "075 847 49 86", + "cell": "075 533 68 11", + "id": { + "name": "AVS", + "value": "756.0928.7456.76" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/8.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/8.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/8.jpg" + }, + "nat": "CH" + } + ], + "info": { + "seed": "7f2d2aa852defdce", + "results": 15, + "page": 1, + "version": "1.4" + } +} + """.trimIndent() + +val getUserListResponsePage2Json = + """ + { + "results": [ + { + "gender": "female", + "name": { + "title": "Mrs", + "first": "Peremisla", + "last": "Seredyuk" + }, + "location": { + "street": { + "number": 9877, + "name": "Mitropolita Lipkivskogo" + }, + "city": "Bahmut", + "state": "Zhitomirska", + "country": "Ukraine", + "postcode": 98107, + "coordinates": { + "latitude": "77.1761", + "longitude": "147.4159" + }, + "timezone": { + "offset": "-5:00", + "description": "Eastern Time (US & Canada), Bogota, Lima" + } + }, + "email": "peremisla.seredyuk@example.com", + "login": { + "uuid": "aca4f803-fb5c-4f15-b659-a26e16010eab", + "username": "organicmouse258", + "password": "english", + "salt": "RvU8euSy", + "md5": "f7579c41c82a3c4235c4a1fd473d25cc", + "sha1": "25080da7304c1027ddbf983ce7dec6b6d53322b8", + "sha256": "8b34964364e2632f86d142e2351244c55235b56f61e0db48301652ca3c6784c7" + }, + "dob": { + "date": "1966-03-25T11:48:55.573Z", + "age": 59 + }, + "registered": { + "date": "2020-02-23T10:49:31.416Z", + "age": 5 + }, + "phone": "(068) A10-8666", + "cell": "(097) W85-2117", + "id": { + "name": "", + "value": null + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/8.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/8.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/8.jpg" + }, + "nat": "UA" + }, + { + "gender": "female", + "name": { + "title": "Miss", + "first": "Eileen", + "last": "Warren" + }, + "location": { + "street": { + "number": 432, + "name": "Hillcrest Rd" + }, + "city": "Cape Coral", + "state": "South Dakota", + "country": "United States", + "postcode": 98989, + "coordinates": { + "latitude": "31.8258", + "longitude": "47.1161" + }, + "timezone": { + "offset": "-4:00", + "description": "Atlantic Time (Canada), Caracas, La Paz" + } + }, + "email": "eileen.warren@example.com", + "login": { + "uuid": "dd9412bf-b4e4-4405-acfd-1fe099b9c2a0", + "username": "silverdog693", + "password": "mister", + "salt": "1f74bKLT", + "md5": "d259069df5b475b6610fd2dcd8f7a552", + "sha1": "c90dc86e0812f7d179f58be02cdbeb03ce57923b", + "sha256": "f3dc5c938036a6bc4cfd0c0e0e32d492b9787d0efb65509dbdbad1e38ce894e2" + }, + "dob": { + "date": "1945-02-11T06:39:10.597Z", + "age": 80 + }, + "registered": { + "date": "2021-11-03T20:18:23.782Z", + "age": 3 + }, + "phone": "(735) 975-3367", + "cell": "(273) 789-3590", + "id": { + "name": "SSN", + "value": "289-26-1672" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/52.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/52.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/52.jpg" + }, + "nat": "US" + }, + { + "gender": "female", + "name": { + "title": "Mrs", + "first": "Simona", + "last": "Grushevskiy" + }, + "location": { + "street": { + "number": 6021, + "name": "Priladniy provulok" + }, + "city": "Kam'yanka-Buzka", + "state": "Avtonomna Respublika Krim", + "country": "Ukraine", + "postcode": 38593, + "coordinates": { + "latitude": "85.0881", + "longitude": "14.2578" + }, + "timezone": { + "offset": "+4:30", + "description": "Kabul" + } + }, + "email": "simona.grushevskiy@example.com", + "login": { + "uuid": "a48fc855-9b0c-46ae-b59f-13ee4a2ac4fe", + "username": "crazygoose691", + "password": "april1", + "salt": "wKjYMKQd", + "md5": "76465acf374c58755c1a95a8cbaba0e4", + "sha1": "ad7ab85e2a6601d3947849565a18e92e390e0cf2", + "sha256": "32ace1cd905fd0c6e3245f0c4ba959f691abec282eb64bc20c7b999662150526" + }, + "dob": { + "date": "1977-02-04T12:40:15.022Z", + "age": 48 + }, + "registered": { + "date": "2016-01-25T18:24:18.381Z", + "age": 9 + }, + "phone": "(066) K57-7522", + "cell": "(098) E86-2597", + "id": { + "name": "", + "value": null + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/11.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/11.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/11.jpg" + }, + "nat": "UA" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Javier", + "last": "Bailey" + }, + "location": { + "street": { + "number": 9693, + "name": "Pecan Acres Ln" + }, + "city": "Adelaide", + "state": "Australian Capital Territory", + "country": "Australia", + "postcode": 2678, + "coordinates": { + "latitude": "58.2422", + "longitude": "-96.5787" + }, + "timezone": { + "offset": "-6:00", + "description": "Central Time (US & Canada), Mexico City" + } + }, + "email": "javier.bailey@example.com", + "login": { + "uuid": "8a9b6055-92c9-49a0-945a-9a1168bb843d", + "username": "greentiger605", + "password": "deejay", + "salt": "KyixbWKu", + "md5": "673c52225141b1c63f5eb3e91ef85aae", + "sha1": "1d0c4d800f53d9745a99d15d045b8843bb1c3bc5", + "sha256": "e602f75db2c8554d7ac547918822514c3e8f07fda2e06a30b38f8a5f37da12cd" + }, + "dob": { + "date": "1975-04-10T03:40:44.453Z", + "age": 50 + }, + "registered": { + "date": "2014-06-06T12:40:55.017Z", + "age": 10 + }, + "phone": "07-8408-5651", + "cell": "0440-269-392", + "id": { + "name": "TFN", + "value": "031298897" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/70.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/70.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/70.jpg" + }, + "nat": "AU" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Ranko", + "last": "Terzić" + }, + "location": { + "street": { + "number": 1748, + "name": "Stanićeva" + }, + "city": "Blace", + "state": "Toplica", + "country": "Serbia", + "postcode": 87315, + "coordinates": { + "latitude": "-58.7298", + "longitude": "128.0302" + }, + "timezone": { + "offset": "-2:00", + "description": "Mid-Atlantic" + } + }, + "email": "ranko.terzic@example.com", + "login": { + "uuid": "a38eb057-03f9-4007-9626-0c9546e889bb", + "username": "beautifulzebra807", + "password": "aurora", + "salt": "kSO1Ue8p", + "md5": "fc8ae5667b3aa5ef39af5be98efbcb6b", + "sha1": "1e50536f63f0dc1e63459f6ea9839b6679b3887f", + "sha256": "eebc5b303d2b85ab9aaa991c17d015b7a797c714c5d4784fd3568e32590f735c" + }, + "dob": { + "date": "1973-08-31T16:19:40.002Z", + "age": 51 + }, + "registered": { + "date": "2020-01-15T07:48:57.374Z", + "age": 5 + }, + "phone": "030-4357-344", + "cell": "065-7527-717", + "id": { + "name": "SID", + "value": "830845895" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/15.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/15.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/15.jpg" + }, + "nat": "RS" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "علی", + "last": "زارعی" + }, + "location": { + "street": { + "number": 8582, + "name": "خالد اسلامبولی" + }, + "city": "کاشان", + "state": "خراسان رضوی", + "country": "Iran", + "postcode": 90089, + "coordinates": { + "latitude": "57.9607", + "longitude": "-15.4329" + }, + "timezone": { + "offset": "-9:00", + "description": "Alaska" + } + }, + "email": "aaly.zraay@example.com", + "login": { + "uuid": "0d8b8360-4af6-4e30-a23f-ddeb4d7ad52c", + "username": "bigfrog838", + "password": "wordpass", + "salt": "LWuPbjBH", + "md5": "fd672b4b3d8bc601100d953bff0730a5", + "sha1": "1b196afc6c895c945d5c6d634f64ee46e1f36513", + "sha256": "28d197d2b09319daff380ba67c1e81cf996a3b2850ab5ec3e10057a98e13ced0" + }, + "dob": { + "date": "1998-11-22T22:31:05.583Z", + "age": 26 + }, + "registered": { + "date": "2013-12-25T12:40:35.953Z", + "age": 11 + }, + "phone": "014-29527346", + "cell": "0937-023-8599", + "id": { + "name": "", + "value": null + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/45.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/45.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/45.jpg" + }, + "nat": "IR" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Arkadiy", + "last": "Korniiec" + }, + "location": { + "street": { + "number": 7120, + "name": "Abrikosoviy provulok" + }, + "city": "Luck", + "state": "Mikolayivska", + "country": "Ukraine", + "postcode": 37045, + "coordinates": { + "latitude": "-66.6025", + "longitude": "144.9396" + }, + "timezone": { + "offset": "+11:00", + "description": "Magadan, Solomon Islands, New Caledonia" + } + }, + "email": "arkadiy.korniiec@example.com", + "login": { + "uuid": "d2badb1f-411f-4c8e-af17-59b6779b93cc", + "username": "whitebird629", + "password": "grinch", + "salt": "SRidRRPW", + "md5": "f64dac43779c5620009dfac19b70a415", + "sha1": "4dd5cb89d68b589dca6dd7eeb6e4d3ee0f3f6964", + "sha256": "eeb391bcf82d6671bb24d815339826776601e49095778d39fef4c5d3c60c03cb" + }, + "dob": { + "date": "1971-10-19T10:47:24.228Z", + "age": 53 + }, + "registered": { + "date": "2019-01-03T03:10:27.746Z", + "age": 6 + }, + "phone": "(098) H06-3750", + "cell": "(098) H09-0846", + "id": { + "name": "", + "value": null + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/2.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/2.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/2.jpg" + }, + "nat": "UA" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Stanoje", + "last": "Živojinović" + }, + "location": { + "street": { + "number": 7470, + "name": "Petra Markovića" + }, + "city": "Žabari", + "state": "Prizren", + "country": "Serbia", + "postcode": 32373, + "coordinates": { + "latitude": "-67.5521", + "longitude": "92.6955" + }, + "timezone": { + "offset": "+1:00", + "description": "Brussels, Copenhagen, Madrid, Paris" + } + }, + "email": "stanoje.zivojinovic@example.com", + "login": { + "uuid": "e50e69df-9939-441d-bd4e-9c5a0278f25d", + "username": "redgoose989", + "password": "shawn", + "salt": "FcFIOSK8", + "md5": "0535ea6c3563ccb4a8c1ad7faf3efc98", + "sha1": "b7bd01bae80204d6943c819bcbbcd24e7a60c6a6", + "sha256": "a77c67dbdb7ae53d38104042b251476a4496a0f2b7021b091fe59e653ed755bb" + }, + "dob": { + "date": "1951-08-11T13:16:47.294Z", + "age": 73 + }, + "registered": { + "date": "2010-02-20T18:16:56.394Z", + "age": 15 + }, + "phone": "033-2653-305", + "cell": "068-8662-268", + "id": { + "name": "SID", + "value": "600458878" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/95.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/95.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/95.jpg" + }, + "nat": "RS" + }, + { + "gender": "female", + "name": { + "title": "Miss", + "first": "Anujna", + "last": "Nand" + }, + "location": { + "street": { + "number": 8202, + "name": "Kazimar St" + }, + "city": "Agra", + "state": "Telangana", + "country": "India", + "postcode": 58207, + "coordinates": { + "latitude": "82.0291", + "longitude": "29.9459" + }, + "timezone": { + "offset": "-3:30", + "description": "Newfoundland" + } + }, + "email": "anujna.nand@example.com", + "login": { + "uuid": "7163f93c-67a4-4b03-9e8e-ef006fb0894b", + "username": "tinywolf501", + "password": "working", + "salt": "QEoi3g7l", + "md5": "ac55ab88b45ad93c2b0e32dd734568d5", + "sha1": "b2564cf31abe582e1c765592d4d5ebecd6c3ccfb", + "sha256": "f41a7d56c5eeb2449d56daaf09cd1c6d3fe86bced2fab616caaaf437323efae4" + }, + "dob": { + "date": "1984-05-26T20:35:53.049Z", + "age": 40 + }, + "registered": { + "date": "2018-11-21T01:25:53.829Z", + "age": 6 + }, + "phone": "7140844135", + "cell": "9101784521", + "id": { + "name": "UIDAI", + "value": "021432743442" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/46.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/46.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/46.jpg" + }, + "nat": "IN" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Mikael", + "last": "Rintala" + }, + "location": { + "street": { + "number": 122, + "name": "Hatanpään Valtatie" + }, + "city": "Mäntsälä", + "state": "Lapland", + "country": "Finland", + "postcode": 17927, + "coordinates": { + "latitude": "37.0038", + "longitude": "-130.8129" + }, + "timezone": { + "offset": "+10:00", + "description": "Eastern Australia, Guam, Vladivostok" + } + }, + "email": "mikael.rintala@example.com", + "login": { + "uuid": "0bbac6e0-97d0-4c40-a5b8-0b41f0d6ad4c", + "username": "orangewolf910", + "password": "whitney", + "salt": "y97zN8fd", + "md5": "a31ba935ae81b0d62a078d5b8ada83a9", + "sha1": "8e3bb2ab6d7987e211b13e61fa5a9866d983e12b", + "sha256": "6d4a3e34f022d5b9942529f2ff811e0ba62e012fc907dd66210d4ed8b0edcc4a" + }, + "dob": { + "date": "1991-02-12T02:04:04.533Z", + "age": 34 + }, + "registered": { + "date": "2020-10-29T19:23:40.627Z", + "age": 4 + }, + "phone": "03-575-547", + "cell": "048-439-41-06", + "id": { + "name": "HETU", + "value": "NaNNA981undefined" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/91.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/91.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/91.jpg" + }, + "nat": "FI" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "طاها", + "last": "سلطانی نژاد" + }, + "location": { + "street": { + "number": 271, + "name": "برادران سلیمانی" + }, + "city": "ایلام", + "state": "گیلان", + "country": "Iran", + "postcode": 22792, + "coordinates": { + "latitude": "89.2543", + "longitude": "-0.7480" + }, + "timezone": { + "offset": "-12:00", + "description": "Eniwetok, Kwajalein" + } + }, + "email": "th.sltnynjd@example.com", + "login": { + "uuid": "baf93808-9ab9-4fca-9f16-fb53a95508ed", + "username": "smallzebra356", + "password": "filthy", + "salt": "pjuycu0V", + "md5": "c6f737f5b9a26d741d141ea318e1979d", + "sha1": "cf77da63aafd7f8e55bfb5f50331310b5a8dcc0f", + "sha256": "8ed1d35fd93001515e85f7966ed552492ae17e8deef31b086edece4bdafcc6d0" + }, + "dob": { + "date": "1947-05-28T22:07:59.687Z", + "age": 77 + }, + "registered": { + "date": "2018-06-22T02:31:11.180Z", + "age": 6 + }, + "phone": "039-82624057", + "cell": "0916-628-6996", + "id": { + "name": "", + "value": null + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/56.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/56.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/56.jpg" + }, + "nat": "IR" + }, + { + "gender": "female", + "name": { + "title": "Mrs", + "first": "Anja", + "last": "Führer" + }, + "location": { + "street": { + "number": 7725, + "name": "Marktplatz" + }, + "city": "Emsdetten", + "state": "Mecklenburg-Vorpommern", + "country": "Germany", + "postcode": 75787, + "coordinates": { + "latitude": "31.4884", + "longitude": "52.9724" + }, + "timezone": { + "offset": "-1:00", + "description": "Azores, Cape Verde Islands" + } + }, + "email": "anja.fuhrer@example.com", + "login": { + "uuid": "34bcb006-8eeb-4d8c-9934-d60e8a732e1f", + "username": "organicdog179", + "password": "talon", + "salt": "by4bFkNR", + "md5": "d6cb614d6292bf279b7298e540c1e26b", + "sha1": "13dad11a29e222574cde0b1a8f7215997c76aa13", + "sha256": "10d05795c0b2c5fc26f2abc90064f517f9b2e78681e04c080d1bb3958ee319b2" + }, + "dob": { + "date": "1947-06-16T22:48:03.055Z", + "age": 77 + }, + "registered": { + "date": "2004-02-27T14:30:25.429Z", + "age": 21 + }, + "phone": "0893-2644298", + "cell": "0178-6468635", + "id": { + "name": "SVNR", + "value": "57 160647 F 911" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/7.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/7.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/7.jpg" + }, + "nat": "DE" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Marc", + "last": "Soto" + }, + "location": { + "street": { + "number": 8615, + "name": "Hogan St" + }, + "city": "Ontario", + "state": "New Mexico", + "country": "United States", + "postcode": 63717, + "coordinates": { + "latitude": "-57.8323", + "longitude": "172.1837" + }, + "timezone": { + "offset": "+10:00", + "description": "Eastern Australia, Guam, Vladivostok" + } + }, + "email": "marc.soto@example.com", + "login": { + "uuid": "ef7bd743-71c7-4725-8f20-2ce684104275", + "username": "lazytiger592", + "password": "christin", + "salt": "wyt8r9DJ", + "md5": "3e6da237d0163e91f8562d9a31728b5d", + "sha1": "777573900d19031f506174af82f9c5d674025ab0", + "sha256": "94b3e896073cf3816c1666c70cda427f258ce0e14bca3b9f33b00be109d5fed7" + }, + "dob": { + "date": "1982-02-18T22:33:16.092Z", + "age": 43 + }, + "registered": { + "date": "2018-08-19T23:16:07.708Z", + "age": 6 + }, + "phone": "(355) 302-1148", + "cell": "(577) 808-7666", + "id": { + "name": "SSN", + "value": "572-23-7927" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/50.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/50.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/50.jpg" + }, + "nat": "US" + }, + { + "gender": "male", + "name": { + "title": "Mr", + "first": "Hadrien", + "last": "Lemaire" + }, + "location": { + "street": { + "number": 6642, + "name": "Place des 44 Enfants D'Izieu" + }, + "city": "Paris", + "state": "Marne", + "country": "France", + "postcode": 63467, + "coordinates": { + "latitude": "-43.6437", + "longitude": "97.3369" + }, + "timezone": { + "offset": "0:00", + "description": "Western Europe Time, London, Lisbon, Casablanca" + } + }, + "email": "hadrien.lemaire@example.com", + "login": { + "uuid": "65674559-cf02-4841-aff6-af10f9eedee2", + "username": "sadbear662", + "password": "hello1", + "salt": "F7NHrTPs", + "md5": "81d576e3a21de0e7e692fb840f1cee23", + "sha1": "0f4ee0305b48cd17da98dd7d1003bb8c48aab081", + "sha256": "46cb6705010b7c9b8363c67fbad745275ea5ffe442106f04b17d9b0237752f65" + }, + "dob": { + "date": "1944-09-16T21:00:35.527Z", + "age": 80 + }, + "registered": { + "date": "2021-04-20T00:40:05.686Z", + "age": 4 + }, + "phone": "02-88-74-58-07", + "cell": "06-36-88-84-90", + "id": { + "name": "INSEE", + "value": "1440888276492 63" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/men/54.jpg", + "medium": "https://randomuser.me/api/portraits/med/men/54.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/men/54.jpg" + }, + "nat": "FR" + }, + { + "gender": "female", + "name": { + "title": "Ms", + "first": "Emilie", + "last": "Scott" + }, + "location": { + "street": { + "number": 5695, + "name": "Alfred St" + }, + "city": "Souris", + "state": "Saskatchewan", + "country": "Canada", + "postcode": "P6Z 2C5", + "coordinates": { + "latitude": "4.3664", + "longitude": "86.3577" + }, + "timezone": { + "offset": "-9:00", + "description": "Alaska" + } + }, + "email": "emilie.scott@example.com", + "login": { + "uuid": "996ce76f-630a-4ee2-9585-0022e2325605", + "username": "orangezebra912", + "password": "kaylee", + "salt": "fnmiDKi5", + "md5": "0b77f14ef8b9f270d03feed56553ccff", + "sha1": "cf12c6cdca27441cb1a35d9f8be2fdcf9d200ca0", + "sha256": "b8d3fa0887fef69626fe98ef1fb2a4f69cba7d240d86b5650965ced2578247a6" + }, + "dob": { + "date": "1991-12-26T22:05:58.779Z", + "age": 33 + }, + "registered": { + "date": "2007-06-22T11:15:38.538Z", + "age": 17 + }, + "phone": "S48 G24-9392", + "cell": "J12 U52-4827", + "id": { + "name": "SIN", + "value": "531176873" + }, + "picture": { + "large": "https://randomuser.me/api/portraits/women/25.jpg", + "medium": "https://randomuser.me/api/portraits/med/women/25.jpg", + "thumbnail": "https://randomuser.me/api/portraits/thumb/women/25.jpg" + }, + "nat": "CA" + } + ], + "info": { + "seed": "7f2d2aa852defdce", + "results": 15, + "page": 2, + "version": "1.4" + } + } + """.trimIndent() + +val getUserListErrorResponseJson = + """ + { + error: "Uh oh, something has gone wrong. Please tweet us @randomapi about the issue. Thank you." + } + """.trimIndent() diff --git a/core/test/src/main/kotlin/com/random/users/test/rules/RoborazziRules.kt b/core/test/src/main/kotlin/com/random/users/test/rules/RoborazziRules.kt index ea10a90..83638b7 100644 --- a/core/test/src/main/kotlin/com/random/users/test/rules/RoborazziRules.kt +++ b/core/test/src/main/kotlin/com/random/users/test/rules/RoborazziRules.kt @@ -1,11 +1,11 @@ package com.random.users.test.rules -import androidx.activity.ComponentActivity import androidx.compose.ui.test.junit4.AndroidComposeTestRule import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onRoot import com.github.takahirom.roborazzi.RoborazziOptions import com.github.takahirom.roborazzi.RoborazziRule +import com.random.users.test.HiltComponentActivity fun createRoborazziRule( composeTestRule: AndroidComposeTestRule<*, *>, @@ -32,4 +32,4 @@ fun createRoborazziRule( ), ) -fun createScreenshotTestComposeRule() = createAndroidComposeRule() +fun createScreenshotTestComposeRule() = createAndroidComposeRule() diff --git a/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt b/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt index 54e97b0..0aa8d49 100644 --- a/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt +++ b/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt @@ -23,6 +23,8 @@ internal class UsersApiDataSource page = page, results = results, seed = seed, - ).mapLeft { UsersErrors.NetworkError } + ).mapLeft { + UsersErrors.NetworkError + } } } diff --git a/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt b/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt index 33adbc5..667cf52 100644 --- a/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt +++ b/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt @@ -31,7 +31,7 @@ internal class UsersRepositoryImpl ).map { users -> val newSeed = users.info.toDomain() if (currentSeed != users.info.seed) { - seedLocalDataSource.saveSeed(newSeed) + seedLocalDataSource.saveSeed(newSeed) } users.results.toDomain() } From d77ccfd713b64f0d79ca35c6868e464d2948effb Mon Sep 17 00:00:00 2001 From: Pell Date: Mon, 21 Apr 2025 11:07:52 +0200 Subject: [PATCH 03/22] Modified screenshot test to add end to end integration test --- gradle/libs.versions.toml | 1 + presentation/users/build.gradle.kts | 1 + ...eenTest.kt => UserDetailScreenshotTest.kt} | 2 +- .../users/users/screenshot/UsersScreenTest.kt | 197 ------------------ .../users/screenshot/UsersScreenshotTest.kt | 147 +++++++++++++ 5 files changed, 150 insertions(+), 198 deletions(-) rename presentation/users/src/test/kotlin/com/random/users/users/screenshot/{UserDetailScreenTest.kt => UserDetailScreenshotTest.kt} (98%) delete mode 100644 presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenTest.kt create mode 100644 presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6966e8e..2d284a2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -54,6 +54,7 @@ coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref coil-okhttp = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil" } room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" } room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } +room-testing = { module = "androidx.room:room-testing", version.ref = "room" } androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "uiTooling" } test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "composeJunit" } test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "composeJunit" } diff --git a/presentation/users/build.gradle.kts b/presentation/users/build.gradle.kts index 28e679c..68a3494 100644 --- a/presentation/users/build.gradle.kts +++ b/presentation/users/build.gradle.kts @@ -63,6 +63,7 @@ dependencies { implementation(project(":core:test")) testImplementation(project(":core:test")) + testImplementation(project(":data")) testImplementation(libs.bundles.test.unit) testImplementation(libs.bundles.test.compose) } diff --git a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenshotTest.kt similarity index 98% rename from presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenTest.kt rename to presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenshotTest.kt index 5a43e7f..1b15709 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenshotTest.kt @@ -32,7 +32,7 @@ import kotlin.test.Test @RunWith(AndroidJUnit4::class) @GraphicsMode(GraphicsMode.Mode.NATIVE) @Config(qualifiers = RobolectricDeviceQualifiers.Pixel4a) -internal class UserDetailScreenTest { +internal class UserDetailScreenshotTest { @get:Rule val composeTestRule = createScreenshotTestComposeRule() diff --git a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenTest.kt deleted file mode 100644 index ba55c2d..0000000 --- a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenTest.kt +++ /dev/null @@ -1,197 +0,0 @@ - -package com.random.users.users.screenshot - -import androidx.arch.core.executor.testing.InstantTaskExecutorRule -import androidx.compose.ui.test.click -import androidx.compose.ui.test.onNodeWithTag -import androidx.compose.ui.test.onRoot -import androidx.compose.ui.test.performTextInput -import androidx.compose.ui.test.performTouchInput -import androidx.compose.ui.test.swipeUp -import androidx.test.ext.junit.runners.AndroidJUnit4 -import arrow.core.right -import com.github.takahirom.roborazzi.RobolectricDeviceQualifiers -import com.github.takahirom.roborazzi.RoborazziRule -import com.github.takahirom.roborazzi.captureRoboImage -import com.random.users.domain.models.UserName -import com.random.users.domain.usecase.DeleteUserUseCase -import com.random.users.domain.usecase.GetUserListUseCase -import com.random.users.test.rules.createRoborazziRule -import com.random.users.test.rules.createScreenshotTestComposeRule -import com.random.users.users.mother.UserMother -import com.random.users.users.screen.UsersScreen -import com.random.users.users.viewmodel.UsersViewModel -import io.mockk.coEvery -import io.mockk.mockk -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.advanceUntilIdle -import kotlinx.coroutines.test.resetMain -import kotlinx.coroutines.test.runTest -import kotlinx.coroutines.test.setMain -import org.junit.After -import org.junit.Before -import org.junit.Rule -import org.junit.runner.RunWith -import org.robolectric.annotation.Config -import org.robolectric.annotation.GraphicsMode -import kotlin.test.Test - -@ExperimentalCoroutinesApi -@RunWith(AndroidJUnit4::class) -@GraphicsMode(GraphicsMode.Mode.NATIVE) -@Config(qualifiers = RobolectricDeviceQualifiers.Pixel4a) -internal class UsersScreenTest { - private val getUsersListUseCase: GetUserListUseCase = mockk() - private val deleteUserUseCase: DeleteUserUseCase = mockk() - private val viewModel: UsersViewModel by lazy { - UsersViewModel(getUsersListUseCase, deleteUserUseCase) - } - - @get:Rule - val composeTestRule = createScreenshotTestComposeRule() - - @get:Rule - val roborazziRule = - createRoborazziRule(composeTestRule = composeTestRule, captureType = RoborazziRule.CaptureType.None) - - @get:Rule - val instantRule = InstantTaskExecutorRule() - - @Before - fun setup() { - Dispatchers.setMain(StandardTestDispatcher()) - } - - @After - fun tearDown() { - Dispatchers.resetMain() - } - - @Test - fun `GIVEN getUsersListUseCase returns users WHEN load screen THEN idle state with data`() = - runTest { - coEvery { getUsersListUseCase(any()) } returns - listOf( - UserMother.createModel(uuid = "1"), - UserMother.createModel(uuid = "2"), - UserMother.createModel(uuid = "3"), - UserMother.createModel(uuid = "4"), - UserMother.createModel(uuid = "5"), - UserMother.createModel(uuid = "6"), - UserMother.createModel(uuid = "7"), - UserMother.createModel(uuid = "8"), - UserMother.createModel(uuid = "9"), - ).right() - - renderScreen() - advanceUntilIdle() - - composeTestRule.onRoot().captureRoboImage() - } - - @Test - fun `GIVEN loaded screen WHEN delete first user THEN idle state without deleted user`() = - runTest { - coEvery { getUsersListUseCase(any()) } returns - listOf( - UserMother.createModel(uuid = "1", email = "deletedemail@gmail.com"), - UserMother.createModel(uuid = "2", email = "newfirstuser@gmail.com"), - UserMother.createModel(uuid = "3"), - UserMother.createModel(uuid = "4"), - UserMother.createModel(uuid = "5"), - UserMother.createModel(uuid = "6"), - UserMother.createModel(uuid = "7"), - UserMother.createModel(uuid = "8"), - UserMother.createModel(uuid = "9"), - ).right() - coEvery { deleteUserUseCase(any()) } returns Unit.right() - - renderScreen() - advanceUntilIdle() - composeTestRule - .onNodeWithTag("1-delete") - .performTouchInput { - click() - } - advanceUntilIdle() - - composeTestRule.onRoot().captureRoboImage() - } - - @Test - fun `GIVEN loaded screen WHEN scrolling THEN idle state with new data`() = - runTest { - coEvery { getUsersListUseCase(any()) } returnsMany - listOf( - listOf( - UserMother.createModel(uuid = "1"), - UserMother.createModel(uuid = "2"), - UserMother.createModel(uuid = "3"), - UserMother.createModel(uuid = "4"), - UserMother.createModel(uuid = "5"), - UserMother.createModel(uuid = "6"), - UserMother.createModel(uuid = "7"), - UserMother.createModel(uuid = "8"), - UserMother.createModel(uuid = "9"), - ).right(), - listOf( - UserMother.createModel(uuid = "16", name = UserName(first = "Paco", last = "Doe")), - UserMother.createModel(uuid = "17", name = UserName(first = "Paco", last = "Doe")), - UserMother.createModel(uuid = "18", name = UserName(first = "Paco", last = "Doe")), - UserMother.createModel(uuid = "19", name = UserName(first = "Paco", last = "Doe")), - UserMother.createModel(uuid = "20", name = UserName(first = "Paco", last = "Doe")), - UserMother.createModel(uuid = "21", name = UserName(first = "Paco", last = "Doe")), - UserMother.createModel(uuid = "22", name = UserName(first = "Paco", last = "Doe")), - UserMother.createModel(uuid = "23", name = UserName(first = "Paco", last = "Doe")), - UserMother.createModel(uuid = "24", name = UserName(first = "Paco", last = "Doe")), - ).right(), - ) - - coEvery { deleteUserUseCase(any()) } returns Unit.right() - - renderScreen() - advanceUntilIdle() - composeTestRule - .onNodeWithTag("userList") - .performTouchInput { - swipeUp() - } - advanceUntilIdle() - - composeTestRule.onRoot().captureRoboImage() - } - - @Test - fun `GIVEN loaded screen WHEN apply text on filter THEN users get filtered`() = - runTest { - coEvery { getUsersListUseCase(any()) } returns - listOf( - UserMother.createModel(uuid = "1"), - UserMother.createModel(uuid = "2", email = "adefff@gmail"), - UserMother.createModel(uuid = "3"), - UserMother.createModel(uuid = "4"), - UserMother.createModel(uuid = "5"), - UserMother.createModel(uuid = "6", email = "adefff@gmail"), - UserMother.createModel(uuid = "7"), - UserMother.createModel(uuid = "8"), - UserMother.createModel(uuid = "9"), - ).right() - - renderScreen() - advanceUntilIdle() - composeTestRule - .onNodeWithTag("searchField") - .performTextInput("ade") - advanceUntilIdle() - - composeTestRule.onRoot().captureRoboImage() - } - - private fun renderScreen() { - composeTestRule.setContent { - UsersScreen(viewModel) - } - } -} diff --git a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt new file mode 100644 index 0000000..45b7d25 --- /dev/null +++ b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt @@ -0,0 +1,147 @@ + +package com.random.users.users.screenshot + +import androidx.arch.core.executor.testing.InstantTaskExecutorRule +import androidx.compose.ui.test.click +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.onRoot +import androidx.compose.ui.test.performTextInput +import androidx.compose.ui.test.performTouchInput +import androidx.compose.ui.test.swipeUp +import com.github.takahirom.roborazzi.RobolectricDeviceQualifiers +import com.github.takahirom.roborazzi.RoborazziRule +import com.github.takahirom.roborazzi.captureRoboImage +import com.random.users.test.model.getUserListResponsePage1Json +import com.random.users.test.rules.createRoborazziRule +import com.random.users.test.rules.createScreenshotTestComposeRule +import com.random.users.users.screen.UsersScreen +import dagger.hilt.android.testing.HiltAndroidRule +import dagger.hilt.android.testing.HiltAndroidTest +import dagger.hilt.android.testing.HiltTestApplication +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.advanceUntilIdle +import kotlinx.coroutines.test.resetMain +import kotlinx.coroutines.test.runTest +import kotlinx.coroutines.test.setMain +import okhttp3.mockwebserver.MockResponse +import okhttp3.mockwebserver.MockWebServer +import org.junit.After +import org.junit.Before +import org.junit.Rule +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config +import org.robolectric.annotation.GraphicsMode +import javax.inject.Inject +import kotlin.test.Test + +@HiltAndroidTest +@ExperimentalCoroutinesApi +@RunWith(RobolectricTestRunner::class) +@GraphicsMode(GraphicsMode.Mode.NATIVE) +@Config( + qualifiers = RobolectricDeviceQualifiers.Pixel4a, + application = HiltTestApplication::class, + sdk = [28] +) +internal class UsersScreenshotTest { + @get:Rule(order = 0) + var hiltRule = HiltAndroidRule(this) + + @get:Rule(order = 1) + val composeTestRule = createScreenshotTestComposeRule() + + @get:Rule(order = 2) + val roborazziRule = + createRoborazziRule(composeTestRule = composeTestRule, captureType = RoborazziRule.CaptureType.None) + + @get:Rule(order = 3) + val instantRule = InstantTaskExecutorRule() + + @Inject + lateinit var mockWebServer: MockWebServer + + @Before + fun setup() { + hiltRule.inject() + mockWebServer.start(8080) + Dispatchers.setMain(StandardTestDispatcher()) + } + + @After + fun tearDown() { + mockWebServer.shutdown() + Dispatchers.resetMain() + } + + @Test + fun `GIVEN getUsersListUseCase returns users WHEN load screen THEN idle state with data`() = + runTest { + mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + + renderScreen() + advanceUntilIdle() + + composeTestRule.onRoot().captureRoboImage() + } + + @Test + fun `GIVEN loaded screen WHEN delete first user THEN idle state without deleted user`() = + runTest { + mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + + renderScreen() + advanceUntilIdle() + + composeTestRule + .onNodeWithTag("1-delete") + .performTouchInput { + click() + } + advanceUntilIdle() + + composeTestRule.onRoot().captureRoboImage() + } + + @Test + fun `GIVEN loaded screen WHEN scrolling THEN idle state with new data`() = + runTest { + mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + + renderScreen() + advanceUntilIdle() + + composeTestRule + .onNodeWithTag("userList") + .performTouchInput { + swipeUp() + } + advanceUntilIdle() + + composeTestRule.onRoot().captureRoboImage() + } + + @Test + fun `GIVEN loaded screen WHEN apply text on filter THEN users get filtered`() = + runTest { + mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + + renderScreen() + advanceUntilIdle() + + composeTestRule + .onNodeWithTag("searchField") + .performTextInput("ade") + advanceUntilIdle() + + composeTestRule.onRoot().captureRoboImage() + } + + private fun renderScreen() { + composeTestRule.setContent { + UsersScreen() + } + } +} From ff5253df33c18b3a3733af7a59d5e0a593c8592a Mon Sep 17 00:00:00 2001 From: Pell Date: Mon, 21 Apr 2025 17:30:32 +0200 Subject: [PATCH 04/22] Removed test api singletons --- .../main/kotlin/com/random/users/api/di/TestApiModule.kt | 9 +++------ .../{UsersViewModelTest.kt => UsersViewModelUnitTest.kt} | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) rename presentation/users/src/test/kotlin/com/random/users/users/viewmodel/{UsersViewModelTest.kt => UsersViewModelUnitTest.kt} (99%) diff --git a/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt b/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt index e09fc74..cdb00fb 100644 --- a/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt +++ b/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt @@ -13,7 +13,6 @@ import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.QueueDispatcher import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory -import javax.inject.Singleton @Module @TestInstallIn( @@ -21,15 +20,15 @@ import javax.inject.Singleton replaces = [ApiModule::class], ) object TestApiModule { + private const val TEST_API_BASE_URL = "http://localhost:8080/" + @Provides - @Singleton fun provideRetrofit( - mockWebServer: MockWebServer, client: OkHttpClient, ): Retrofit = Retrofit .Builder() - .baseUrl(mockWebServer.url("/").toString()) + .baseUrl(TEST_API_BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(EitherCallAdapterFactory.create()) .client(client) @@ -46,7 +45,6 @@ object TestApiModule { } @Provides - @Singleton fun provideMockWebServer(): MockWebServer { val mockWebServer = MockWebServer() val queueDispatcher = QueueDispatcher() @@ -56,6 +54,5 @@ object TestApiModule { } @Provides - @Singleton fun provideUsersApi(retrofit: Retrofit): UsersApi = retrofit.create(UsersApi::class.java) } diff --git a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt similarity index 99% rename from presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelTest.kt rename to presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt index 504f79b..3ac0179 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt @@ -23,7 +23,7 @@ import kotlin.getValue import kotlin.test.assertEquals import kotlin.test.assertTrue -class UsersViewModelTest { +class UsersViewModelUnitTest { @get:Rule val mainDispatcherRule = MainDispatcherRule() From 1f09ff3d5737361deec2901e0975cb5c057fdf0a Mon Sep 17 00:00:00 2001 From: Pell Date: Mon, 21 Apr 2025 18:05:58 +0200 Subject: [PATCH 05/22] New approach to handle error events --- .../random/users/users/screen/UsersScreen.kt | 47 ++++++++++++------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt b/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt index bfa474e..8057c4d 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt @@ -1,18 +1,23 @@ package com.random.users.users.screen +import android.content.Context import android.widget.Toast import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.lifecycle.repeatOnLifecycle import androidx.navigation.NavHostController import androidx.navigation.compose.rememberNavController import com.random.user.presentation.ui.theme.RandomUsersTheme @@ -29,6 +34,7 @@ import com.random.users.users.model.UserStreetUiModel import com.random.users.users.model.UserUiModel import com.random.users.users.navigation.UsersRoute import com.random.users.users.viewmodel.UsersViewModel +import kotlinx.coroutines.flow.collect @Composable internal fun UsersScreen( @@ -36,7 +42,13 @@ internal fun UsersScreen( navController: NavHostController = rememberNavController(), ) { val state by viewModel.uiState.collectAsStateWithLifecycle() - val eventsState by viewModel.uiEventsState.collectAsStateWithLifecycle(UsersErrorUiEventsState.Idle) + + val context = LocalContext.current + LaunchedEffect(Unit) { + viewModel.uiEventsState.collect { event -> + ProcessError(event, context) + } + } Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> UsersContent( @@ -48,22 +60,6 @@ internal fun UsersScreen( onUserClick = { navController.navigate(UsersRoute.UserDetail(user = it)) }, ) } - ProcessError(eventsState) -} - -@Composable -private fun ProcessError(state: UsersErrorUiEventsState) { - when (state) { - is UsersErrorUiEventsState.DeleteError -> { - Toast.makeText(LocalContext.current, "Error deleting user", Toast.LENGTH_SHORT).show() - } - - is UsersErrorUiEventsState.LoadUsersError -> { - Toast.makeText(LocalContext.current, "Error loading users", Toast.LENGTH_SHORT).show() - } - - else -> {} - } } @Composable @@ -93,6 +89,23 @@ private fun UsersContent( } } +private fun ProcessError( + state: UsersErrorUiEventsState, + context: Context, +) { + when (state) { + is UsersErrorUiEventsState.DeleteError -> { + Toast.makeText(context, "Error deleting user", Toast.LENGTH_SHORT).show() + } + + is UsersErrorUiEventsState.LoadUsersError -> { + Toast.makeText(context, "Error loading users", Toast.LENGTH_SHORT).show() + } + + else -> {} + } +} + @PreviewLightDark @Composable private fun UsersScreenPreview() { From 2d52a9110ef488697ccaa8883c1c247b178ffd04 Mon Sep 17 00:00:00 2001 From: Pell Date: Mon, 21 Apr 2025 18:07:19 +0200 Subject: [PATCH 06/22] Bumped app version --- buildSrc/src/main/kotlin/AppVersions.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/AppVersions.kt b/buildSrc/src/main/kotlin/AppVersions.kt index c741911..7c9259e 100644 --- a/buildSrc/src/main/kotlin/AppVersions.kt +++ b/buildSrc/src/main/kotlin/AppVersions.kt @@ -5,7 +5,7 @@ object AppVersions { const val COMPILE_SDK = 35 const val MIN_SDK = 26 const val APP_VERSION_CODE = 2 - const val APP_VERSION_NAME = "1.1.0" + const val APP_VERSION_NAME = "1.1.1" const val JVM_TARGET = "17" val javaVersion = JavaVersion.VERSION_17 } From a82e0244c642687285c17efdafedf88ad04cd0ca Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 13:54:18 +0200 Subject: [PATCH 07/22] Injected dispatchers into hilt data module --- .../com/random/users/api/api/UsersApi.kt | 1 + .../com/random/users/api/di/ApiModule.kt | 5 +++++ data/build.gradle.kts | 2 ++ .../datasource/SeedPreferencesDataSource.kt | 2 +- .../data/datasource/UsersApiDataSource.kt | 2 +- .../datasource/UsersDatabaseDataSource.kt | 3 +-- .../com/random/users/data/di/DataModule.kt | 17 ++++++++++++---- .../random/users/data/di/DispatchersModule.kt | 17 ++++++++++++++++ .../users/data/di/TestDispatchersModule.kt | 20 +++++++++++++++++++ 9 files changed, 61 insertions(+), 8 deletions(-) create mode 100644 data/src/main/kotlin/com/random/users/data/di/DispatchersModule.kt create mode 100644 data/src/main/kotlin/com/random/users/data/di/TestDispatchersModule.kt diff --git a/core/api/src/main/kotlin/com/random/users/api/api/UsersApi.kt b/core/api/src/main/kotlin/com/random/users/api/api/UsersApi.kt index 1d64746..9ccd6c7 100644 --- a/core/api/src/main/kotlin/com/random/users/api/api/UsersApi.kt +++ b/core/api/src/main/kotlin/com/random/users/api/api/UsersApi.kt @@ -15,6 +15,7 @@ interface UsersApi { ): Either companion object { + const val TIMEOUT_SECONDS = 30L const val BASE_URL = "https://api.randomuser.me/" } } diff --git a/core/api/src/main/kotlin/com/random/users/api/di/ApiModule.kt b/core/api/src/main/kotlin/com/random/users/api/di/ApiModule.kt index d994328..2f3c6ab 100644 --- a/core/api/src/main/kotlin/com/random/users/api/di/ApiModule.kt +++ b/core/api/src/main/kotlin/com/random/users/api/di/ApiModule.kt @@ -2,6 +2,7 @@ package com.random.users.api.di import arrow.retrofit.adapter.either.EitherCallAdapterFactory import com.random.users.api.api.UsersApi +import com.random.users.api.api.UsersApi.Companion.TIMEOUT_SECONDS import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -11,6 +12,7 @@ import okhttp3.logging.HttpLoggingInterceptor import okhttp3.logging.HttpLoggingInterceptor.Level import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory +import java.util.concurrent.TimeUnit import javax.inject.Singleton @Module @@ -38,6 +40,9 @@ object ApiModule { return OkHttpClient .Builder() .addInterceptor(logging) + .connectTimeout(TIMEOUT_SECONDS, TimeUnit.SECONDS) + .writeTimeout(TIMEOUT_SECONDS, TimeUnit.SECONDS) + .readTimeout(TIMEOUT_SECONDS, TimeUnit.SECONDS) .build() } } diff --git a/data/build.gradle.kts b/data/build.gradle.kts index 3362d4d..e51cec5 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -35,6 +35,8 @@ android { dependencies { implementation(libs.bundles.layer.data) implementation(libs.arrow.core.retrofit) + implementation(libs.hilt.testing) + implementation(libs.test.corutines) ksp(libs.com.google.dagger.hilt.compiler) diff --git a/data/src/main/kotlin/com/random/users/data/datasource/SeedPreferencesDataSource.kt b/data/src/main/kotlin/com/random/users/data/datasource/SeedPreferencesDataSource.kt index 7821f08..6a34446 100644 --- a/data/src/main/kotlin/com/random/users/data/datasource/SeedPreferencesDataSource.kt +++ b/data/src/main/kotlin/com/random/users/data/datasource/SeedPreferencesDataSource.kt @@ -12,7 +12,7 @@ internal class SeedPreferencesDataSource @Inject constructor( private val preferencesManager: PreferencesManager, - private val dispatcher: CoroutineDispatcher = Dispatchers.IO, + private val dispatcher: CoroutineDispatcher, ) : SeedLocalDataSource { override suspend fun getSeed() = withContext(dispatcher) { diff --git a/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt b/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt index 0aa8d49..bde47b2 100644 --- a/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt +++ b/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt @@ -11,7 +11,7 @@ internal class UsersApiDataSource @Inject constructor( private val usersApi: UsersApi, - private val dispatcher: CoroutineDispatcher = Dispatchers.IO, + private val dispatcher: CoroutineDispatcher, ) : UsersRemoteDataSource { override suspend fun getUsers( page: Int, diff --git a/data/src/main/kotlin/com/random/users/data/datasource/UsersDatabaseDataSource.kt b/data/src/main/kotlin/com/random/users/data/datasource/UsersDatabaseDataSource.kt index 27319ff..30c271e 100644 --- a/data/src/main/kotlin/com/random/users/data/datasource/UsersDatabaseDataSource.kt +++ b/data/src/main/kotlin/com/random/users/data/datasource/UsersDatabaseDataSource.kt @@ -5,7 +5,6 @@ import com.random.users.database.dao.UserDao import com.random.users.database.model.DeletedUserEntity import com.random.users.domain.models.UsersErrors import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import javax.inject.Inject @@ -13,7 +12,7 @@ internal class UsersDatabaseDataSource @Inject constructor( private val userDao: UserDao, - private val dispatcher: CoroutineDispatcher = Dispatchers.IO, + private val dispatcher: CoroutineDispatcher, ) : UsersLocalDataSource { override suspend fun getDeletedUsers() = withContext(dispatcher) { diff --git a/data/src/main/kotlin/com/random/users/data/di/DataModule.kt b/data/src/main/kotlin/com/random/users/data/di/DataModule.kt index a2ca9fb..b1fe97a 100644 --- a/data/src/main/kotlin/com/random/users/data/di/DataModule.kt +++ b/data/src/main/kotlin/com/random/users/data/di/DataModule.kt @@ -15,6 +15,7 @@ import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent +import kotlinx.coroutines.CoroutineDispatcher import javax.inject.Singleton @Module @@ -22,16 +23,24 @@ import javax.inject.Singleton object DataModule { @Provides @Singleton - fun provideUsersRemoteDataSource(usersApi: UsersApi): UsersRemoteDataSource = UsersApiDataSource(usersApi) + fun provideUsersRemoteDataSource( + usersApi: UsersApi, + dispatcher: CoroutineDispatcher, + ): UsersRemoteDataSource = UsersApiDataSource(usersApi, dispatcher) @Provides @Singleton - fun provideUsersLocalDataSource(userDao: UserDao): UsersLocalDataSource = UsersDatabaseDataSource(userDao) + fun provideUsersLocalDataSource( + userDao: UserDao, + dispatcher: CoroutineDispatcher, + ): UsersLocalDataSource = UsersDatabaseDataSource(userDao, dispatcher) @Provides @Singleton - fun provideSeedLocalDataSource(preferencesManager: PreferencesManager): SeedLocalDataSource = - SeedPreferencesDataSource(preferencesManager) + fun provideSeedLocalDataSource( + preferencesManager: PreferencesManager, + dispatcher: CoroutineDispatcher, + ): SeedLocalDataSource = SeedPreferencesDataSource(preferencesManager, dispatcher) @Provides fun provideUsersRepository( diff --git a/data/src/main/kotlin/com/random/users/data/di/DispatchersModule.kt b/data/src/main/kotlin/com/random/users/data/di/DispatchersModule.kt new file mode 100644 index 0000000..96c3d0a --- /dev/null +++ b/data/src/main/kotlin/com/random/users/data/di/DispatchersModule.kt @@ -0,0 +1,17 @@ +package com.random.users.data.di + +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.Dispatchers +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object DispatchersModule { + @Provides + @Singleton + fun provideDispatcher(): CoroutineDispatcher = Dispatchers.IO +} diff --git a/data/src/main/kotlin/com/random/users/data/di/TestDispatchersModule.kt b/data/src/main/kotlin/com/random/users/data/di/TestDispatchersModule.kt new file mode 100644 index 0000000..93ba312 --- /dev/null +++ b/data/src/main/kotlin/com/random/users/data/di/TestDispatchersModule.kt @@ -0,0 +1,20 @@ +package com.random.users.data.di + +import dagger.Module +import dagger.Provides +import dagger.hilt.components.SingletonComponent +import dagger.hilt.testing.TestInstallIn +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.test.StandardTestDispatcher +import javax.inject.Singleton + +@Module +@TestInstallIn( + components = [SingletonComponent::class], + replaces = [DispatchersModule::class], +) +object TestDispatchersModule { + @Provides + @Singleton + fun provideDispatcher(): CoroutineDispatcher = StandardTestDispatcher() +} From 083543b6f5a14dd0295daa2391b4599b55c39d8a Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 13:55:04 +0200 Subject: [PATCH 08/22] Moved main dispatcher rule --- .../com/random/users/api/di/TestApiModule.kt | 38 ++++++++++--------- .../users/test}/rules/DispatcherRules.kt | 4 +- presentation/users/build.gradle.kts | 3 +- .../users/viewmodel/UsersViewModelUnitTest.kt | 2 +- 4 files changed, 25 insertions(+), 22 deletions(-) rename {presentation/users/src/test/kotlin/com/random/users/users => core/test/src/main/kotlin/com/random/users/test}/rules/DispatcherRules.kt (90%) diff --git a/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt b/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt index cdb00fb..99fa6b1 100644 --- a/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt +++ b/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt @@ -13,6 +13,7 @@ import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.QueueDispatcher import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory +import javax.inject.Singleton @Module @TestInstallIn( @@ -20,21 +21,8 @@ import retrofit2.converter.gson.GsonConverterFactory replaces = [ApiModule::class], ) object TestApiModule { - private const val TEST_API_BASE_URL = "http://localhost:8080/" - - @Provides - fun provideRetrofit( - client: OkHttpClient, - ): Retrofit = - Retrofit - .Builder() - .baseUrl(TEST_API_BASE_URL) - .addConverterFactory(GsonConverterFactory.create()) - .addCallAdapterFactory(EitherCallAdapterFactory.create()) - .client(client) - .build() - @Provides + @Singleton fun provideOkHttpClient(): OkHttpClient { val logging = HttpLoggingInterceptor() logging.setLevel(HttpLoggingInterceptor.Level.BODY) @@ -45,6 +33,25 @@ object TestApiModule { } @Provides + @Singleton + fun provideUsersApi(retrofit: Retrofit): UsersApi = retrofit.create(UsersApi::class.java) + + @Provides + @Singleton + fun provideRetrofit( + okHttpClient: OkHttpClient, + mockWebServer: MockWebServer, + ): Retrofit = + Retrofit + .Builder() + .baseUrl(mockWebServer.url("/")) + .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(EitherCallAdapterFactory.create()) + .client(okHttpClient) + .build() + + @Provides + @Singleton fun provideMockWebServer(): MockWebServer { val mockWebServer = MockWebServer() val queueDispatcher = QueueDispatcher() @@ -52,7 +59,4 @@ object TestApiModule { mockWebServer.dispatcher = queueDispatcher return mockWebServer } - - @Provides - fun provideUsersApi(retrofit: Retrofit): UsersApi = retrofit.create(UsersApi::class.java) } diff --git a/presentation/users/src/test/kotlin/com/random/users/users/rules/DispatcherRules.kt b/core/test/src/main/kotlin/com/random/users/test/rules/DispatcherRules.kt similarity index 90% rename from presentation/users/src/test/kotlin/com/random/users/users/rules/DispatcherRules.kt rename to core/test/src/main/kotlin/com/random/users/test/rules/DispatcherRules.kt index 10529d5..a79dd0f 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/rules/DispatcherRules.kt +++ b/core/test/src/main/kotlin/com/random/users/test/rules/DispatcherRules.kt @@ -1,6 +1,5 @@ -package com.random.users.users.rules +package com.random.users.test.rules -import io.mockk.unmockkAll import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.StandardTestDispatcher @@ -22,6 +21,5 @@ class MainDispatcherRule( override fun finished(description: Description) { super.finished(description) Dispatchers.resetMain() - unmockkAll() } } diff --git a/presentation/users/build.gradle.kts b/presentation/users/build.gradle.kts index 68a3494..f5830d9 100644 --- a/presentation/users/build.gradle.kts +++ b/presentation/users/build.gradle.kts @@ -60,10 +60,11 @@ dependencies { implementation(project(":core:presentation")) implementation(project(":domain")) - implementation(project(":core:test")) + testImplementation(project(":core:test")) testImplementation(project(":data")) + testImplementation(project(":core:api")) testImplementation(libs.bundles.test.unit) testImplementation(libs.bundles.test.compose) } diff --git a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt index 3ac0179..e6e3ce7 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt @@ -11,7 +11,7 @@ import com.random.users.users.contract.UsersEvent import com.random.users.users.contract.UsersScreenUiState import com.random.users.users.mapper.toUiState import com.random.users.users.mother.UserMother -import com.random.users.users.rules.MainDispatcherRule +import com.random.users.test.rules.MainDispatcherRule import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk From d190a5ee697e25c6e5c9291e0b4757e762a0ff57 Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 13:55:34 +0200 Subject: [PATCH 09/22] Added VM integration test --- .../users/screenshot/UsersScreenshotTest.kt | 4 +- .../UsersViewModelIntegrationTest.kt | 84 +++++++++++++++++++ 2 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt diff --git a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt index 45b7d25..6774eb8 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt @@ -16,7 +16,6 @@ import com.random.users.test.rules.createRoborazziRule import com.random.users.test.rules.createScreenshotTestComposeRule import com.random.users.users.screen.UsersScreen import dagger.hilt.android.testing.HiltAndroidRule -import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltTestApplication import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -37,14 +36,13 @@ import org.robolectric.annotation.GraphicsMode import javax.inject.Inject import kotlin.test.Test -@HiltAndroidTest @ExperimentalCoroutinesApi @RunWith(RobolectricTestRunner::class) @GraphicsMode(GraphicsMode.Mode.NATIVE) @Config( qualifiers = RobolectricDeviceQualifiers.Pixel4a, application = HiltTestApplication::class, - sdk = [28] + sdk = [28], ) internal class UsersScreenshotTest { @get:Rule(order = 0) diff --git a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt new file mode 100644 index 0000000..7523260 --- /dev/null +++ b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt @@ -0,0 +1,84 @@ +package com.random.users.users.viewmodel + +import androidx.arch.core.executor.testing.InstantTaskExecutorRule +import app.cash.turbine.test +import com.random.users.domain.usecase.DeleteUserUseCase +import com.random.users.domain.usecase.GetUserListUseCase +import com.random.users.test.model.getUserListResponsePage1Json +import com.random.users.users.contract.UsersEvent +import com.random.users.users.contract.UsersScreenUiState +import dagger.hilt.android.testing.HiltAndroidRule +import dagger.hilt.android.testing.HiltAndroidTest +import dagger.hilt.android.testing.HiltTestApplication +import io.mockk.coVerify +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.resetMain +import kotlinx.coroutines.test.runTest +import kotlinx.coroutines.test.setMain +import okhttp3.mockwebserver.MockResponse +import okhttp3.mockwebserver.MockWebServer +import org.junit.After +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config +import javax.inject.Inject +import kotlin.getValue +import kotlin.test.assertTrue + +@OptIn(ExperimentalCoroutinesApi::class) +@HiltAndroidTest +@Config(application = HiltTestApplication::class) +@RunWith(RobolectricTestRunner::class) +internal class UsersViewModelIntegrationTest { + @Rule(order = 0) + @JvmField + val hiltRule = HiltAndroidRule(this) + + @Inject + lateinit var getUsersListUseCase: GetUserListUseCase + + @Inject + lateinit var deleteUserUseCase: DeleteUserUseCase + + @Inject + lateinit var mockWebServer: MockWebServer + + lateinit var viewModel: UsersViewModel + + @Before + fun setup() { + hiltRule.inject() + viewModel = UsersViewModel(getUsersListUseCase, deleteUserUseCase) + Dispatchers.setMain(StandardTestDispatcher()) + } + + @After + fun tearDown() { + mockWebServer.shutdown() + Dispatchers.resetMain() + } + + @Test + fun `GIVEN getUsersListUseCase returns users WHEN load users event THEN receives correct state`() = + runTest { + mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + + viewModel.handleEvent(UsersEvent.OnLoadUsers) + + viewModel.uiState.test { + assertTrue(awaitItem().contentState is UsersScreenUiState.ContentState.Loading) + + expectNoEvents() + } + + coVerify { + getUsersListUseCase(any()) + } + coVerify(exactly = 0) { deleteUserUseCase(any()) } + } +} From d6c05bd525fc117463357489488e382d518c0643 Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 13:56:01 +0200 Subject: [PATCH 10/22] Added error state to let retry loading users --- .../random/users/users/composable/UserList.kt | 61 +++++++++++++++++-- .../users/contract/UsersScreenContract.kt | 2 + .../users/users/viewmodel/UsersViewModel.kt | 2 +- 3 files changed, 60 insertions(+), 5 deletions(-) diff --git a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt index f4a9c92..9c79ae9 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt @@ -5,13 +5,22 @@ import androidx.compose.foundation.gestures.snapping.rememberSnapFlingBehavior import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Refresh +import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf @@ -21,6 +30,7 @@ import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.unit.dp import com.random.user.presentation.ui.theme.RandomUsersTheme @@ -89,10 +99,20 @@ internal fun UserList( onDeleteUser = { uuid -> onDeleteUser(uuid) }, ) } - if (state.contentState is UsersScreenUiState.ContentState.Loading) { - item(key = "loading") { - LoadingItem() + when (state.contentState) { + is UsersScreenUiState.ContentState.Loading -> { + item(key = "loading") { + LoadingItem() + } } + is UsersScreenUiState.ContentState.Error -> { + item(key = "retry") { + RetryItem( + onRetry = onLoadUsers, + ) + } + } + else -> {} } } } @@ -109,6 +129,39 @@ private fun LoadingItem(modifier: Modifier = Modifier) { } } +@Composable +private fun RetryItem( + modifier: Modifier = Modifier, + onRetry: () -> Unit = {}, +) { + Box( + modifier = + modifier + .fillMaxWidth() + .padding(vertical = 8.dp), + contentAlignment = Alignment.Center, + ) { + Button( + onClick = onRetry, + shape = RoundedCornerShape(8.dp), + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + imageVector = Icons.Default.Refresh, + contentDescription = null, + ) + Spacer(modifier = Modifier.width(8.dp)) + Text( + text = "Retry", + fontWeight = FontWeight.Bold, + ) + } + } + } +} + private fun LazyListState.reachedBottom(buffer: Int = 1): Boolean { if (layoutInfo.visibleItemsInfo.isEmpty()) return true val lastVisibleItem = layoutInfo.visibleItemsInfo.last() @@ -186,7 +239,7 @@ fun UserListPreview() { ), ), filterText = "", - contentState = UsersScreenUiState.ContentState.Loading, + contentState = UsersScreenUiState.ContentState.Error, ), onDeleteUser = {}, onLoadUsers = {}, diff --git a/presentation/users/src/main/kotlin/com/random/users/users/contract/UsersScreenContract.kt b/presentation/users/src/main/kotlin/com/random/users/users/contract/UsersScreenContract.kt index 4ae6f7e..4d5c661 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/contract/UsersScreenContract.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/contract/UsersScreenContract.kt @@ -15,6 +15,8 @@ internal data class UsersScreenUiState( data object Filtered : ContentState data object Loading : ContentState + + data object Error : ContentState } } diff --git a/presentation/users/src/main/kotlin/com/random/users/users/viewmodel/UsersViewModel.kt b/presentation/users/src/main/kotlin/com/random/users/users/viewmodel/UsersViewModel.kt index 8a98654..16e0a70 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/viewmodel/UsersViewModel.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/viewmodel/UsersViewModel.kt @@ -64,7 +64,7 @@ internal class UsersViewModel ifLeft = { error -> _uiEventsState.emit(error.toUiError()) _uiState.update { state -> - state.copy(contentState = UsersScreenUiState.ContentState.Idle) + state.copy(contentState = UsersScreenUiState.ContentState.Error) } }, ifRight = { newUsers -> From 6ad3abe2815c447ef6220c924657a4f4bb415649 Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 14:09:31 +0200 Subject: [PATCH 11/22] Refactored previews --- .../random/users/users/composable/UserCard.kt | 49 ++++------ .../random/users/users/composable/UserList.kt | 91 +++++++------------ .../random/users/users/model/UserUiModel.kt | 32 ++++++- 3 files changed, 79 insertions(+), 93 deletions(-) diff --git a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt index 28da540..25ef00f 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt @@ -33,10 +33,6 @@ import coil3.request.ImageRequest import coil3.request.crossfade import com.random.user.presentation.ui.theme.RandomUsersTheme import com.random.users.users.contract.UserUiState -import com.random.users.users.model.UserLocationUiModel -import com.random.users.users.model.UserNameUiModel -import com.random.users.users.model.UserPictureUiModel -import com.random.users.users.model.UserStreetUiModel import com.random.users.users.model.UserUiModel @Composable @@ -120,41 +116,30 @@ internal fun UserCard( @PreviewLightDark @Composable -private fun UserCardPreview() { +private fun UserCardIdlePreview() { RandomUsersTheme { UserCard( user = UserUiState( - user = - UserUiModel( - uuid = "550e8400-e29b-41d4-a716-446655440000", - name = - UserNameUiModel( - first = "María", - last = "García", - ), - location = - UserLocationUiModel( - street = - UserStreetUiModel( - number = 123, - name = "Calle Mayor", - ), - city = "Madrid", - state = "Madrid", - ), - email = "maria.garcia@example.com", - phone = "+34 612 345 678", - gender = "female", - picture = - UserPictureUiModel( - medium = "https://randomuser.me/api/portraits/women/42.jpg", - thumbnail = "https://randomuser.me/api/portraits/thumb/women/42.jpg", - ), - ), + user = UserUiModel.toPreviewData(), userState = UserUiState.ContentState.Idle, ), onDeleteUser = {}, ) } } + +@PreviewLightDark +@Composable +private fun UserCardDeletingPreview() { + RandomUsersTheme { + UserCard( + user = + UserUiState( + user = UserUiModel.toPreviewData(), + userState = UserUiState.ContentState.Deleting, + ), + onDeleteUser = {}, + ) + } +} diff --git a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt index 9c79ae9..6d904b4 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt @@ -36,10 +36,6 @@ import androidx.compose.ui.unit.dp import com.random.user.presentation.ui.theme.RandomUsersTheme import com.random.users.users.contract.UserUiState import com.random.users.users.contract.UsersScreenUiState -import com.random.users.users.model.UserLocationUiModel -import com.random.users.users.model.UserNameUiModel -import com.random.users.users.model.UserPictureUiModel -import com.random.users.users.model.UserStreetUiModel import com.random.users.users.model.UserUiModel import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filter @@ -170,7 +166,7 @@ private fun LazyListState.reachedBottom(buffer: Int = 1): Boolean { @PreviewLightDark @Composable -fun UserListPreview() { +fun UserListLoadingPreview() { RandomUsersTheme { UserList( state = @@ -178,64 +174,39 @@ fun UserListPreview() { users = listOf( UserUiState( - user = - UserUiModel( - uuid = "550e8400-e29b-41d4-a716-446655440000", - name = - UserNameUiModel( - first = "María", - last = "García", - ), - location = - UserLocationUiModel( - street = - UserStreetUiModel( - number = 123, - name = "Calle Mayor", - ), - city = "Madrid", - state = "Madrid", - ), - email = "maria.garcia@example.com", - phone = "+34 612 345 678", - gender = "female", - picture = - UserPictureUiModel( - medium = "https://randomuser.me/api/portraits/women/42.jpg", - thumbnail = "https://randomuser.me/api/portraits/thumb/women/42.jpg", - ), - ), + user = UserUiModel.toPreviewData().copy(uuid = "1"), userState = UserUiState.ContentState.Idle, ), UserUiState( - user = - UserUiModel( - uuid = "550e8400-e29b-41d4-a716-446655440001", - name = - UserNameUiModel( - first = "Alejandro", - last = "Rodríguez", - ), - location = - UserLocationUiModel( - street = - UserStreetUiModel( - number = 47, - name = "Avenida Diagonal", - ), - city = "Barcelona", - state = "Cataluña", - ), - email = "alejandro.rodriguez@example.com", - phone = "+34 633 456 789", - gender = "male", - picture = - UserPictureUiModel( - medium = "https://randomuser.me/api/portraits/men/29.jpg", - thumbnail = "https://randomuser.me/api/portraits/thumb/men/29.jpg", - ), - ), - userState = UserUiState.ContentState.Deleting, + user = UserUiModel.toPreviewData().copy(uuid = "2"), + userState = UserUiState.ContentState.Idle, + ), + ), + filterText = "", + contentState = UsersScreenUiState.ContentState.Loading, + ), + onDeleteUser = {}, + onLoadUsers = {}, + ) + } +} + +@PreviewLightDark +@Composable +fun UserListErrorPreview() { + RandomUsersTheme { + UserList( + state = + UsersScreenUiState( + users = + listOf( + UserUiState( + user = UserUiModel.toPreviewData().copy(uuid = "1"), + userState = UserUiState.ContentState.Idle, + ), + UserUiState( + user = UserUiModel.toPreviewData().copy(uuid = "2"), + userState = UserUiState.ContentState.Idle, ), ), filterText = "", diff --git a/presentation/users/src/main/kotlin/com/random/users/users/model/UserUiModel.kt b/presentation/users/src/main/kotlin/com/random/users/users/model/UserUiModel.kt index f2fdeb3..d50d00a 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/model/UserUiModel.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/model/UserUiModel.kt @@ -13,7 +13,37 @@ data class UserUiModel( val phone: String, val gender: String, val picture: UserPictureUiModel, -) +) { + companion object { + fun toPreviewData() = + UserUiModel( + uuid = "550e8400-e29b-41d4-a716-446655440000", + name = + UserNameUiModel( + first = "María", + last = "García", + ), + location = + UserLocationUiModel( + street = + UserStreetUiModel( + number = 123, + name = "Calle Mayor", + ), + city = "Madrid", + state = "Madrid", + ), + email = "maria.garcia@example.com", + phone = "+34 612 345 678", + gender = "female", + picture = + UserPictureUiModel( + medium = "https://randomuser.me/api/portraits/women/42.jpg", + thumbnail = "https://randomuser.me/api/portraits/thumb/women/42.jpg", + ), + ) + } +} @Serializable @Immutable From b2bf0eaac2a9f556cbb63235f724af14fe34779e Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 15:09:07 +0200 Subject: [PATCH 12/22] Changed one time events to Channel --- .../datasource/SeedPreferencesDataSource.kt | 1 - .../data/datasource/UsersApiDataSource.kt | 1 - .../data/repository/UsersRepositoryImpl.kt | 4 +-- .../random/users/users/composable/UserList.kt | 4 +-- .../users/contract/UsersScreenContract.kt | 2 -- .../users/users/navigation/UsersRoute.kt | 2 +- .../random/users/users/screen/UsersScreen.kt | 28 +++++++++++++------ .../users/users/viewmodel/UsersViewModel.kt | 20 +++++++------ 8 files changed, 36 insertions(+), 26 deletions(-) diff --git a/data/src/main/kotlin/com/random/users/data/datasource/SeedPreferencesDataSource.kt b/data/src/main/kotlin/com/random/users/data/datasource/SeedPreferencesDataSource.kt index 6a34446..20b2c74 100644 --- a/data/src/main/kotlin/com/random/users/data/datasource/SeedPreferencesDataSource.kt +++ b/data/src/main/kotlin/com/random/users/data/datasource/SeedPreferencesDataSource.kt @@ -4,7 +4,6 @@ import arrow.core.Either import com.random.users.domain.models.UsersErrors import com.random.users.preferences.manager.PreferencesManager import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import javax.inject.Inject diff --git a/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt b/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt index bde47b2..021f7a0 100644 --- a/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt +++ b/data/src/main/kotlin/com/random/users/data/datasource/UsersApiDataSource.kt @@ -3,7 +3,6 @@ package com.random.users.data.datasource import com.random.users.api.api.UsersApi import com.random.users.domain.models.UsersErrors import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import javax.inject.Inject diff --git a/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt b/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt index 667cf52..17d5c1f 100644 --- a/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt +++ b/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt @@ -30,8 +30,8 @@ internal class UsersRepositoryImpl seed = currentSeed, ).map { users -> val newSeed = users.info.toDomain() - if (currentSeed != users.info.seed) { - seedLocalDataSource.saveSeed(newSeed) + if (currentSeed != newSeed) { + seedLocalDataSource.saveSeed(newSeed) } users.results.toDomain() } diff --git a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt index 6d904b4..47b3f69 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserList.kt @@ -166,7 +166,7 @@ private fun LazyListState.reachedBottom(buffer: Int = 1): Boolean { @PreviewLightDark @Composable -fun UserListLoadingPreview() { +private fun UserListLoadingPreview() { RandomUsersTheme { UserList( state = @@ -193,7 +193,7 @@ fun UserListLoadingPreview() { @PreviewLightDark @Composable -fun UserListErrorPreview() { +private fun UserListErrorPreview() { RandomUsersTheme { UserList( state = diff --git a/presentation/users/src/main/kotlin/com/random/users/users/contract/UsersScreenContract.kt b/presentation/users/src/main/kotlin/com/random/users/users/contract/UsersScreenContract.kt index 4d5c661..33651bd 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/contract/UsersScreenContract.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/contract/UsersScreenContract.kt @@ -45,8 +45,6 @@ internal sealed interface UsersEvent { } internal sealed class UsersErrorUiEventsState { - data object Idle : UsersErrorUiEventsState() - data object DeleteError : UsersErrorUiEventsState() data object LoadUsersError : UsersErrorUiEventsState() diff --git a/presentation/users/src/main/kotlin/com/random/users/users/navigation/UsersRoute.kt b/presentation/users/src/main/kotlin/com/random/users/users/navigation/UsersRoute.kt index aed1435..423899f 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/navigation/UsersRoute.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/navigation/UsersRoute.kt @@ -3,7 +3,7 @@ package com.random.users.users.navigation import com.random.users.users.model.UserUiModel import kotlinx.serialization.Serializable -sealed class UsersRoute { +internal sealed class UsersRoute { @Serializable data object Home : UsersRoute() diff --git a/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt b/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt index 8057c4d..4bc86f5 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt @@ -34,7 +34,7 @@ import com.random.users.users.model.UserStreetUiModel import com.random.users.users.model.UserUiModel import com.random.users.users.navigation.UsersRoute import com.random.users.users.viewmodel.UsersViewModel -import kotlinx.coroutines.flow.collect +import kotlinx.coroutines.flow.Flow @Composable internal fun UsersScreen( @@ -43,12 +43,7 @@ internal fun UsersScreen( ) { val state by viewModel.uiState.collectAsStateWithLifecycle() - val context = LocalContext.current - LaunchedEffect(Unit) { - viewModel.uiEventsState.collect { event -> - ProcessError(event, context) - } - } + HandleOneTimeEvents(viewModel.uiEventsState) Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> UsersContent( @@ -89,7 +84,20 @@ private fun UsersContent( } } -private fun ProcessError( +@Composable +private fun HandleOneTimeEvents(uiEventsState: Flow) { + val lifecycle = LocalLifecycleOwner.current.lifecycle + val context = LocalContext.current + LaunchedEffect(uiEventsState) { + lifecycle.repeatOnLifecycle(state = Lifecycle.State.STARTED) { + uiEventsState.collect { event -> + showError(state = event, context = context) + } + } + } +} + +private fun showError( state: UsersErrorUiEventsState, context: Context, ) { @@ -102,7 +110,9 @@ private fun ProcessError( Toast.makeText(context, "Error loading users", Toast.LENGTH_SHORT).show() } - else -> {} + else -> { + Toast.makeText(context, "Something went wrong", Toast.LENGTH_SHORT).show() + } } } diff --git a/presentation/users/src/main/kotlin/com/random/users/users/viewmodel/UsersViewModel.kt b/presentation/users/src/main/kotlin/com/random/users/users/viewmodel/UsersViewModel.kt index 16e0a70..3dff250 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/viewmodel/UsersViewModel.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/viewmodel/UsersViewModel.kt @@ -11,11 +11,11 @@ import com.random.users.users.contract.UsersScreenUiState import com.random.users.users.mapper.UsersErrorsMapper.toUiError import com.random.users.users.mapper.toUiState import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.asSharedFlow +import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import javax.inject.Inject @@ -32,8 +32,8 @@ internal class UsersViewModel UsersScreenUiState(), ) val uiState: StateFlow = _uiState - private val _uiEventsState = MutableSharedFlow() - val uiEventsState: SharedFlow = _uiEventsState.asSharedFlow() + private val _uiEventsState = Channel(capacity = Channel.CONFLATED) + val uiEventsState: Flow = _uiEventsState.receiveAsFlow() private var currentPage: Int = 0 private var userList: List = emptyList() @@ -62,7 +62,7 @@ internal class UsersViewModel getUserListUseCase(page = currentPage) .fold( ifLeft = { error -> - _uiEventsState.emit(error.toUiError()) + _uiEventsState.send(error.toUiError()) _uiState.update { state -> state.copy(contentState = UsersScreenUiState.ContentState.Error) } @@ -86,7 +86,7 @@ internal class UsersViewModel deleteUserUseCase(uuid = uuid) .fold( ifLeft = { error -> - _uiEventsState.emit(error.toUiError()) + _uiEventsState.send(error.toUiError()) userList = userList.updateUser(uuid) { user -> user.copy(userState = UserUiState.ContentState.Idle) @@ -146,6 +146,10 @@ internal class UsersViewModel updateUser: (UserUiState) -> UserUiState, ): List = map { user -> - if (user.user.uuid == uuid) updateUser(user) else user + if (user.user.uuid == uuid) { + updateUser(user) + } else { + user + } } } From b722d838911bf47092df969e7adf553d28cb0ddc Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 17:04:28 +0200 Subject: [PATCH 13/22] Fixed screenshot test --- .../com/random/users/api/di/TestApiModule.kt | 16 +-- core/test/src/debug/AndroidManifest.xml | 15 --- .../users/test/HiltComponentActivity.kt | 7 - .../random/users/test/rules/RoborazziRules.kt | 4 +- .../data/repository/UsersRepositoryImpl.kt | 9 +- ...ad screen THEN correct user info shown.png | Bin 40923 -> 0 bytes ...ad screen THEN correct user info shown.png | Bin 0 -> 37092 bytes ... load screen THEN idle state with data.png | Bin 71050 -> 0 bytes ...text on filter THEN users get filtered.png | Bin 33314 -> 0 bytes ...r THEN idle state without deleted user.png | Bin 71995 -> 0 bytes ...crolling THEN idle state with new data.png | Bin 71026 -> 0 bytes ...sers WHEN load screen THEN error state.png | Bin 0 -> 9621 bytes ...r THEN idle state without deleted user.png | Bin 0 -> 75415 bytes ... load screen THEN idle state with data.png | Bin 0 -> 74706 bytes ...text on filter THEN users get filtered.png | Bin 0 -> 24649 bytes .../random/users/users/screen/UsersScreen.kt | 60 +-------- .../screenshot/UserDetailScreenshotTest.kt | 27 ++-- .../users/screenshot/UsersScreenshotTest.kt | 125 ++++++++++-------- .../UsersViewModelIntegrationTest.kt | 25 ++-- 19 files changed, 110 insertions(+), 178 deletions(-) delete mode 100644 core/test/src/debug/AndroidManifest.xml delete mode 100644 core/test/src/debug/kotlin/com/random/users/test/HiltComponentActivity.kt delete mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UserDetailScreenTest.GIVEN user model WHEN load screen THEN correct user info shown.png create mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UserDetailScreenshotTest.GIVEN user model WHEN load screen THEN correct user info shown.png delete mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenTest.GIVEN getUsersListUseCase returns users WHEN load screen THEN idle state with data.png delete mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenTest.GIVEN loaded screen WHEN apply text on filter THEN users get filtered.png delete mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenTest.GIVEN loaded screen WHEN delete first user THEN idle state without deleted user.png delete mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenTest.GIVEN loaded screen WHEN scrolling THEN idle state with new data.png create mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenshotTest.GIVEN error in loading users WHEN load screen THEN error state.png create mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenshotTest.GIVEN getUsersListUseCase returns users WHEN delete first user THEN idle state without deleted user.png create mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenshotTest.GIVEN getUsersListUseCase returns users WHEN load screen THEN idle state with data.png create mode 100644 presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenshotTest.GIVEN loaded screen WHEN apply text on filter THEN users get filtered.png diff --git a/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt b/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt index 99fa6b1..f2e6ea2 100644 --- a/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt +++ b/core/api/src/main/kotlin/com/random/users/api/di/TestApiModule.kt @@ -8,9 +8,7 @@ import dagger.hilt.components.SingletonComponent import dagger.hilt.testing.TestInstallIn import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor -import okhttp3.mockwebserver.MockResponse import okhttp3.mockwebserver.MockWebServer -import okhttp3.mockwebserver.QueueDispatcher import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import javax.inject.Singleton @@ -41,22 +39,18 @@ object TestApiModule { fun provideRetrofit( okHttpClient: OkHttpClient, mockWebServer: MockWebServer, - ): Retrofit = - Retrofit + ): Retrofit { + mockWebServer.start() + return Retrofit .Builder() .baseUrl(mockWebServer.url("/")) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(EitherCallAdapterFactory.create()) .client(okHttpClient) .build() + } @Provides @Singleton - fun provideMockWebServer(): MockWebServer { - val mockWebServer = MockWebServer() - val queueDispatcher = QueueDispatcher() - queueDispatcher.setFailFast(MockResponse()) - mockWebServer.dispatcher = queueDispatcher - return mockWebServer - } + fun provideMockWebServer(): MockWebServer = MockWebServer() } diff --git a/core/test/src/debug/AndroidManifest.xml b/core/test/src/debug/AndroidManifest.xml deleted file mode 100644 index 3b52a4a..0000000 --- a/core/test/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/core/test/src/debug/kotlin/com/random/users/test/HiltComponentActivity.kt b/core/test/src/debug/kotlin/com/random/users/test/HiltComponentActivity.kt deleted file mode 100644 index e4a1822..0000000 --- a/core/test/src/debug/kotlin/com/random/users/test/HiltComponentActivity.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.random.users.test - -import androidx.activity.ComponentActivity -import dagger.hilt.android.AndroidEntryPoint - -@AndroidEntryPoint -class HiltComponentActivity: ComponentActivity() diff --git a/core/test/src/main/kotlin/com/random/users/test/rules/RoborazziRules.kt b/core/test/src/main/kotlin/com/random/users/test/rules/RoborazziRules.kt index 83638b7..ea10a90 100644 --- a/core/test/src/main/kotlin/com/random/users/test/rules/RoborazziRules.kt +++ b/core/test/src/main/kotlin/com/random/users/test/rules/RoborazziRules.kt @@ -1,11 +1,11 @@ package com.random.users.test.rules +import androidx.activity.ComponentActivity import androidx.compose.ui.test.junit4.AndroidComposeTestRule import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onRoot import com.github.takahirom.roborazzi.RoborazziOptions import com.github.takahirom.roborazzi.RoborazziRule -import com.random.users.test.HiltComponentActivity fun createRoborazziRule( composeTestRule: AndroidComposeTestRule<*, *>, @@ -32,4 +32,4 @@ fun createRoborazziRule( ), ) -fun createScreenshotTestComposeRule() = createAndroidComposeRule() +fun createScreenshotTestComposeRule() = createAndroidComposeRule() diff --git a/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt b/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt index 17d5c1f..34da23d 100644 --- a/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt +++ b/data/src/main/kotlin/com/random/users/data/repository/UsersRepositoryImpl.kt @@ -29,11 +29,12 @@ internal class UsersRepositoryImpl results = results, seed = currentSeed, ).map { users -> - val newSeed = users.info.toDomain() - if (currentSeed != newSeed) { - seedLocalDataSource.saveSeed(newSeed) + users.results.toDomain().also { + val newSeed = users.info.toDomain() + if (currentSeed != newSeed) { + seedLocalDataSource.saveSeed(newSeed) + } } - users.results.toDomain() } } diff --git a/presentation/users/screenshots/com.random.users.users.screenshot.UserDetailScreenTest.GIVEN user model WHEN load screen THEN correct user info shown.png b/presentation/users/screenshots/com.random.users.users.screenshot.UserDetailScreenTest.GIVEN user model WHEN load screen THEN correct user info shown.png deleted file mode 100644 index 6aa46ec80872ec9251cb0acec05a281c0c9e6c39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40923 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%0D(VX zFNX1DgRWfseqByEI4u~Ij>=~IYln$Vea3s?Jl~Z0qww=|*06fFRn=7qFlKn!Gp8M4 z>r}VW{cFi`Ps>b_prcj(Vkk07L$+2EvjAy{(zDUDf%Lp|1<4PR9=T7)ic2Icl2hQZ z{0Yrg?WW?sr?rk<88?vkUoLLD(m!6iy6%)0n1^$TY-Zm(=$ND4>II1MVP&9JBkl&o2DFsKyuD=gtX zAKPEg%qogH z3q21%_b|z^N=DcE&qq&b?^`wc<$Mib+lLsF(sW)e)zOzt%{Ah;$a1xaVk)|H%YALE z(JFnjyVLjB#R@8+9uf62Fgk3CTctG1Y%#5H1{bB^^1ClB%MnW_JhZmFJJe6u4r`Sb zmCLJa704%gcC|=AHns3q5TXYyr!uwLHNL0M3ZC*?Pv)DcR^)5rMFWifqGXz5w&c-z@7B^B>FDkv(LxxaB={_RUG7n0~f zQU`A~r{RVYUW?3+rzrgjKYH)qZBK_AREu7(*ID*tEp(e+^I)PMx(O4?ma&?W*FNLR z-xN>YZ?8!QsLMx7Q4z?<9m5lp9(x z>SDuhIg5rn?3{)Y$a`fg8Q;J${;sInK{S_AHFPx^JL+%QomZxPx`A@~91tXM6dfPc ztJ-sv#g;V$$`%?TcJy4K-2@7nZF1X`h*hWwhTA`=LX#}3;A>cd{;s)lb4q}&R)mm5SLjO(T;)Cm>y zvXb~Y10@YO^DX?PCOIX6SRWX>wesUtH%9PR+0+~o-NP5S=lAv}>s`!`u*)SocDI&o z0$O?~n1u7X`^%(iRx`;fd>dkaJSgh8QurW982!bkG63=Dl3}iazhQyA2(wC}fax;) zVC9!FW@!KwGFh!~Fvl+OEJJqxBo%f{AQ$qB-6=gjOki0mXiLR=F<@u%9O=byvdg;j zYQ}qIGfD)?S;U%Neun|uywE%a`Jc@m>8ns>O2*lPcnJF$GXTHT4`L6@6Zhy*s1s^{rp4Bci2@kbxh?i#4{mrWsNyUd`Uy zSB*n|+^&^(?N;v>fx{SObT=y3`=gmzCn9FHRR)%##5)=RspX-Mf=VB_6~CY zYh&OHBJm*BZEfcu&xZSmXdjzncF9ysn@aD%RW@j*m#5aEXMN&LWI)&Ju=91O>nC$E z*)oVwo8#oU19I84?Y7S*b*}!3a~73h(v|3Cn?Y?lpT_ev?~MOznlaId58Rp} zh@klX9w}A5$*{uxiVCX&?_9?$VkmbAlv{QThnj*FFlgFV&FCeLN^?(S+(-y?r;UEn zZTG9osc2pNb<_*thtX?txg-W^kR>#?gnQSiW11=4(Z)b1cUDP`+kZVOFeVffTj9i> zb9{tm3&4Tr+7&OCUQLpo;!@dQS2bI`x{h&T1Qv4{Z!s@06iibo^6J&*%ceUexvsb{j=1(iU9B|J z&fREzKa$!ww!&&m9NAG*M3+vf=K|!P46=UjPt90vsl>#l&#}qzvGrfk1#}clLQ4jvIZE+!t!yk3mfb7WhRbpDd#jy`Wvj}Do5Q87 zg0sq1Zl9#nn#o=MwcIX>>+!GaBw7g9maQ6NV%fF zIEnrGsN-D{**x!R{dJ*vee7+k2DS8fF>#Tj0NLTzr#kQq%TcwB%y+E2DJ;|j1s2AW ztv?s<&ON;ozkNx_#d~Fr9vdA&p+R}|Xy|-2iRw&#!0?BFJ1*{OUq;FTlcoYnE|J=4 zGKh?%qXvjNPlAOK6|wDItfX&2MDwmB)&+c%UEEkLSc24G3Cd5a-3{a$>li->ynSP_T|`4M01-?U*vejNiCnC)Rf(q$Y*#z>YC)Z zo7G*n6uG`C#~fd;QF@V}Dk|m*hJy3VJf#Z~?T$H|ZxgnARqdxJScN)}jE`rZ#oZaM z50pC-j`O$y4Wv{dGjDIPGFpBgTtLc1Q#!Z(enNz_r!5xQ%8e+4Ur4=a_VtBnotO90 zv8~eZv`DACEv;`JBkVfqor*^(Yk_A*JD;x7?K$kd7~#9olP`E+Y2&wFW}# zfsvqvw~`^ef-Swo5TOqyy)Nw)p|f+Lj2Sx918+{sL(*?>$GKq>ZW#>1C?Af|Kq~N~ z83(YJ;>(g>y2UacO}}V>)#>rXkpy=LE$m!Sy1EsY?t3sk$N!vyJ%OmC>jVPX?!?=5 zkU+toR$KJoV1kM4f@su6wUUK+F!$b+iVtqZ;-sFpA_)GDl*cMJjw_^7JfeFQ9_uE%kCIXnouXg`HX%EE*O88FSPN#)rf5Oj#olu(}af2B#m#S7% zBQv1CyR)Rwh25()1<@|``7OJN;p0l*Lum^QcWVmoHI59YpQ3NAbc;*&Esx+gvJ9?fQX-}SDDGgV$r;M z8kkKPl}VKbW)E}HYlB?9Itd-d!zVlQeEH+m8~OZcjZBgxkTz9(?2$;#v`Fh3A^)In zoQPWi*Bq%&>M-0kV`I>6o#Wk43o;_{pp-k9>6K3M-%mn5r|nz%lEY!W#{N1L~@6}vj$;Mj?+qRs^WnHSW8TSr1d<%m=5n~yyc3C>FZz}UA#2mB2-xLde}qp<0MvJ;sZ=4O(bM-ni*Pc^rtaB#<7o}L!i3Rc zG>eF8%<@jiOkZQJ9l5dM#G5ZO6Yc8Q(x@9xSXqe8IBK+Oxi1ckefX27*m?rI_vrLOH@M>FCxW`Qa|87{L~ zN(r$w{yQFLWBWnQr0gSmOWs7OxG6SnN(Q@J&+4FUexcf*1&!09GnLqXC*TkTfJ+{XBbQ19AU`H)yF%d7a_+V*R~`&9h>HeSD$yP4{%8#w z52JYT{<|3f3836fIG;1=12-AH1YU!|Z{O<4LAUEUA4ife* zDmFAz$Ti!!fNW*yn*%flwkG#kdoHlE+PKJk_UUx(Wl2%U+M{ z-ry*_k9dHcm=7wmeD~3n0wNKPH{7D33LmB2e^4{Y$eHKRXit)3-WV59GJ!fSx}1>- z{e+SN>By^&u!W|LAK3C&mks>+THrn<0hh8bbegj2eY9I~aX)()%5jxv-||c$5VnGx zkB%I38?LAZZvL8*U~l_`!_Og!fb=LQ_^a_;sGtJ8J4H~=8kbF~zvn}Ld&MQbS9jxi zn-A>#U6V+Kje)kTo4bdQ7}`Iv{uS}&OdjQmx#|8P0G%Z1)X9s;u*`VLk8ezSE%#Zl zTIGg)aAB#t#Rkn@0%>-W+_QIW>ow2`BfX4UJib@6&r)U=he3daLBCAz$tK zz}E>Pq)q83pH;F-g3YsV1N}}mkUdRWzhTfY4>ahMhutB^-YjqVD*HUBK zUjf=)yu!Me*DD>Qirw;Oj$JepNcd!Su;fD9 z3T5d(c<`G~rcrUK7xfFF?j{qn*LG@i35tSmyqA78tGHqxHdLsq3`5uY&OXl9Y`bSb zpY*tATq5}JeaPa^iB=9@@s5Oo?6(L*y~)NzZ^PXWqQ#Hq+$>l1B)#?gDuo?GuriXH5OgdAUt*V(~L zkpc0J_wrjs48{LM!(g8u*2Kt3YS@}Ni>rc&5c#Jw&x>4oSjAC&#tbH(0o_BDvX=&9MDoPKRtRHV$7sh6kggs+B0r<(Qy`esdNXb-P5 z4`{^qRc?L92ug<76)ApA2GNm`8=Y0DF867I8qm($Lq&u4)+ar#4;cp!tz%v&?NPV4 z?<|h+Pf}pcJ^%O*eqSc(oO`@Ox<%VT39{TMMo49s^ULsJVuxYVQ+4+&M^$1#nBR z;`g$o!&m8bCBnU93mjWN>qZ9>31G?2&Khk5FN1U6?J1>Qg@rS%h0FHUx9M@ zqFlC7Dh4IG7^-l`h6w!XhRAp^ir-dc`XcfRKNwRFCC5sWGK=;vO>DtOGw{9^0?6}s z2c795`%EEzJdq;kjx8DA_WY8bbWBZZUWMf8wWBhKVx>rg=2=N#mE)PHK{ z(K+8S$j*=d$Zb>jW)w{l_+$4!UG6^Owd0V*|MJsywHKJqGeDl%3)$Zz*>`fxr1tw0A<^+K>A`%26DIJVH)O}R4;uUN1ScU7ZAS8K?7fG|bt z@mr7uu&wI2hYazRiy88tK3s0MQot+4f46F*PelxnF3%XmPq#af@^l~-;5X<&QW=e! zyX)@m3&iQg-!K+bV2UF{j;;QhZgJx-AfEh46pcK?!1}^Ls=^^>H43a^adIYP#RhmG zla4aEuVzU$dtFpp_BO+)=_S1}gy2l*1|I>A@h_g%{8C?l1%C_n&GA^KB z*=2VQBl?dYmk_jKMN*HgHzaCtD*09cV;9Ipqrv*U^=JDdiWcP?UzNA~YAaz_+n0*n zY(x-;VRMqAzC4<}27%OCDqvqR~>*Zv1n6J|oao$gC2waR zT*LV=89)Q}M&=l3dMynJu~bHz1|>PXhWUjxZWC7m%4{OE3PV+)D?`P3_Tno}6pa{N=`b?d{N<+&8fz)IJghX4sXKr^VFiW`4_J(Gxf_(3>eFpYRL zp9i2tXAho^e9a1QU-eL|U(>I*w>UGO>sS4P2P{r%W+Sw6{En#^MPN_jl|?L5rN0Uu zAOcT91KxT{fzSMo{{uAue9NzUuQrsSIslKvs*t>H4KUo`(D(K1 z_VwJ?F8noqH7phZ5&KtQo6tO7fu3qE^DD|^(1=J&n1GuM#^ z7jx~qQI(!|8pygNOY{3hIx0*s{it;k;bQef?h*y(Y@B@j7!~BT6@Iw^WNkju2-~9R zx|+HUsJ(3z2&gYP(rLyuwy5LO&*Igohwh?ecqk96Jl;K;epqh}ePYE%sE7EAog!)9 zd$i0Avw4Avyc}%iCZJ!~@HOOC5Q)-6ZIBsfT74lA$@5^${Oz-o#ja$!aqYI+OKxZo z&%YW!_cy+I)Wl|UA^UK7xlETut__wm?=N!1hlymv2GZTkM zs10D5Ph`=>6Q5c0ng@WmW>TAF_B^Z~c~H5{x`{BeDzQTFtYoD=0j*`SEjumlZKeun z--n7Vu5FWN1Ov0)4lJ)NP+H6wWXh>$0gNicM|(Ao{Do@9`|_*bYDiSkTZrE%p$?9e z&kylyNYRm?b^7$jvFy|Bt^LX|UU=D*VH5$OT#J)GSw6MglU!EhM{!TCy~g`sc@^v| zMtz)N7k&X010_ZRXAdT;t2Rg>*Jtqy=QgvrE#gAiboJ9QOS-Km4Xw=9Ka(msqS^GN z5j9jUQV~-eH;o>C@t}zP&@{vMB+*DHS=f)sUthFhpgXV%=?>ZoTdj*W6 zLN=E>Xb^X|&*7zH#hG7W+avwmhb$&@>h`&9LR<44(l`yfrhMrdK^#fDUld>>3wnQQ z8+E5v?XX(CA;vH)_x_w9fm}rX0S76Wgw}^{IahqQUpK|*836trdDc(Z$`L((^4)o! zY*>Di_Pri>t#^Qp&~DY*!8x14MTSl@Z?y4!s5h7okSGg={Z>+MF_*s0K!3;V3^Df< zZoN=dmjT+L9@^nez4P=EU>&W7v^YOfR;RugRJ3DK{Gxd^e`mZWU5#RWRh0+qJr5i~ zjT9vec2B*Pda(Vyp~(%6w$0w;^|UAHWfLV^`w8U?3$kg#t?4Bp?CR;MpgZMX7q^|R z^`0-4d!lP^lDyu3K1otQul7l^waGVmIcN8^f?TU0Q4vG@L;%PH4>m{rhPH2a68y8} zMAzDEU96wF951PB>V8WlMqUpamBL2&3U|`b#Fm}`cQ*l>ip{BI2cR8~p`=WZnCd?u zBfU6KU`*59HKF_N3~Mo4F+V@D7Q>TKaVOb1$qv!Y&S$&4IemCu`0sa0mRlX8S=q^Y z+Mno>R8TlvbmOe?-Em_i+~U{In9uAeJLc$0?(h1h0w1-8V0ziG+x%CVA_Q%xE3dN? zDr7}b(&M(zBYTJ1t-}Ac;M$vX;XXSn84G#~y|m^l=EUN}sG4H*#@VaaF=LE`I4a$j zSW49ZBsRdzoj0EzzwoL<753JCjcndJm-!6mDhbhG!qu$|H5Re*l3nprU>=2vTcf8< zS!kZyzJi67Z`*JcZhQ({hBoYvSt;>vaFV}B;4}Q@mW0-db^3TWxB?J#*@e5VGDuD0 z&mSs5!{Y5f7=B%o$M3DD$j>rv-H}gLhM#^uNMIGH_gYX>OqI57W1XcluzS!|S^_5H zpY3gcM%?!LA~#2CMDRs^mEdN+nWi^=jq)25{uwtI>RwG#&k(i0AN{H=*ZR;_)qmMx zgBTMJsubG|iaP3?WjNw;Ed*PA zffJgFhoU_3-K=YE{)_#<|8G3Z3iIjO;AJ30lSngRbrHlJcTsSA73YA-r!!zxu<-|xoQa50IO0w-B?Xi=%*z!i$gJ3DwQ30(^+tU>K;?bCX1 zdu0NC51|uy_rOhd=b$d|tr&e7$c)zjQX_&m4$b-5&*BuieVxpaL#O zxfnS2^?cu&wma18hQkNnWXRt4bWr|&HI(q45uWP1z?7oGqNMV;1LMguT90Q{xBOn`GR|hLYn*UH3>oyOf$=3(-l;tM(?HIm)JJL@w_;ws_I5lxJ zydPCBzfMY`l^^6!zOui|Ef79F$ZPcFb@k*`0e6+rm=HO75!oT`rPKsQb}X$p#8wFy zmhh(7H>DqurH#qrh8D8Enn+pSo!`$0mBRs>m)@L*JI_4ks{uz?mFYJ7_%rEbyZ85f zqAqtGet^)1Yso0MlvAw88EguBE-mS#DsQBzq?c!Lg^f$&H+z)Wx*h=WRkkP_3bHP8ne_|RwVtBUGxqa#hw(xE)8YtK1=Wum3}0OA5V+6*+P#jIm4sft7M1> zX=@>z@+?s_D4kY--$9V`{IABe+eF$wMXeY*7G6?NZlPc*K=_cVc_yhu)AO18IFA@^ ziuo>lf4xrP!)hc_gk^@(&GtU$=Rb~{#kKfJI(d+TBII6rnzgJn<;zK>g3Z7JHr zv|BKZap7|8AHe9uZ#1o=y;aU8kAEa)1Y7U5&3(%h&h0V66Ow15gvzF62>p8g0GzQ^ z&s*`Hmw;bhC3?H$Aty%Tc7%d)5o!4kah_B7InZ{P22v>tBvsD><7TVe26^_-8UzvV z)?=Y7BQE(^3`73ao@%jax_iI=+D1I)lz>E(A*q$i?FvugZ%Cg)VDySS+VTL@~}r>=6_HR`|%1!R^S<2T&f_J>{>K*rMl zGI_B;TEug6>ix)YCz7<9Bt_o_;OyBW(RXkyaqe4TQ)M8IS8yrtSi}-~V}5t%Z;oZD zZ{|O~j-O-*m!jx^`eJSC#)x-LF{1v8)-@@>OY>Eo!vMwVo>N`wr8PJpND&BMSTMHw z_*PkWQ|vFNr0e>7-M_I^id*Gx#boV|G96mwe73Tu_O*shGi=CH5^k*12)#rhnjTLX z62v_F6CJaPv!G8bIoIk+6QK#8xk9ScHLulLXtFe_Beh1Mn($PdZQ|Z}syd~OD1pN# zORX6`gK6tH%xpMF^~A#TZHrr?no${z{Y+Bt%|{DcZ#oxn+FbrsGL_F2w3E_!A|U*9 zuJjF)+0TUYxSwQK%WIPOb+z1*oXmm7>O4ImhfBrjYkw^+0rxgjjvdn;6Bd)U$#>JA zXx(C#W}xl9++V%5g1u~rskBW?0YNr*?(1OQ4LPIOvnfxgkf;)Ibim0%uW2?;HDvcB zEQ~3IGU2RR{u0cvq3Q8H$=`2?Z^u!a{mRF@Omf7ECBABN%w4d`&0a-&`daK|A=~u* z5~&6Ay7tJ4-T1xyKr^ z_XZ$R`_@S9ygXqQXY=})E4CP$gi2$KDepjU(Ar(^9SVd6L3SN7rk=smS0S4A<2b&E zln@^8;dfVgg4e0*d{&_x6A)HVHU%<6iub>DS3gOv>{pMj-hRzSC^taFH_kvq!!Re) znOJ(!F|sA_a^;h$0i9Hbojj`**$M_n_j(Gi_v;n1VRhQYnT&YzWI4NBrQ?5W)2M8! zNX{fbWh{$}SMFIdw6e1st`|!?aa9BSc$yR4&XUsj+{Wt(N*?pAZk?vRpSeIH%U^|z z;prN1rP}9ohurxy<>|zK@r%=w(L80trM7n61f;2%nDfZswa%o1Y&s_)l;%{G%8|WW zjf+W=be6)^5+Rf|z7EAyo^>6sZpdeiw~xas61-VWU>u_hl%|vL-ABznqzctezoPyg zXFR?K2gx_muLr#zjm-4z^*sU6Sc)hwD(A2hS@GTJi;U50lDzrkMz4356;hR$&fKFB42cmLhvQCdQa#QLT{j2 zpBj<=jxWZ8NGKTiI7FMN4aX1O)uENO>007aSa)7}3MFqZ0pX8o)*R1Q>#@wXr=R|~ zU4Wi4a6=l(!=q08~)-Qxf9)yd0PN2GQ;^ZCsaTjDTZP#w)*%3JDA%@M6(i z-^~oR@hm~Mvrl#u5fhZLjY1ak>V+(M7wQ#j*qk3VB<$0WNv zMfkubNMj$}`LY?Kld8HQPRS~*=KTa^qTT;V!X-NGt!6&+ogeN!0Mf~l zmBC6RuVt0(kRTgm`UO7z1X75-V|T-w;uq*|I__T)5+7Q-H79Owbv=u6DfO7c-T&F* zV(T!(_8Q)}0xUo597=xXzSqg4@bPjkPxtJG4eYm(j7ID4&(||-2mE|F2+->K)>nRV&KK@+;nkI5m=yZ+?o7*4A^oqpoz?Xo38_~0BwA`$;g zMj+!*yEl~$;3FZs$q>lgWqc%$0`;x~%Od0zO_|ik(b8NX4E-bK@Bx4QSzA~ooA{*? zxWXT0USjBM(D!wnWIq=AdJld!EX~+IS1}`|5_B8*rjxJI-k>^@?n(l=o`;WQ$3)#H z5c@Y4V3jG^>3d?ZbC7#lcz3G8W%?pcl=IbhrMrRg*c4FjCx-TqC1e(FF5bo|oa0a# z?}mED6@efPsPhVdrxre*=^u1Z-&gZ+p~pNQ_UVdohsJ7M-u^SyRgZJmv;KA+HqghS z3musi7U1VXYLU4v2E!d9_;dn!m)vqz?LKI#s4Kl=;3Wr`RUdMsAHMh;Osm9k{(U3T z;k6$_pA?d!Co$z^<|-!!vzQ{W<<(-NoL6enfg(dJUh~J8>|hb^Gmte9F>a-3+H(RD zgbX&!%L**a4qlCGJeA;w*b?Kv=sID9c)Gi?w_6oEyK~!WS6TwQoEU#g9>^IP0?9-Q z>uL33EQR00r-q=NiG>#(LoPifWde$Sz3QogtN@=?P|S`?rp0?K^GX1#;NvcbjQ!7V zX1Q@tx?c53<_|+^oprsR>h2}*S?DrPJi9Suuht2MKo~zWm@bJoM_1Fa6SVG&(8)uE zKAev>wrVdT?*oEC`SmoV-NY4Hkkb=i5Xw<9pl^-+`Nr!pA?bV@yK{tA6n=3&8YDI3TPvv-jEk(k8kZSZ1o=1yCkL{x z8N@-nP%K)4Dr`Is`uYJ>+f);GXCG>PCNxw0LBz#1PGaS7Mqih(wOoOF7}QnpDo5A( z!(=ydgpIvYo#mR(#s;6{2XZ_4?%yvC>JJ6^=RSY=i=; zM;CbdvhhP71J%;s1ic!-hrxGQ=^($O@Kaqkbas1kbNCf!9tLS|X1_(yx)eL>bxE>e z^I^XB_iyoEUFN>@<26hfAYtEGn%+-3D}9;E%8@xf$RCf_in3xO71D+x)St3KNU zXLEX=q;AmdKbl_pRggFJ3#hA+n~50I-uB!kSCp9|)4_3pdZGMSN3fOdS49a!pg@1h zUurr1usW!u7O)fx+&70$>c-A=j^1Le3E zeSo6MB#y=>wrz4=(eMep8z2YiGRLgC4^VVH7MbvNaYz~R zNTuc3tz|~9@84)w?&)3H|0(9>IAREIuYGy!PrlqLwh-L^)7`Jd@Ym9X{iv(rvVoHN zww+SLRZRIbcYW4KuTFf#1S*_Yk z!U*%Y59y~Lk;Hg0?6M0tERB>|N(OwOi_aWx_m$ao6f`7aB<3(+W@1*syA77nby*f$ zkq|07%F@OrK7(OWE(n8ZR|~o5_7^BYt2*t6E1@}cGVzsv8!N3AGKP}?+no|N?) zo>O|;XkxC-n&7qtf`LAin|UL%uDM+lwf|(PcWa+S!;|T2LR%aNO?!{zRxNE03_(QK z?bs2|jS4N*NFXR)73D+8LHFJ_xV9ggkb8#+xM%MRUwSHW@G$+&9k6_($syZ#P0>Yh zp;&rxTRTmY5P5rfiX~z3Wix+E@8z}1bMf}m_~bQ<|yImC@bI z#FL!;_QX`19^dzPggLN$A*NL?TdI9wb0!QsC32&_%iqf|`yi)`JdYML`}SZ}bf{9e zVI40U9p**S>YB4o1!tC8ea#ukyTBrL({wsUaPbe)A$l*vlM%zO6h&r>cp~wyDTj zjHK}ce!ad?`D1y)=*0&-|28>z=q;0o%A}$`XiTjzC`Aps`6!iMJS>dHE%p{0Oj8tE zX~+t0k{&KJ(o?mECym62aUSLc7?)Zc~RH3G`HoT#3ch$$_Ns%_}6kD$IrPdW) zrH-_`$dMl9uOre#E~gOtk*QPjXr%In2XfdO@r{C^1=E-1u>qVf(LI$5LZ)OCz zMpia$Z=%n{{{G8Fw=>4VKjNC-xCpsd{6M7A%vvyJ&kS#WI(>*~1tK6I4Eqn&&haMe zSzcq{mcmjd{&`|d`TnH^gR|00lR@rD$G>5*KdI^VpS~z3d*rnA8~oiuJcG+GQ2*|R z`!Tq8XGa#e3w=SiURL+lb@^B4seowg?1vwqH-3i=*%p9&3m?uOK%jVpkdr=DU&;g? zA&@Jrd3HxV0eYp^XQ$gC0m}xvzk!w|Q19g#PPtaLK5-`W$1b?|59$UW8M~joptdfu z>hYkxs%hp3yrdEGbW5rzjsWr~Wyq+YT+gW+o7yiV<9_}G{HNiW8dm4@@F*QiVry#& zv}-EN1)ua3auU@vMOK~d-xdLhA*6!)zh4*jKOjZ>_bvZ>rGNh(?|+Xs;d~UJmvV2t-v$OR-e`(F<_6`A6L<^+)CWNA%k8NA&vd(@p;#ldXSGh<~q!{}U|) S?yR8Q*EESc$nig0yZ;N`c=Nab diff --git a/presentation/users/screenshots/com.random.users.users.screenshot.UserDetailScreenshotTest.GIVEN user model WHEN load screen THEN correct user info shown.png b/presentation/users/screenshots/com.random.users.users.screenshot.UserDetailScreenshotTest.GIVEN user model WHEN load screen THEN correct user info shown.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b083c95b2e2779bee3cb93d33f38ec65c36d1d GIT binary patch literal 37092 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 diff --git a/presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenTest.GIVEN loaded screen WHEN apply text on filter THEN users get filtered.png b/presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenTest.GIVEN loaded screen WHEN apply text on filter THEN users get filtered.png deleted file mode 100644 index 4344a9c5615a1e799dca5a73b23b022e84ed014d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33314 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 z 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

hp##$YKe@_zJ^C? z4+#TGsQ))yOo18-dIbmggn`6a6XQM*MP!<|ALRhPM`EdA+=O)QXXh{gZmh^^?fGuz znM>}EdVUqt*lE8*ss6%(7HmiKAACo}A*?mUeR&VOIB>%QEYx&ZB{Oz9>`($0iY}RY zeE(|lo@D`*X_>8u_uJhB{oiMHz(@RV{jRl8hztegRd#v1C9_i6_T~IB7?XYxM;~9C zK->A4Qp(2h!XlL3*RM5kCwU;Xx@H-I8+Vzw3>Yjr9p*vt3WGxg3`7!@wK~Zfk2UpMAlEw|>~^BVXNr z`-E&eI5^QsklajEo}kscD0$g~?;9|{fGMTaRJjB5j)0^d5Hu;vh-r!`n~1~L1tEP7 zjW~%urmJTA0~O#GtxpG@i5;ove1$Fc<}d7ljg8%Wah$AlHyBt!+wCOb;`06leY2l@7=^^9vl00r>M6EM{*m7zrcb zOVLjFtq>y5G^$3SA#ioA0p%t}9@089qwRNPD&L^-w-ER8Pca104M(AE8q@8DQ4E)h zzd~kZ$hE}@&u4QJn$fVv@F^t7XW-X7&IJn8+WQ}Gyn@8|tM zG*B)4YPxp@M$5%)AHZosGjhkZ47b<)RyHa;?;#d#fSf%>_CY)Fb?cA#bf|je#k!Q6 zcA4O%-1~+1H}#s$KJ1xseR=6>Q}X(}?NhY5$G_nyfLQ}|SW75_ZJsmj+PnStU#2b- z{7s9^)~hVZ6>~~;E1q$=#8;A1mwjgG10jv=G>D|bouCIb)1KS(?&rX)idp^qZwtccPs zO69-of7G3JO19}jV97LbMYLR^2LythWlhR#9phxwduE7wG<;2Y03@r6+>CS$w_h1f z7gcCvW=|bD3`TfL_Qg77lR}b!GRm|38*^^eVi?@m+#nxC-YNXNUV&4`&T+&cEVvk+ zq-{~*0t#eAZUMuUR1}EqdNz(rv4vMdK%jL{GZ2s+V>biEnD0GeL3%VwFh2lnoZ|!I z<;JtTvM=SggY{2U%YWogUImi8ao6zf6i>{iVL*f008op6FMw)M&e^db^v#G%%FUcl zmgydnZs#?-5otP=&PQPIN|KwcXQeFER|Q!Ny!o3GS!aXi!pbnOv8Yoz#bcCe6*1L> zeM%qVaJEUcX$Nfsr4=#HYP8{%_fce25I)exc@3e@o#?c8gBw3J&Y_HI7ksJ9sNlqe zpk?hk!CUxpR_~3DO0lv;mE7_s*AlyD;7Q;IpxmNfrWcDLR#@tE)* zID}_0y^xenxUE#S%({YcLCAmN1wHSigX;lpe5S#I9qFMQ1D4BvTOPmdT&Zgm#iq;o zu2}h(hp^=i$*{S5OgqJ7YK71++F+r|4DT{+`G@xgNl3 z+`CuZy3&d1KWV*7Q)9DYfy8-ydrwh7NxbGbZ@XpS5mcB{p24PfNff(_ON8`$IeAA) zAw!EX58(B+SXrxlEOL&48yF%|(dM2EJ881=;v~VZsR7Qk905$1t9z;^qAB@r<^5E+ z>e$@Y3OBWL!v>Q^|D84VZ2d*k-`AnC2{Etx&>>AgP5P{17<6v!diJef_4U-K-R&cp z2>wRS_c^5x#L*3ixMt!i{7T;4_=xXJrXK}W5{F5Z=W&}UgpcGPEN3^9BP!2$axs&I z?Pp_v2(;k@fjj{U)`0-=^;UxGD!`(ogg*N{-&k}t+^UHkdRL%13@C9v8^02Oda$Ue zq;Q$9lsSA+Nj6{R01%Iir_ksTaAGAGO!utE02QX$AAQ3{GUJ%0A{7(`fiMHo+Gyj&)7*8 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 N>7M4`1OIVU_-~WQN-F>W diff --git a/presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenTest.GIVEN loaded screen WHEN scrolling THEN idle state with new data.png b/presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenTest.GIVEN loaded screen WHEN scrolling THEN idle state with new data.png deleted file mode 100644 index bbd670cee5556ff6b93e31d81d59d78e97c50c80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71026 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ϗ&(_C=U((6yKxpg8z0*& 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 Y>Hpx@u}q)X+{l{RNz_5p{)1!vH^PmCCIA2c diff --git a/presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenshotTest.GIVEN error in loading users WHEN load screen THEN error state.png b/presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenshotTest.GIVEN error in loading users WHEN load screen THEN error state.png new file mode 100644 index 0000000000000000000000000000000000000000..08dd36cc3c78168b90a034df150a837acc84c761 GIT binary patch literal 9621 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͔Eqnt(8T^yeWxW0hHWdRR;KI0WMcVqUFgZab%yoY z%OrND6W{byKkICuV=1hLob_e{irb4)c%;u{4Ls(RMQ?bH4cg|-etGKw8Fh&r>_Ch9 zjWS9aT)KMDIQ?noUNOVp_vSZWx3kcV^lN9#?2`V1^7dV?-lpJ3_t-LC)A3tW${isD z6U$C=WAh}KRM*C;D?aYK<~kxIz`o_DlzYC2xPTi>HRoa zJ*)c;sZ?9w(sJe4Awuuw2~WgSW}Am&t~cAur6>4f1*Fsqpgp!;d*q+{$l(v|Aw&nv zD-U;C+^9ytvTuy!fSxpE&hAUxaHX5x3Q87m4N)H zytFPgwUzuK{;mxbd{28Zn4H&WszjXT(<0A6&DB8X-LsegPHy0*vfWH8!w#PG=k>SvsF=!xTUwk+=q;% zN|i7&c~NC~-@Amp-sMoWsef>Sv zo#Alh)$(?^P-zFRiDK`XQ-0xAug28VXA(?gx8tX{e*=F^K18{1-TV0W;&I0$L&&mg z-zs4u+HOGZ-W7df|FESCZ%E(d?S?ImU$JXy)=kiUtM{Y4$(0V4Tyuvo&`R8{#3hzT zC&yV63EeB<=}v63{oCQA^%76b$UKCMLazzKmK;WkSejp9Ie12MrZoA*+(LSI?J$Qe zlE$U5_T{x@*dFX{(jFhZ*y~y9`l5}i(0lJ5FO6rUgzecgGX_7&u2eMgY%OsASvFm- zd@1It?SQ`By$Qz;p%qRGirslN^b&;;u}4~CbxV5$osZw`D0_62=W66ne=hX(A)k(P3WJF<^kVW=`RFE_i_WG>Fo;{T zApKmWMjG)tj-r_+Ss|Re&bjk~80?@Nm_7aFY3$rfi-j=CV>+nt7-o7%vOTov>%z$W z_^-k5a>}fRV9FjXuNGX#jIE&ye?+&R?CIpA9@3`xj!@ng9tD{_Dq{fkGv;B~tn7V9 zX(rEl?=H74F9)ydt%W=XE)HsF!P|!{){o=D#xq+z%Ijy%S~$?dM7I16DD~`_`6O1xM+xo3=+? z_4;d<%^laKqMzZy+XpvkM@qa>V0EEcgmR#D?#>&zrmlaSPI@0`SDAz|F|?1NqFqU-7x>2_ z-{F$hgI z!tlryeKdjddqF;s#ATp}+;Y7w2Rpi-50>bp2T&U6R5eEp=cLK^!p z=0}ae5aNO#AAL58l}3X9v3aoIBVPQi25g+i@|7Z@R+{6oeOx3jjKi6XPeGcW22n-tU*wh~eoW zE?i&A{=A===>9t{#}Y*FPi`qj+z*ZqqTB!W;l<@=_c1m3o&o$$ zKd+E4L>MEs=;G@w#}e)b{SGt4y0ZSjy&src6_zXy;v+$4Pzlb(H*AoHoA;838+JO^ z`*|5XUf&^VlcLB^u6Xhl@#llncsR~TTi}CWsk~yXO%Cfr)$1a*oI0Fn1bH9oVGmAV zh?3tHI|?09aceA8Q_9(@I(EIyErEO`r^07U=N?+zBy);YG=^{h{{@7| zm%bA-#;gl<7vJ9~=O&9=_7B%-|4lV9t=3=*O>VCC&`nh#Y|$qr)sXaFDz(;HcdJSH zm|Y9veqW^ctcgh+VN%S@<^10tyNTzPm=-T8z7df)ZnR7T5kUaC_pf0BC94*#OSP=O z#=d^cmN@^Khc<<&YZl(oA`nJ-$9-X{oVHHLP5ZKR9Qy_@)5UO211G&pKnes=ep(}$ zrm0f+_1_)d`>(Qt$qArJ2iNO_7Q{f_QwcQI`|SAoOQjfg)L~`gd>dATZdB@pCJx~cz~1qc)1e5Iq1egRl{b7H~$S%6HWCAFSJPTlq5 zf#>}1I5k9MT}bOh1GArd8TB`{0uUK(*Stn zl=Hlnf@jC^daR8kg~p{8c#-OXV{I?#yxGFwGY2NutTwb^X)N&Wbjml#d5i??dd6FN zJ4VSDgW$PS&RZg9h&}q%8lABoW|VJ5=aA>5+o@~QNY(3Z;fWiRb@$K3uX-n4X0|uq z;!4+boS*lI?mLcfjWaR2zNohxQ4oJoi!ZS&Acz$Lao{q?1O+kkXOItjS#ePJ>J-h5 zFg)-3u9A0r{FK+}(6#1)L20=inxJF2BegnPdnOp_OUMlnFUHd!hZHr~MMf?T?`osXl+m8~kIB+o*t?T4$? z8T2t27fX}29n!`4|X58PB{b7YGHU{ z)jdBD9=qObMzX*e8vu(_cxxS8pZteWsP_)*qqRw@8MQEU%Pf}QG%POV&N-H_)c0LK zH>^KP&Zk4FuIW?zM1g@KCJ`yyymsN~i7lxhXAvfq|Oc4w42Chc$$feY|oS4Fz z9Bi-9i)h01wYRB-HmTKW#Tbnn>pXw;_T?A)I*`5t)JcrEhtoQjWR13AAXd5YeOg$# z*IwDyLZPql?{v<6g(j=wsUj78btq@Jdhlxhh<%-ve?=p`XK9@4j!F3OcfEfvi{4k@aeCY^ZCeVYz;y86kY- zVwu%o++`Sz?h0uo$<{tY%w3a7W5wi=zNy()AocTlURzPTrG-#$lGNM1#01EMUSw4z;RyQPwVa_vGXjp3z0> z)ent)Ze3w)Z_m{}d3Vn=c1e^)=NBPOX0C*TCo*sJNEuw(yf|~s^&^^W2oWHs~q?t|=S(nD_g|S;fu!D2pAnS=C*Ko;G9X+|P`G$$GcAHx8aC%zLz- zkpvOeGD+Ho%x@N@)IZytL4Oi-8~Vq1>_sxgYRBfC3_a6Ip%lThrz=CY7UwFi1E2M< z1!nt-*Vy|a#)azbg{gg7$+-0}7(e>xQ~C$8&i2PBACOuoLXyOt<-;Hn51?{kaX@YR zNhqr(-Rq)QA_ zeP+M?Zf$q##yEG%J;A|++xv+8O}pkj;Fp$@Lj*a5+A@3XwToQKSlepZad6_A(Wy#G zmt)a<=8Gzy5z5Z{3ZE9ZxG=1L$7f=IHO!@-VZkt}CZU@=N1};uw&;2{!6Gn(*nyl~ zQ+{~`5&#WU(O#*g>oqSdJ+00=l@wa3R$&t~@~6+C0>k-3;weIvw$;0yvC|Q*aPH!VTvTdsqRiwR6S)Yv(FY`?*l!n=C%3Tg18@tnZNDS2rpktChPfv?2kHj?T zTKRz7p(a+bVfN0D)-GI)SL$N;-7(@1+zAazNQ&>{GXg_n*+2le+ajsE4Ve|DAF|sX zyCn&Hj=h==8fjhOU+)uyX#M%!e~E-UlFH=mJ%ONSnc;N8ux~yazWs#;R8^m~w=`PV zSSF#v_n&Jyz$RO*#O!avMc+0{_{if3IaLrfbU+~1)K7w40po`o8T zRZW|y@=2#&2Nn>BMIT!6^h}wtJk%v+Fued5ja3%SoxQE0B+kAS*=<;1`ap{1b*!p0 z6V>T2zAu==nq&Z4iM^E2Xj}{TtE9L|CQftbbF1nAiVlqXL5J%LUJ?}Lf$LwG&5eex zQFqZ(^D3BUy6R4me6lijeqH+H{>N(^uAPB3z+%(x#&F)_H(Sgb=BT)M}Xex3S6<&w>ERjr3xZ#r79;^TTmO$-mRwNf%rI z#8BT@I4#$I1N&m?IG4X@;|>|YtUFV*xl;uU}&9icG+J~_WzBPHE{q}Ihz>}zOs zpv8!_-1w*{P3d}{g!xV0zdwf=(oXv)s-c6kNiU|&n*dZL+i8ALqW3?% zMxPJPYxpo+)Y|hb_hk1l=o}XTjKOU7E`gs~)WfPR=jd`9v}^Hk7s z{)LM4`G_N1eegWi?Zu>-4hJnlHEn9W*b!&c-XifZw(+Ck&iIDTV(tIlpu6x^9IhH1B9 zDNxdnhzKF&Ktu*9nBFkXxbI8YgW#pToMCw0C7|Tz(t6RU({aXx*T@*9@o7CDc&}W3 zZEc@^4%h@U;(3mZcTvYn-){O59X_&t?CU$b*xsW;ytz$Ck*UCB1A1{;euc5lGZidwhzsZmiwrVPEW(P^-n3l zy-ZklE0*AWXX(uQuFGFA88>S#2C5=U!m(ai zc-~{^ZpQ*!`}#FT&_<>wvzm(;pU(*=s#`;Eh5rHSxpz@ZaedOOtTBdpzQ{3D!<7`k zYt_(WpAd3H8xIz5Y@FSu*w_vOLsm`u86dL$l0&em&Ao9l5XyZMN?{{ToOd`36%<+wvK!-?@tw_*G7 zK`=DEG8l={ZcC2$cv*<5fd}%C;kU3RUB@7L(llgz!W!&WQMTsz1%L|(EW##LX;SKXX76oTX{v#EH!kP4j&R2 zvmW@)nf~1YaYV8n2RVnM{*r*(qW>KrFe9ld1*cW~YUeIk5!4Gd0q}H> zXEiNJGWu?=+1I!`>-+DFXov2+pbnGf64#Jv3-Y>pgDUn;#f=SlV47FKaK5aMC0-qh zx4)#Ja?!=ih#zv7``Q>M=0Y%19wPDwrW4X&N-6*ZQ&4;dojWlLpia&sT54qxR)EjE z&~ru1ElL!Z@^D)dVwz`TpU?KR-9||j@~jCA71_bS4h0rNkS{}x*(}qjx<{patYw4d` zx1P5C50VKZwEhPwY&}`37CD0i?}3=K#JKes>iT zmIGwds`ypB`i`p9Ktykbm7Su#T8#Q|Hjwwx-d$p48xQ*;i()sfQyvK*$QamUOn+zF zHt`ot8aL1v#aWBe=Gg|yi6dsmsDsFST!+OOKJ@LQ&_|_ zzlFAK1L@PdaonJlyiU~F8SFO8MNpBc@w?}7B0Y6gMf<*%=ha1ipUww#DriNCJVn2g1X=AdIP?smje&Z;kTF^XPyeR(Wi9=iXGm@KYMQIiWbqx{5}aHe3wetbG!)Hy6uihu1( z2!o`W7<`FaU(6*g2$}_$situK?PBJ(@=)2WoV5G6VdfTflcl>N<{La(U$_2I;wQdXy#V+!8X>0?MDCTKjS0dK}8 zcg4*Gg{<>B;I8BR3nEWUofUANc`FVx{;n`QD_ zlS@~76#2g1pH2kq=sE|FT>2#wfZ8Y}=9Yl9h@T$&PA2tZ(OvxLYvu$qs6t5ZOOR_6 zd+l%sRnoF04%x&2LD9;sC*MoYW*qtK+#hT$)17;}WO^=(5)nrqYzVYj;VjiH+Yp0^ zrT7)o)j8nd3~qxgS0`+6&CM7(R9cmfH<3(^@;DyWcAHNr5D(8exLsv0rqunlcIwK# zx-wE<)-}BkC>ML15UV09j6vOwAIt+kSW(Idm+1UAhSXH>_-DOn&e?R_+mO~BBT{0b z`feugW}eBrs~~q3_v#yz-GQ^YPtF&cbqMruy>eA-t0OZn!y=+5PO$*<>J(v)MB#ndDmiS^!e#y+`rXLY2A z$irG15Nup$=U|T))p@3c2scu`rbM~7C`VF{&>VuE5Dk&@p<@K?j0vHPFA+85SP1{z zMEzp5Zjr^rD=rS}_e;NuUYFLo4fq}(w!?A{0iSrF#XM>4=-qp{hHBq6|4m`6#SluS`U8v z!I=)_pzbiQcahK0k#Ow(X5T;&V+KN8{HPh(`iAQa5RjVM)5gfr`r9CF7042OMrCw+ zB{cpn+T89_{AKLe#t&7++C0J?=65fzY7DBl2wD;Qx&bzjd9AkAF4iL z`YyjB`i_srD}KDF=$0gL;%I3w2T;XPW8s$HW;1`S+&2l%C$=<6xXQ1@rsK7rV#R8V zLX;NC$G<^qxPi!|HwhB6btOKn{`-jn(66y+0>Y}WmKxO%-^dQ?yg&SafkGFsRWl_3 zTU@;ZnA=rM1YBPmI=7RTKbyaUP!o3aICMvR5rFx|8q1O~A>$jK$;>GNY4bus5Q_D~ zC)8_B=UZI?(BJM{GtG({afN)Fl!SESS?>(4)-0^-E_UlJJ(Rn^+YYxO+Z~R@iF{mY z6XDtcT2E7ISEAU)@VUJhHEUPB0`j!9dD{0YQr#?z`}#S6iX1Wyy`FKhU1g4bdo*A_ zZ;Kw1q<`B902H>S!mW$EIFsMsUMjjhFSBT-OAtJ%%pBu}nR7Wg#{;WBI$3wWEx0B3 z+*&OqC1m+LBjIlZEYZ^Ze(^z*ty)vZlV14*Y4gb19Su`1W(lMCTpR5`vQDQ2UbEs5 z20^uOjEL-5s0eTZQE=Y8!Ab%D<+>(cVrSV-VZ*XMe$q>VJWq#!vX_S(Wt^2$jXIb5 zJ&Ccjq6IB4JBt3%6|M#(JCR>&@p#thd}}Z?cf?(}SydX>V#9vohZ3WaCEg$xQ0aC1 z((pO*3m4GX%->N!FmQ)FT>?{xP;C>7-f;Ml`1`_u+iy?FpK3X1s9W-@@+Rsau6^qC8Jkh#OME_VmRcZb2Y5$&-9&zv z-X>O)fohv5qywYO+%rIi*-P@j_Gv=NQIDmmzi}mi}KSdcz%p^?i8*A;Y=nGBUs^aXAka z9Gt%K?0gzBc%yRcMaEF6@mJe-1x(Yst~HWk$5uB*QMcwPZBAD+P%cYuQkxc_5ArpC zuL^06#tDN`-bdmNTfA2u`(=hnB$F!iTFr;sePCmGsF;vO!!~h0?1s*Pm+01h z!?l|Nwm(tuDHWx3Q_LyY(n$-_Yp3teEj?S@O049k*DLe_KYVOk(aR8v_v~_>yhYjas(RbKWTOud%0qvQk=nYVf=)X%_6H->L5GR!mw3W;L z%NFf&iR~Hnqs6n@hgKRtEB@TN2U2DkgX)LAHTxa=$~ALszO%>e?l5tmGUr+H3(7wfPJ!dK%k>)S^V*ShBt^-nXprIm1xZm`6PWznJm~T$t z?Kr@P9v#vNeZ1CM*i<+@m=GZ&CHvr>9*15@?{$yUj5dXy7+4l}`#IE=9K}Yw&-4d# z6xUiE1DNLQLeWf7QVYAReTnCT$;@rPmSiB2`PKFdD-d4QYV6fj!T_GJ+5Lh z`&)`}|L}uiAG?olyeqz(PqdmxK*Z<7oX*%yOIM=zy{mj*p~`PrW(65j zPyJVz+gA(f*!MDspmKdO^wfR5b}rb4EA6 zj&X{L=@@b^9WQkM{1tOfBCB&~qVfC7Ba?!+&zYiWOQVJhc}Pg?InLVv-{{xHR&qU@ zJBMgE+J3%+%@6w2rJ)WDZY@d^N<3{>XqdJ9JadJbOB&zq%z3!Dw_vq#PE1Lb&;JJ_ zimwj}qvD|zKu5yk?}b=VGcO;lPHKjzWV&=!hZ*is>L6+^0eWk2+cL&#N&iapY#gW9 z+vu7zehLs}tymYQxLDKl7{pRodS=hw>m5la4Zk8~+pomzrbiOq$A4mp?Jufv*}vM? zZS_+ODDBbpT)yJZ+&1#Mn{Cq}%lsUR8P~_`SC=pT zr%UJ_bU&}l*XKNm6_$j7Z8CLcE?g_7P7gWa^0)3w!%mW7!;I@gdy zz;OAsJ7%V$ZgU~I))PMiMn&(T#LZK!wMw+nQyLYsAcpkM?P5$-;y{f((YrWYK0y@a)v3jCJ zdj_|hRn^uf##wfIc;n&T8aLQ3y^0_X>F-%e-5lS&yL!=dNy!1;$B1G1~8@X3rT6NaxS9h2$*lRnZBSoQlE->TV3Gg$n<+!QSIpsH?tDwi9gw&>t@Ix($>!Ds`w z*Tl{Nn&SH})>z=uR7&y0*JzDeQ-;?(ytt zXfj&5OU&$=zoHska`Z^r&@f3ja{PR?ymqs6`3o@h0a?8v>nwR2Cu~>}jSJ=xiy?Am zQ0$;K)GoJ?m^7>#6YYgzzUv>;mB@@??#P@6pu~@=H!!rf-EVKEdNYYT`mKu7hHp8{ zn&tO=Myc-5rV!97`UMn+^ia~Ie;Xop*7tv8<@HhyQ|W{11hXAf;CPpDs*fCpf-o3< zAj{UwN-MP)?|T)75~?hB6QwXg#g13!A&JAZN6U`B*ZpxVh+WP9{2#sxrv1n z{_;h6_v0JoA2C#fN)^BuN$ojDv4X!6V87^%_grdJbHjBhj%2yS>B86(9n`&XG;{nY8}q_H)WMoIRm^#Y)COH*#jGiQj;oC< zL(SQ^+hJn^=~dlU7MFw?AEB$6g?i;g4wGQ3VSn5k!n&{XpC()|OPi_zWS3*i(K%6c zzA~%b{`pZfTRD~7^AS2SYt|QSS~#mSQdL{SBX-N_kPs(^jy&Anv2zNx47C(=#*-@P zI-i}U;pKMYyaDaM%SU|iYQ3;|>&1@xaS$gg^+@Ai{dn_(8{lV4w^d7Cw> zW?w;QrSm8ot<@^--Pd4P7t8w5I=YAzwF-&foim4uZN{VGi;ohZm_r=E`1)osCD4@e zt(Lu!BDab#boQ%d$)i!qQsB_WKKgMMNmRt6E0q|$%B23bsH(cKe-}hST0x{k6ags-HyuhzcQ;6PHz)|wJV>{Iv~+iO z_a-;p-OZWX=Xu|8KAaC{{KpyNeA)x{T5HcW=bCffaoxXZ6Swd|pv%Mx=_$H>*3i@k z=FZTRFKQxlPR1Cu$taXPzF(pDVR?TN2_yx62zvzdYVk$8M5fU zV5GMwjU49QAAmZ8#j2`b*j~5o>F8+_W+1XWgE7TTTisU-;wue_U)5Ml>`flzfXe}W zVNXbAPoGrRzJleCxDjmHNs#Sx_eZ;OaOV<(ggc8cV_0OFw;?L_Ot!5v_l_M{(GDIkM^u~dq4gFwWNGynM$*XzWlBEh zF60hL(VZn9g--3j>iP{{f^bhTv~hLXKPN|RI7a#4Es@LLe2EzH(PZw>fRM}OJD*5P zlyXS;=5SVIChv1OSD=OR$o6?W*BB*at~TL|Fuwcr6;}KXWbl*g^dc!a0qni`3<)8> zTl#%q$3=p^^1$7_{B;M*V_TQM$F)%tRm}7CD%XNTqh))q|rq}3XJ7RG=@ABHs zfjeqr373FS1dKsFLWqhEw;2sJ~rE!3TW-}oT$ar*s2t}#&dLID0NYYl| zfRrj6kRsZRO)4L)+y57_x)gx+D0+Ukd0Xw#K+uIRy(cql-{diRbG(p=%CyPCL~hl5 zBMK>)eaD(TICA0n#YHU;+Y<6;nzAf=AkwoA%cb6?Ag6fuvT+_o)0*N#5{HL)-$1{F zrQmj`#5i)dfN0*xF9ue9SyA7(TG`9%lwTDR zVgjX+q7a5!dcj$gtq=@QySFW(SczfUBvVOGTSrxOBpqsiA|nRVMmnYXayd4KOnOmg ztr8IfEEuF~tQa>(q8^kFW)hOCWfuV?+%EDujsCGEXMi;}oBBf?y5qe&qQ{RtqyLSu ze!P!Fk!aGK@}OQx4bUn}EiNZ?x(%VgvDifK0cDjMF9+2urhn7{K4N=W$7q1hDy{38 zEwlJ+hnCbZd(|?5&HWkahEAQ4R$$Y)1>RiWM$zXFT}K`>yY^cEtkq`HM6ovk0d;sS zV$YD*n=xea=s-_wF{9qHShEopeit)%tjLCZ(hj6;NnWS@R`fv@bli60X-yZ z(YxW1kuV~@Nu`)*FHyh&q+5%37&}~&b8+c}Lrj4x&BO#A@4yZHQ!e9r{{=um=`|hA z%xdchtYcYocbHG;ocigqW)DO#k+k$)&NU5Dc)qq695ZOu*K@Jo0kK3)OLedF=zZ8z zd{84`;xgO7FkI^S7a}@LEC0^TC2QCDkHJs(e2cI&w#7NX7f#qqNmQHXGD!grS(DTq zu$K&aNJZFPJH4SgSNORwCF@iysBYf)Zr{dvJ?mq%&?@q=)@gg` zDefRQ@xr227d5%(JMg+L8;{q!6)m{f={_H*`&-phYzy45zC$znkSC~f6|iF$BM{|t zlO*_2VmZc0s`HKc&AKP=5IlgTy@zbabTjRZRP8&monKja^y(5f^(eu~BP=XnY$dqf zVZuPe#n2P*Hw-sG1qF~{AkI%K$o;s-hdEn2kDG)8zy2%M#>)c^QF~7{Ix{GT`*AvO zrxNY%%N>!Qw>D>0Xk>yC4mdshGv)O50=CHbG22P20{7x2M4A+Hq7=AtZ$RBp*2=2| z&-@^gIq&faWCP*h5|si)EqDoUD3J%f(n7)d83DSFsE7+jnZ<~B_%U%w50^BOGcB;+ zUe9w~jCRog!K4Z@J=7_*kEan2a7&54F0r(5gB`>+rah=`pPr;fkV@}cQ;y;WlH z^S965JR>U<w8`WB^J)v{|W4QZ2o})ZAf%Pg49#Y<097KCGl%49K zy?H;c7lTShXt;1%zw-V4w_o3EXh<$VJx=g#Xyu{ypHLI^H{5YuvPCut+^mt8?@o7Kh`(SSLHz3)-l zZ?E}I7EsxHS8ubAv$eXJg9&|!tO?1P5+c_kfPoU>`j$(~a_$R<_cTT&{V9Ay83QB# zM9#dW<(t^KpPyYWL__YDCNU=+4*E5+p6Fyp-A3rfyt4*sRoGMsEv=}GdqENN$lXU^ zU_0p2eu{8)7ZL)CzaDG)?;L+PpDGlULQ*Eex>7aANuK1fG}&C(P2EX$>6g@edb2B~C3ZuB1dT^Iw8RKbt z{psa?`{KbQqiHl^xQz1_;@%9_>&$+~1~=Mlt8e-@h$33zEJ6^7uH;5>Yd)UZ z94nr-6)E%ApFte>bObXD-Fq^BYq#5X_ET=$H7#pZD) zY%WoQxCDa2@3mAhW;;_6k$$M{$LT6dfkH2Fc*zQ5s4MrsMY1Bxugks+c1O;XFeTb4 z>$j!ycZ@QY#Ikn_IbdO3C&sdJy|PH^%!X@=FB2T zKll&g)3jca??4%=vskW^^3&Ltmg=#Yks%_lPhq=ZvAg9S65Kj%vu5GDL6Ja1W2ey; zgX5(=H{dt$JBpX6ms?p+Kb-l_K8A;xOZBfgISHdE0;lXeSU7NJn_nnf*msoM*JAIY z--HCy)YZKMWwyr#&_h;LtXs*?>Bx`fY`?-2vaLti;IVy*iO#H7wWhqx+fy6QABP=yN2fO33CkR31Enk> z#k~J;sr6rajrso}RWkSE5rrI_7(xK6NFV*-MR3P_4YZty7RQPa{hnZ9@U`^35(A?q zM`&}}wizx#XYzHZ4cX;!Shl$}!8bv{t|9Ng-@d=rR~f#XU-*Rx1d-lj5t;VfVg1#2 z;#~Q)7Gte+;qU_cH<%nixZym&S^h zcuhDCOmvwetWO%NlGxx!6oSE-@~SD{x4ERZa6u;``0jI6?;`zO1)3lOs@?;7{g2FC zfpAip!Y)vi!X#e*1*Do(Gck&a*0kVqst@0QLepPSr}LK_{hpp;(>Rcjtpe3t42g{8 zOeX9Db(z0Hw3s(;YX@iH_pu;Bvh z5k&FN2-N+c0Rb)GDP;rtsQUq0%;}e(@viH%u(Jkpt)Zm_d&YM*Oqz=)Z8w?5d!A05 zwnm=&3+6?bC5S*f7$Nad$q0sv+!4}Rwu*eU4#YLdTU;d!#2*=6mAgA4)G!=nDvj|x zsmg5BUtuY1bG%CSIW->juhatP{$lDydb6XGg)Jx=k4$E2g3+h@nanyZ{P zfRQ91olewXYrTgWSuTR&5H{Uuh=S=@U3g3u9Dxh-6H8PJT&ul@H$wxlL{D@zn;&;Ek+)QBboA`s; z?oWF7ru-{b&68X@{Hd@Gd3i{SPpbD3re1exGI8Yt=8FA=mr7gNzTb3|oX}j#?!TTs8 zjr9Dn@!tfU?FK8%cFm?r@n=uC@7I(Bu}1TJAQX z9`rP5asmYb!5u}vt@AJ!oA0QlhRKCkSi|aohdt!#w()a3(h&HoD1`8Xv{36UXE6M# z3W1^0sg6oF747QADsD!i51ohzi&_E}&}V#WEz;NbXJ53`?AtcfOZ(T7KDwCn?MB2< zK!86ZOxVL26%!}?D!kP&T7+;YFPgFT0s)~}`x~f%AvtM|=fC1G{m1!a#><5`{J^j~ z$;FCkk7ND2Yb-Q}(OX!?Ad;5;z0c1S8;nrCXUcStYH5AVcYZ_*J<igu{IxKNw)*&}a{pe(+E`kwIhqWr>`!q?gjU;LRknYMvy#Ht zW&h4&?HWJ9ibq^kSUVOM(Fuviepv7)QQ=6mG>)6}-aPqC>f3tUfu*P>pGh1ZQx%B$ zQcMsTGxnI1bt5r)&G6;u@>SpF3O2vejm3$ahI+|(iSo$O-qBZNOaddwU_@J&tcz?^ zAtM69IDP;oo&Aku{c7GK`f#}+gWvnMITs1PjXZ`jd^23)*gh9P1(? zJ$v0Dy?ND&dMS(dJDQNsSH^qXeP(F0y=d=DFaL=!gRy1}W&t;0l$yK>cNRLbl3NPZ z+^mMx=cD0biLY5_hE$a4VGxQjT)^HV{IUhzNQp>hy8Io9NBv&D{DE{uliYP?Lz5ve zG(Aav8=4jjy_#xV&T)0rPx1#m zBDsktYXd!HAJUARB#lds64dB6WPjN8%-FET{9fd?T-za+--*%+2F8ddf8gV7xIEO(1A8AcE{-2X)Q`+ zx=z%V#z@;r;}xVHNQqYYZT2SMNa!1^l`84qtmli>UWb%^NdJQc&4 z$7Mm|UQ$S!c!SBcIWe*Le7K1_>MIc0aH|GGtBSPtWCR2O!LLvggrw(DDr~!V1SSSH zPS%etHCF{ELS1Y%y3RXwWh{O2jj1NgD02Gp5-7TMVy$zf*?C7afAIvm<;A$x!0;1! zgF-=yCExQf$WNb~r`aXFQ!hSpKiSV7UxE-N_Z?)+`Z;-Wjynn^5`wN2SjxZN)I3(_ zy&;QUZ{&9VB$53lJ4kt`R)P$lh)KZd9K*ok<3`v#?Y5M_Tkf8MM5oQ~ND2u$ALnaN zU)+lN!mH>TaJ%qA-G#M#6l;dO-E3;6XT$N-udNNTOut;$2u}O1$=9WVYHVqg@ z2?%wQPtcIUQsC)6aLOzEQ_;%aam-HJXPpF%?*2!0d$=-kdl3bjL}Z?exZ`n~SP=(z z))qHe)qd_^Y`B*+0e?g-K|311_e@qpOUrd)Ijmei0}?~8S!nfx#-_BmsM9lJa_RAx zUS%9s!)1rFoFbp9A4UD~eVpuFDl3h65oz^p=~CQ~f1mcV)$=VE)Q~@B?UqRHKbR~v z_=ghrlR~GWr_r3Y$Flob`VyuA96ZxtpK6h9vcu}dhsfsC@4|{QSe1u-{UmXs48Np> zT7*N|U^+eeXS||@&Nmf0j+cVdpY*F4sxUPimxW$+^DEkU+lVNxCEt4@k6ew#IyfRC z{Av`i828>dJ~dZ_t-^kPq)h*& zmq8EPrZMzG*};gQ1rsn+T#(vDc%l1?qU_QMOp(4sh2-HGq+w4PA0r^>KGx3&Tg_7b zEFDiYzo*#vGT zqM(nQZQC?>9Zd(wlyx8_lY)&KQodA4y%@e141SEgDYj-ia3k=jU4(S;_IW+;GxDGt z$^~J~&y5~*jlZQez+Mss@t127v~DwRqPvT_wjTS({A!%0z_GB&c;=3oHCXr4Xm}Y3ZY!Q6*9xc3%}uPh0Ox1a%4s1%!V2AjK$z zpT;$l4k>0yllXRk%r$GLSN)ysbJWuo7+=;H&_nAr^DX+`o=>pPv(t9Iq6&%O& z7;&u*5epX{OwwDAP706fBWIFOTF4OO=oZCO?uKI>S1%QKb1blrwoa%eFtDBDwAueRlpu`tk=Y zKJU=CUaZ11#2@tOJ*&>#1^I`@xnkNy)IL%%==0q||(+^fCWAsJ3&{F48^*tTB_ruX@M#U_}OY z=IEcnErX5UMWa4w6Uz7{5fMpJ(pdSJ_Jp(s@gF?No?QLd-oA3V9u3JY!&o5@dhH+n zcItywRIDD^SBnByBwdNWWB>D+Hcc2SKWVny0zO|&8*JC~yQOr7(2tHl)}4h4`~hZ; z5MTH3-Wb6jPRThkMfYqy6lhtJNzy+q$XPiurAnz<9D}7Ey_|ktI(9HqgR%!Ll}K9u zvt^&D?<%WvN!9*cFG!^*BeqJRIcwU+)>`cx>a_bOw0EE zljY9kk^-B<@CHs%8dSeEm4IZ+!qOQrg`8PG_uVB5Rtzw|t|<+iicG*>YiRWS5aJ^lhKt{Gan;fm6Yoh5TEUj$S`a$#Padpi3EFWCFuqgrr)(>PTXU_ zi8%PZb_9W?z_sK+^g*@mK8~86{PvOf6K|9shSGThL?_72lYdtip+NqC)2e|O0g3Nb zG8V2rqPFkwrF9@>UEg`1-$eL!4eZ)Rh`efU3c89{d0p$U&Dgg&Q+f52ZfXthi5Fk} zLp2YzP$EiQslpe%#WgP&w2Qc;#gn7Z=6TDq>rTov_m-HNJT+BXXH6-RgQi@WovjH> zPEATS#g)zEhRQY?QR<*!FtCXXRC0bj5N}-2G3QwlH zN;n!iV-BV^F-&nf9sVvitW8KS{?fwooD$FaaRkE#=GTg^(67*(Xr*f6Oljz~Rn$yU z(DLC>a=nRBIQ!ElmE`;m@+oEVC#$ZBv(B}ZS5x+NGJF}C!OGobeR&n~u~ow5jtpnK z7Kcx-PV#MGvW|W=(Bp;+*_hL4oz0+PJ>#75>1wYsi;cL(3*h3&ipWFOvNj|<7n~ON zUMc`ru@6|jM7N$V$oMhR41-lhbDrzSKJX!B>W~HJ3KYY~r~L4xxa9+;q^*;x!p_Bp z2bpHfi`aKVlL_nym5=q2^fQ#t3$T9&qa=zhAh|ELexsQ=Aj&Dz2=?c~!xCTJnDJrb zcG{#oBD{58kY21k;PS~k9q3Pjh~AHPdTH{w`|*)O#6255_7iSdRF?VTqWhHNEisGV zFDd;jZ>R5-9E@;kA~?&uJ+6A(<-m4&^FDS^E1CiKr50Zb_8Wv~BqeUA_d22fw)9KZ zsyJy_>_|*}shMB!c$tIQ2DAlNKIT~@{m^6_XfN{L_7;)`XKD?8Kr~<6+jTh3-sv)M zbTS{2&2DY_Io)IL;a_RFhJTUe*!emeb^v`n6i<6?$>x;Ri_E?yr<>TH} z>+G$W{n6YXO6|xG?2B>e+0pq7F-LW`q)o6Al^JoV?%@fI2D9Wp?&(n@TC$R%@?7luJHH*u}UoD$yD)J-Dst>w3#( zYGx1{cy~u@+3C+8QH{-a@AgngPSyTqWY3(e(}URhktn#gmxCIVkOi~jCi2ff{Wqqh zWPmNJ{b%v;jEk_*XqCdmFO4T;)ZVGIxW=E)6$kTrv+XYD0WXnzrp#TC5zc?B7}iyK z`PAi5b+q>6XvHMb1>d}%7(pYl)G=6Epq?q5t1>N*XXRmo4W9zC-JR8Ov2`Brl1v(B ze=?41r?H)1rh#kD8J+WwYR^uyA;w0#js3iMG}U@bz%IROPs$UNsTEb^`-!2Ci8GBA zghH-sf=L@KxOP67_FenihL-dK93sAbu6=%07|?h-EKI)p-lqL$iW zk9wx{Dr!IJh90zK>ln$TW}mkh)Y`0d856Se)P(?y9PBm#Wp$?xqI@`UPNt_`xMCm<&oWv|6o^f05F2F6p` zl^-Ow&a!HTSLu`+PWs#|ew}fC(%p!D?-b+1gJ(B}{+oPESB-&wvRc~9D54PK>-uB# zun^xLo4JuI?h(6{fyY*JlNDpYuFZK}lZ#i%`wx!7A37wFpXots#J0$CmW1yqOGrFX z`eNW;7w2K=+>6S(0KTr3oRFd%KtE*M1bCBuprYPT7?1YGfaeUgy@szNcKEsr z>##&QOn8y|Q~4PNPO zt-D~lxGj6}eVZJ*$jU2CkVsSKrhh*{i;-fLKjM+s;^50#zb`V^tfgCgdu4EqB-RwG2>Ac+7 zn=|ZwOuA#0#^ORY<>M=^$Mf$zw0MTRyPNgwRD!o|T}eFpEDlmSuTGvAr+w=rwgv-~ z23i@|-c30zZXy+1KF@O{w4OvV?~ps&Fn2Ka{Rp??ng5Rj3eG6}ji(e?KCn$TFO-JI_+0 z(|jWrOPd7_a$J*GFp`Xy+K|!tNo-Q#8P_`1a}rvjeo0vsMp~Q4K9a)cq|9hq=d#|L zc%}1CyPmO(w(RUojVHU~&S>QR{885T%{S^5qr!|*E8M!}caIPRwBR8`zNw!bSJ!pf zTfOQ;*ayFRG(D}^EcMIo>aa(?@ru&0a*A3}PXu8)b<-2=FPuZlP8^Tw-I~2O`i4~h z%r&lCDI0IM6PCN&vuLHpEC%1%%S*HtjHSrE~xeN>`n2>0TnBj;)R zi`Hk3VnnL-tmxTX3TH~eY71S|5W3p7d5M&DJ|VrMSkhvPai!K#+n;>0L7)D_{%k5u zqt&)1GHoBH2BJ*|xqPcuNyVSbOO0;51E#EERe`(;rJ(+o34iNvN*0lg@!~+Y5t83U zhp(^@fZ3Sg*VQ#OlQ=nD>{O;nRkQ~t(l%PVKjxyrucSjduJk2yX$#U1F^t}m(%L(Xb?86B$dZ=$gPK`jI|W%u zD6VT5T5twqa_v|&`qUaHFSA4^{%tpph{4o3Z)wHv|7j;f&gD1hJv8bcwEL$}IzgQU z$)y?&NvCWD?luR*^X8i%Osr-Su1)(IJtd9vvsjos@F_a3?B@I{H6=_xW^$|o5#XLO zs*>lcj3fnK(Gc64e9#)}%SaeSq zl$6dlmym!MkpED{oA|yDZAs;Z=dCvZn0(PKVGm-f3R;A?L;-+(z%i88e`#vF6aUXYk5M>ET}pD@NsZ&&NQNA;~d>ztSSLP8)v z_o>?^E{&+O7Ri*njX+M)u-=j0HOQ>NW0E2i>$WL##HI5s;dVdi9M;aomGwC-HMT_a zjps9R8jc_(OV-Z_=-KA1=O&`pesA>A{&U+;$$Eq3YXctXUxkg2P#nVuKMaN- zdZGji5b)a3?@d?eY|pa=&hX~?%yQ|n8{Z0cD(6|TCTTKuQYjrNyw4(PC{KrS@Uo1%0!4` zC9BIX8;7GepF~Vtu`RYC&b9%Vg-Gix$6i8(0sR+w^_Q-0bdy*Ca^ZikRyIE7;qT*&VpFZw=ZJJ2A7ek75O|H(%QdiVbZZ2 z5hWR23fp5bxN{f?CLlVNfS|p`QTst?nIg;@J9C_4rD!(m&4wU7f>4im^h~1m>iy5Do81#W(0Y*ac&g_ zFxHGjrrxi82w{y8Bhxao~5qs?sGy3a4U(-W#w2%YluF0iWD>ScLT#Eb{K8G`95>qdm6r?dd=hE;o#F%k|8!8__&iwW97#%2n zdQ`(u!$hgu_K2M8N{ir1Qzk|==-8)rC>XZnT!U%VH!=LSYQWP*XD<63M063F6F_#A zw*J~?!-9u&?lKPKm+`+fS2G@F`6l{o0w=ZBj!oH0`-~&?-&DKikDYf1w!|px$YP0= znjheq@^Wx%NS8Eb*OBsWHmt&h#r!9p9D8=CzZm++hp%0=S2;QaRr!ZBEMUaFgS%L< zwO&;UYg$%QF!F2_p0e2&#!w%g%WG{obWIMi2d7 zwQ51357#UFESui9x76_c)=p1?bvDoJl@;nO6vTu%I~4y>`g|1+LeRiGe+)e+eK6$j zzmL0PxiLN;+bx>5E_NMRY-rueuY|h~H*;MGIb13vOwdp?g{v`Y%%lqM8 z=X3~mFYJAPi+^{<=>aizM$-`nN4S(1!#x%=4k$>}j1cn9;+4mnI(ZL*?s|mbf5H zW#PQVOQqKw+P9MY%6CHiJP#wy*ndxZ;q~I7&kHJPV)LhyIPH}N&0BrJot>Rvr4D~( zn?t*h+{MMr1eo>%V?lg3sa8 z2f@VSg-*X${9Rdvy_ssOk^ahqX;@nj^zx)BbXwT^CYF8$e$=n$ORo!&!BDBzdA53K z9P}0V4z&AcLNQY)4hU^+dJp)I8)%zGhM2tJqw*C~&%4hnmesG6TzTy0EQhjS%Uk_6 zMU(fGY+meWp*lJb(nYBcUtU>r!>?_DdZTmRM#%xb!s<|&mA6sVvM}*O&VQTojJ#~= z4dqNAu;M`CT+jP&J4~lR$RfwF{o=#4MVs=*8k% z=%vm;gvtW`GQFYd1pI(q6t(&Hm&TU2$Tzlic*I%xL}n~S{2^6McAYGPU4_a2O(FQR zzg9WLZ;?3Hm#5z*X;R-q)ccVp>Brq!8Mz}a{00Tan&DlBLvKc#m@_#wg`XdQxtHg^ z6@!m*Z135imIca}&|>Yc#E8q@#%x51Hyj)I}{#dc`+i2;~m zVpasFmE}EH?I%qrQBdEyE6pymx;8yF?&^ znMmJlz%@VPyUZTGvbfZmr>pg6r_(sae^>=vvm(7j~f%-Jihr76xvsfH8s%) zpF3=jXT(kz!G0m%S&nOe3T<2nk5)!|mFq7jbF~~C*3F5mkFh*`1`Z6xYWGi;Q@RfN zv~N7pldM;6miOZ+^2Sz*gYJq!trt(sBc4%O+PpY4)>H*k?GH*X8`z!(Og(x?wgllz zr8kaOq+YSJibD@zYFOkGhkk0ltl$fWJPE0$qjHi zD(8*G-It5jeNz)pK(-U1-9NNPtnim59oau8 z7&2%VeUs6%+0=CWxFHueffOI{UJ)ZFrA|CODb7ZEdpnh!edAV68Iw!qz zI^2HDwwwuWuZu}Yrj4j!#tyZ}t%2oeQJM%IH-XK8FI8bytTIhvl_bPx(+p&pz{ zW2jlJhN;0$^SS-%bWaQ;nxma8~ca8PR&Y4C@o znq3X@&(i)iMP;oKUJhJ<~&W}(<}=Q%18Z{DRCVP zN`x%+eZ{1@WmPyp{_o`kMS_Zq*w`381EII}h zV1zk}J*StWU+y^X&G`;#y#WBqsh2+b?&?llGSgyu>YZ+y2d$LWc=DJh^Plc771pTPA{ujSc z_VIpVcRn!C=b<4K(pk4ifQ998w?Ng*X#KO|4dfHKXpZ#tKB;xt^%UcRY+uwKmcr5E z-j=ztcL$DWN%-|G`h<~sYL%ws4p0IU-+lcfoViQ`?pO8)qMPxn<#u{7)IVt*G7t@q zEqI=}U-r`sm2Hhh;Z+A^zR@3Tqdo3Io0p)TTWa(S6RZS?`fcJi(rA2?WocX|+5Jsa8SibHbGzYOiWhzuc-JQSbTNX6e+Bc4gw(OS+l! ze|>TWuPbuv;D9YQ$}HCe;InbPsf&mZ!*e;Z>^5IoY;q-9}& z>keB$QkU;AnOpB8IyGE`*PxMsh>|@C|~szYmYn6-MA}8OTM$GIj=92`nS`; z92103u5I@H3|LLz4hkDWvnRwtgq+_481mJAAddojol&g?ECaG7D!ar6+Z z#}jW~Y4CW*N7-71h3-J$tZBRRVNk@82FF$>Fj2u{o{=KN%Yy88-0*6qbW&X8Q@lrH zT-S%DYD?4ypA8=TAYXPrnWW;A@kWIt4G|FX%gZ0?kAr9oXtc0ZK#Lz!FD-kOAH1ip zR1GkJ>5Z)AaxU~nt*hj;e(L*$*hce;OAP*U`3riLI%`po!ovEB%SmQmenNrpOio*h zsp`J5oGuqE)h<+D`jj1({Gso0US{nw-jxgAFGogVlPi4`uvGj0d11n81kxEJ7u@G) z9z5gaA$}OM;iO!qC0^3CSB{4<+f$t_ygw$K2*TPHe{1x}$U8b#fIKC^0{~DoBJ{STCtA2 zhXXlaIy%BL3yfp|>35;GI}MyI&e@0Tqcgx3DVGMhCOBMem$dvbyn)5Ru=(@iJceD; z_D3bd>TY!KI%^k6Mm-xyS3(w@`N^biP6Lt(LKcTrqcPxg6HhoQH3s`J7I@I=;G~O% zGGy1vTJV>Z3ab7hKHJbmIc+?&v(3&9eg{Ex|Agth*?p^)MR)M^ki(Voxyx(dQ?gNI zwmetdCI2nIxF*qphN^AdsORw;a(IK}<7HQK9=oN~q>usn&;j@;g<5#bU_ z`g!%NkwkC~^vh;<)1DY-Y#}7B^y!IY2Oyb5NNqIiQms-0r>4IdS|xjZN{qewmyTNc zDr<=$qUAEu&nW&Kpi$aU4;0K#NiK63kYZ2|KSx^oQvj3wJ#|ZuTor>neu9Dx4N}Qb z3P73yS0ta(jRU-i2bJL;uy5;F{R=Q+e^Z{A!EZ!~4{p1qTepHPs8~xh8`S_cTZjSp zG+@m|iCnJ$U|g z9Shu~zwjmF3#X){APo&dNJ(%tG?*78MpIZ5Mnl6FXvQD(#V>bELxy}`8}$E?_u zTx8B17F;G?Eqoq{u29^54FUVUee^}f$Q(>{%nZcM8Xgy8HCa7mK7}LG0Op}(9=vaY zoeyyT1!q8pq2i+jf-Lvn+dQhVdO^G^P+{225(KTbzI2)?1*lcKh|;u#oqA2e^%)t> zEauRM2P=D4G!w8`ju%MCpkW7%HdtGmbYYhu3he!*J>GP4Tt7>z!#vIvw57p+F1-<7a1|QBreIoM< zel|R*mlCb0@Jpw--1(xi>eNzQI}!RhK^IMLk)H-j`p22hH zTVm@aZ$afUC02F4%0=U8PuE_K!4Jme(`dQ2{2{NyDceW5bFV-$IpL$zivhP%kU-WlvpPG7>lR{bN6{%(Sc6IqY>J{Wad^|DE2 z7DBptcyC~2`M*d200)nxoRU0R;wmvz{ligD*d;<)AI_{9USy9JT_Cg-U8|NHy=w`{ zwQpajP{3C6)8&5nX(-z7G^Vq@kkXh}M(e%;rTmnhs}kOb!`=ek(e=Xb^)F4Pk6nl& z-$3psc-%XAY|pm>MfB3~i0?0uGCcrp$XmC9Xn@Rbwj`_9V8{mJ6Kih^e=T40UR57{w65+I>uO&{u%Z*)DlqTV{G{Qc{ z#=GfsOdQy)H)}qZFfPig1o*HZ(hcS$=}^7xTG;rSp{LjR(J3n*>^&ddmp8`2cf*Yt z#}@A(F0`q>Z#fssTEF1^s^27ZG?@(~<9#Y`>F!MWY$Gn&jOUx({V5d@#O1qsN^}BU z(<Wo32176B->}>8qPCkU<&_{tRxl^)YjA-~S=3jsfxC+rvIme<& zj3&_Vue|19!2L7bX^rnQa&)=pfh`G!+8h00wnnhP{C5F+fyO;3>Ksvc>xp_O$)2)U zB3EnIk*mpJx&QUW5AXd|VODn!hjeJP&MFCiOFmL>k+FjK3El7h4%-5rGT&uq^wLw* zUTFOBwvQ<+QM0OB{^7GP?pmefj_6}iiP>Ipv@U|fQaw+xHI_ydwbUX>-8?cEgYr% z`pvQ(%T2sOS&jMbsv92b8#Ss)xe}9bOb;Kl9iF#E1&$fg8SZW#v6;_kCh&TuwC4j3 z=gXUo&&dasUPW}Q9eOp9<70(h@2SI*B1);{0s(RNKbWA|+G(K;S0kxPe-jgk7YuJ5 zwEZve1o*gD<(Bpy!inKC;&ghI#>WZk*H9<;xpq?I>Mw zD^#amj9a08kW};2Z9?0Qq@&y_UPiFs8T6O?Bb=R*@+?`>@u4hSlz$t3HZV9=oR9a=* zyjs=x9k<^QQ2QymDOpUg_Eb(K`G1zRSRt^_B%g>laj@#U5vf_T>PmSXIf;*8gJH{% z3ei@E7#IDl{CZ=Ds=gA9<-YXB!gcis-K$k4di3JS+QJ<5kx&TUNTYN_qZKp|wGwzk zOhf1UmvYyYWMd11FX;#SDt&Pyuz_{BWj$LiYN;P~{HaXm{@R)1D<8ddcv~q7j{)(J zGWW6@cvJfzKOxY~2n|D2tg7*#KPBu}D;WPvS;G0g7?ZHv82j4Cn;ExRKJw$}}iQKqMSTPbZ?7 zH`rW4)x^^MhkvSCNy3?in*3WJ!^8+c-0h6#cKnV6kxn4*O=ZpRuwoHE@}{C7&mEl& zR_Vybon15~Y??m%M{&7eZAr5}ejIN4u?~t(d(UU=Hkl}Zk!=&X#^+ss`h%0eGj7zLS8W%BlpnjK&>am5*T@(eVM$p?MG=c-o!^L zHaMuBD4wG^y?7)AVDX9>_4$DHYEKL=2$7n^qLROPyj8E+!_=>feCPXDJ$2bIMsIM*xq)GD;2pW?iU~GE$*^)-#1wUB=Byz}`LN!SccYq< z0`~gB=Q!Yw3s$>O2A>sj&krGU?WkP`vXYnIYe?=Qgi|aK`|65{MMk%oO^Gd17m`x2 zdmO#j@&LX{IGpE-nZ)HajUvq$qMQ075e}WBiZ*IfU|_*$T=rRpI9bk1Lndl^Qb|M7 z42a>#tMP z0C(BLrFrV7T$H#jyfLlNel%>8Z|(qR3Z8a?LCG~pT!*umn!#jl>3eBNtqjET&u;;b z)qUw92PdEenV{JzR$+>S4Kx#v=Nxo}WzxX8!-yc;tM@3+^t8YY=@(8elQ~P$ES~NK zl5?&=(_tfU*FUczw)+zVeu`nzKzXe_u&qaGj_ty&wMKs1ZTD%v)0b`IcQ%&F!nHVS zN`nZ0)o$FiP%w+Z(lQ^wi?a8t_Gu#$&-+<5-E??%tGf!_wlFf$5E{MpCVog)46GR8 z_ck!g=~~N5^fL}u>?X8s*2LB(QHEN}tX|GnyHDFaKj;^!wdv&XYSdDacnh3njK@HO z(i9+;mKhOPedAwQko6TuM-1qq!>eu5@pg&(qb?hG?*K0qFV%e^Yf0ublUlL=e!0s- z6o4DUAe$DLZJsgsD)tfGqN(C`mn1r!l@7nqwkF&tF(90+{kl!)MSZBX7xHX{AD(j9 zz$uR)AadyX+Z{8tT|$$Ti{j9GKArD~BRf(2KGp37q!`U*eB3YU&R$|Y>ZL4gNs-!_ znO^;cODvB5CY^nRn5%L+bSsBRye%{0A)<_?%(ut!z2{5&X#~>$O=@(UGXDeejjW{h z6eMH@3>8^o_1Z|eSsG>eNhx|QtN$Ezeqm!~a8phbvsl{_H9-T72%T@n#q<3PnmZ=pjg9*jy69BoIOszDvK77cba8aqysN9fF z^aW&JCN^@QFs-@*9n+55;xdulw)90~jpOQXC9~wiWx99w!PSANUeA_x$CaG5uKy7> z1@AmRWj&JgtlFYd!iNqJlOU!{V~PVA)${75maG0(?C4Csv#F8w&2}UmiouCkrluo; z@fwRXKoa!LhuHV6@UpXZ6ky)BrgC`{70F7?)GbqsEU)}3s8)9Wwsgys`jOS(VqiZr?YLzrt!a4OOO@ab03bc%mYPNI67gcebc0k*S9C-RK zs8Rm&*jS4t90qmi3#`%&Cl}B)8hSSv$Ah7r1$xkO4kTB6sFW*JIL=J!!1am%6wSAW zbzs6+(3%41^e;I_{d-B$beEKE%E|7=Q{671D5pRy;dCyB7TRm_MpJjO$ zji12t0-T_H86M+}K-&DrDaoZuw$vuN`H$aTpP2l2;G%Z&&rN`lyiz$ju~$jD^)R($ zu~`KZWkC8DMM62z94(Xw>Z3x)L%6J!!>k$uP`*&OF}IHBhB@-yCqsFml4rs0pn0*> zF}>bc!b0`SGIzE1M&id0LLEo9;SENPH}w<}$pxdDA-9R+t4aizk&gCb$mONO-)?pl z^O&K*+Crxsz@foWmP~Hl!M!@$?)gmtPq;*7Hk8Y>1WGfU0}NYKfYhlVcaMvfI3M@5 z;jF|`>Ccy~MfHP3ep!&;tw>DD(#81x&guJ&mWCDMe8;#nze&k!8xE;^|)1F%=TfFsQ3>@rODss*e^($T z>0WE$Z4>&asmyr-LCej$?KdDAeY|Os}Hx!kHZd5TTV;E}A#%V6W+~lp~%iLOsHYX3iiD zke{dl>6MmXMmg&9Y!5%i6c8W8?ra{O*-Jg2pZsK_9~rv)yJf=&_E0|`D`UyD^R}8SZ+HBc%~Vs`XyH(zjdntiWS5uQ-T}<>!l=)}d(q%s-|6 ztxOE0Sm_vhoPHe`6N|PceI#h;l!Qv^Q~)gjDK8m8K^TKMw-EA>jQLgES6EhA@@k$H zMJW}F(`FPi@6$oujo;i6-d#Tm{}YqO;HRR^RxQeP{6Zx-;7E5w!{@_kvC z6E(3)<9$B}WnJFMVmW*UCzuAX0zvc)$g}wWmp)?%8KEih%G-2kU=*LTU*Fh;;6h@H zf0kY(Sp9&H%!DM=^HQk~2U48U5GSF8ue3!6m+3!uX4RL--*8;76H-Gxe_lo9_2%Vr zHiZJ2V&iRx`D{C!Jouf_ z^~EM`TPC{UZ`Y@n@Y74EIw>ywmi~{^0ZVc=z0HE9e zrj25qdq%U(s)?o%fDy?(7I(Zv|D>({c1SAaFaN{-;sRVHc=+SryZG-glmXH7U&d?Q zD?c9;{yLJKLYIHk6`>^jYulLg=MnrdJP1R9Lq_0iz`CfbjeUdzUN{hS9UYwlCg|O% zSLaw*Q)oVfujLRZK?cVoA*q{PTdD9fhXYIgLTak?oGwbsY|D8_*Yqc}GA2}0#blTxZ0EDSl%9M-vAc{&WbM44myx7MlZMuv8i?M+!SiNuH4{|t=_=fFT z_pB?7mXkO?7-P-yi;s`2i(S94*EPTj0Huf1fm|kR#hl&(c&HcF1f*WXj|0yBQaa6* zfx{OWwth(Zc(4`*pEZeZXqYJl78&r<(m+L6i|3rg8fX}u*?OYS)ZxOxk0rqjK%u=B zZn*H%7F@1}T+Qsl4=y3!v7Xw$JM&@ZiMfSsva6U=IF9Klz|v7Lm1Xa*W*IoaI+Qra zfgd}}Q$j)5qI=L+`EJ1w6);DZ{Yd**hrb78$C@_i;6J&~oqj63lWb*PR&neQ_4JlJ z30A|G?vT#6cBULG-Hwz`J@}#1ET|ZEyLcIK^5Z7f@88H7|Bn?ZS@KgWB<%jucmNfj zckgN>)w=S7wu0jn`s}}l&RO!8ll+S*o*MKD7bdpO0AvvL$?bBE*DzbLXI4Bx@lUkB z@Kp(kEi7i)Xnn8jq= ziRdhiXydl8;EUPfG1vg2Qt#fsX^UIMdPB)GR4pYAMUI|`rI8F}{_$V(x1osUx2~wh z%s=+GekxjXgtuCWZ*Rxk2- zGPd^5eE3^d6%lN_G*@!0yADV60X=&TR@O9vVGI_dlW2P(Z;{Ri^e4gA`OCYe77ix= zt(fu<>^L-gdRZ+ksZ(UELx1?fFd`Pqb(sa|v^TpYOt0ACanz^4(s%|$kd4kB9(CTH zWGB9B1v87FA{m8fJz~6wu&!=|93{i?`Cf4Fa4pEpqPcj~?IbR2mtY%DJ|k&4y8E@Z zRo~6#rC*Y<%WurCfWosANqNoZ11UnX?}B6}V!>p&2m^`XZ_SCMEvmz(No=B^{?tmA zQtvm{9RXy^8o`$yTg*Ufe!$CL^b1f{QB>^kG75wsr+uT>vg06~+HeQ$KjjmKx0K8o zpE0PbPyk{ILw`U#-LE0Guq$w5*>qSd}#&{}wz<+;RC$dr~?U}Tp)O2IR(e_ z*)Ls@H+mDk6zDy5Q+&rvuo}13TcM~@|D$~pAI*(af)O=P8sUK|1>9|Hx+BYR`OvT5 zAZoT}LynmOu`UF)x`L{L!T>BG#q7H|-rnpf+I<`suO_Gfv)#_)4|{5A5q){EZ`p0@ zS2pG3Z+aUb6fw%qzzk|H#L_C&9-6o&PJWDn%Lk09FYO!E)U=JLKvT3(p}PZxiXpfg zN+3mMPCzzCj%70ZS=VTpl-K=(oq_&{1?Tps0Re^`|wNU7p* zONYX20j)Qdi%E9EJCNECh;&Bre2Bv10Cl!zFL#`a0LxOyO#Jp5Gh1zBO@2S+R`GiA zwu^Zj4tH%$7*h@;K?APN@^GNYXQbnRrJ8O>DjPKPiSZh5EGx(^DJ)3)3OexQo(bx2 zS$v0@(*0$oK$>XE^N<0*@auuPycdgUig(Jrs{D}7$f!}fdkn+}B=EXixC>EqGCa*0 zt88zt=h+8OqjEe3$G%Q7^fG3F%(1{^uU)3_?<(|bPv0O<*Ew&}h9~Z3FX@8#(kE@B z8)qf$lTfh;Vx}_*yzIQ)#Bm*1dsIr(rL(HsNm3)o6Q69l{ZwjIpblKiaMGVsl08Gu z38x2l>sD(#ro-{c2y@0UFi}(aCTey}joYcp_6ue_=_WQEy|8W>Wu zl?5Jgpp6*=J<#ElEh!g=KFeC!5?VO_YzTmJp#TdoL850@*dkhw+x&z0PkeYBZh=Y% zWlcA*D0M#=NCDJGUYtwjqdVe z{3DpWP+kvkkvDq@7E3_+>alE|%|%gAp!5CaSVKgN^<0T`%C4M+jm2Z+N;_U;?@|`w z{CB$(oXtv$Gr1vVuC9wOVKqfuR*0t?;~Hzq5Xl*UlyE+RGfz)nyS{Cki|~db8J~*{ zcfJ);oDC$Za)2P zO!w;S>B}7??ea`c3+h&E(+?jS7!SSZBy`xDO#U(V$e=WOrq(n-hUZ1rB>^0QfDI*9 zMD~WHKz4z+X!zR!b_`Qq4Kz^*!7vWs;xH0=i$|0|X-h~t(`$&n&cY@2rc>N(YOYcm z8SS7ji0tUhJ&oL2(DfwLY~AT{1!LN^kC9$bhb06hJbfr2{FzR1KrJX~`N{)G^z>OZ zV=FH@d~U3AwtCf>+!dI;qDyZ&gS3L41Z81b^5cNiRKL?dCx4h>I@zwd)$px7zi)V1p9;{ERzPu(E zY(K*V_7XQda9Cx6$-(<`@#>K0&tl+$2rx0kz`5_N%=}hj-i4Gk;m@8u%&}Ux zj)^zwR|ac2%@GkM2YS!g_HpQd#P#LM(fFAm=p4H$IP(nL4B1re&FhSmN|T}kT1yQT zf#E4&Uu;M?O}|0d6)t~w@Hs`1e4-wU27EulAVteG;$eC<+mcqh-%4NAlGIkYAsGGl zAf3jTA34(UK{ub0WImdpZcPvDkkPFlDg6iBLIDvWU@GzW9g!d8;@>IjVv+1O;)CBc zrZ47hF&^G2mE}44e~zto5{PTmAxkSm?Ax(Bi;rf6Q;6k8Kj^)vzfe1Dd`7xWaJ}&@ zvIM(+2Ih{l$NPB9x7(nM6%p2(U)~s3OhaJ&@EV|7pGP=lLEbGEjY!MB4_WaXa7KNS#XgD1Jfncv=SXqvam} zW9>^Q>(#I)Ohn6TJuP_;Y%}+=ofSK+r|{wZWp!G+w4w;gtX8s#%L?gy3AW%Vj$DW^ zVAPEZ;19EF; zj+*jkLPbb~&&>Z+dxjMC&w+Ha|DJn?%?@$QqUow+2eo76O+g#Om3_#&x~6GyeX;N? zkcm1nqlONk%pma28v)R^2?z{)06MhkUjOAYr1D*x`j#~e4UE&y5BH5eCR>>aE1t(G zMROs+6AqU*T;DGS@J+2p17Rn#ztYn%v?TzkpPF+M zXBk}x$u#bpKI?v#ZLz0-Q&czC*S6L2DC2trm86o{(0l+3WyB1zx z?g>8Ez$E+Q_~U+P&h=j0(ZKW`Ybx3H*|#Kn4q}T?Jl^%tZeHRS;Gcu9QD~wbJ&cO- zef8AP`xzxplHkjfspMG?;q~2h&Z;pFYxKxbmWs^vfPG}Eu^OeS-bDc|$1TOvXP*!bF9VQg{5Wrf7$kC1{E29+V_N!J<`?qP8e#VG}QUTdn8H zcz?G*7l-HQT#(*v_`MJ(OUjtP$PHgFIMD?CHbXeACf_SFYZdN#98Rh5odr&WkKi5q zq{&V?@1JFXhUp4UR#O?av|K_3g}V@^Jzu{%4(CidgLlVtELm^M#w&TXnWimn-A_BJ zj#}KfR@^@Zwpry^%KXy47xFQK*&cBQ?t|jesd};`~lf2rUs92uXo0qxA5{;7cP-f`79ESKS59t zw0!7-Gr0>#v}*$`S~nmTt-mePR)N$og_xUa&R@?*uZ>0Qrezm<-vU+fZHdRy0G@!q z!c^VzXDQc z9kd)2UF;37@wqN@n77ak-Ft-=T$`KFKK>x~9y2`WrtX?ngez$V^%~WtPtiqm#6y$8 zE&P-6-We9E#V{*$o+|WV<6RO*M+?K`RBmtAw(;P@9U0YXrk6hZzTG5T76n;*RSsnd z^wQyfXf(WqddP&!PONvJH&&I0=?rlR->7zme@`0%@jOKhi;!=Yv!}B#E#uqczPqBb>6MFEnbCc^7_!B2A$7-(^VOKjrws=dH3{VDW@an-DikeUb!^g1t1VaUpmF_qc zshS*ye1(=`10L6Q<8RYYPurnXLt(qCw%@T=N%+RIVm>dq;ts+Z*N3!!KGYpOfRSu3 zl9C2fDi+`p4_zolXhH@pMSk`>^X+|4Iq9Z@nr-#O*Ne+4xll&MU1}sTZr?medbN3L zDJ(U8x(z)GoNN|GY}b6Bz%y$}HrF9=SK<&`N#J##-eCpyl-l1%JY#ba^qtayRq2yy zlMHeBuO&EgtD1~DIVW&bUWnsa+7l4&G~81PEGqhAk!P_Z+N=#$=6k8;RO-fCZ5=0X z<6MPKVi@x?&t}Y^oN=a#wHzvvN?A@7ge^}p$tUR7wVCKoEfM@Km$UDxL|b}k!}oC2 zf8ZA)y=Ib-OyOvm2ltz(!5<yWP?Oqg!Lxgm*^Dx74V%PLrpV-$e%fd&e>OPo_Vtkt!_7 zfM$Uu&qlVV8^hBy5Z&q5a%6`Pz6%nlDcL?p-nY_jn$_h7cD(C-F~#PgYG8!ada;SR zGpTUnHvaz7-(|Mcs9}JEz2CdaNAd1;?d?5p?Bn1tTn?`jHD1`uUU?Z!-pbn)W@5KN z`8^4NRmDBckl}jFpNQQ-u#bbzM>Nx1#5jYvQfJttC8ErTo~P6%BQsUJJ`Bo2qpn5M zdGxAVW2P(B1sD$>v6Fz;E_&sYh4)dSh+R5|+n!|*@jy~y9nZtC!m%nRflV;}pEtG*usZMl4_&$qY!PuqMlY$;2M=dfHb<#lUMc@v0_e4JeqJr2H@ll^-2^aVD{VFrgubO67|k z9LDkC+qI;<)sD8uw7kmfWW`aOCF`JsE_qcf3YBlQ2ux1Q$}iJQCg>+5A+C0-wZS}r z54lS8H?yNJwg^gxKk{V#N-a`|QC1`Gv4Ii|Q`RdZ42<%D7A~n|wxjHwSfoxr6Q!sv zAy1Ka9j{=E2uBox@io*wh66K9mG^QQ+xgFlxAWA}Ijj|JK(bI!c<4y}AEE&by;Vf4SDDU1~R_E_FS)@DOV6HaLS;m+wSOzo*>dcu4GZ4JA7*B3wUQ=C|pyD5E<& zT>etFoqh(fMy1Lu_+a4@xG^2!$dt~f_1no}T9C|sXEs=BmVCoYxpD880vV0fJ?Trk z`i@TP8^wmDTg`>HK_QZ(8X8fr%=`R*K;G((Qk%(%>a%Y=u z@pi)p>Q25^dhla4lHY4flUABfYm002#T7*QpC)!EM8CGXw+elq!XwQl-A49e%@f>2 zCb)^ng*MohyXXxbv!ha22tA%d!Fsr|g zt(Jf?)`7F8ClbtVsiY}HdOiiw;N-wIPH5IUr1v|gS<#shEb9CsH%_ZY^+p*_KBlck z-?2qgMgEi5wCviD_R5if(dZ*0h`aH8%I)dCs$Z@`U1Ohgh3e+Ukpy?c?f8rkm2V7w zFb0;rfmG)Eon1C=R(vgf?XhZ82*eku)2t}}-AoY1%(LM9HY%i~z8u+vRcuJ0e)qe< zQiDBGA%mDuVzUO!Su)S%oJotWjfz7fn0KOq9HCqBMH2JmxaoAQkD*3Z=1e1DQ9iW# z@i@cwsk9ETdTT?-lv%Ip2_e-PkLLr-catsG1~q@G^dw$W`bK^gfh|6^d4iAHwCA6# zvGttaS#-p~qE7j8&Q`}+uZ;}*AxmOaEEm&+#@3S(G`Z~zK3s>bq^!Yyzh>-Qot!9b zoP8OKR}a!GmL_|C*C?oL&cO0JBUgB*oyWgNAO-jIf|I$;)7`I?tQq^ga)_j1$IbX zhD4hYhi7PN$bdhWMkeSOPjW1$c|X`+K1HcIuIYL7?sJjB&Sa^$Re)b#-08HXNOpRX z5cx()i?irXXvF};AL@S#!SD;_RPss6SklVJq<})pD zG6O+Y%joQqLRC(CPX6rWgkH95bX@7u^%yI3^6WE)Ojq^x{1kL|k$U#*kUKfWyW4a$ zEf?uGUwpACp1>$r8%eQ;r}fM+N3T1^=@wtw-HX_kxo1CL*PBG>gt?gE10poUE%-maXZA z$528y#7B-!*X4ESg&O4w-oq7r>!ko%t>Cx9<6WDK2w*?s2^vP%y_z}R7UCGQ_752d z8=f{hX6=%-b*Qk+KZ_%X>5s9nMC>w4?z1%@UR`TeLoDd$w44#a+!Zv-{Wqg>G6q8K z&zX!g;}~xd9sHW(_pw`&*}ReU4eXj8+^&gBj87uzWb(kg2_Ci!6WbCPmCzo-z0T=1 zt#FQZ_LE(%S4gK2Gng0NUZos1g*OZ8`sZPceD2(f7MO+r^}3kPr!ZRHB8FA|CGI~} zyC>tJDZB}nS9@!xZ(T*7*!)IfXDG`aa%2>zGy}>2>9p{mLDqUtHE4ART6P}M)Lj{N z(E7TN2Zz}`dde-k>yhT2p}HDavwS7>hv=0ZM}g7%EqlqP3J$|Jj`Yxy+0Qx~Hl532 z(&gArJ)RHsm;bOl=P7Y4HJOvwGHvF^;m%;btw(hR)p$WgUNym}d%c@)65kcgM`{Z( z6LY5gKH(FzKCq>1Lyq|UMspoel-c9kFXB)>4BBZr+<|<4jb@zhw2pzhvI2=J zu1?m|^d617#kS8YU*Hbl}_Jt*3#IBOKhu`{88p6h)24I>^enK%+u#nX=!b9-}pIFMNk+~@gW57-l+OpDKxiOs}j>W7iabz+s$aVC}Y}r7wBMT&wsWK zdUAX_`9uVTDi%E$gJR*XQ2aS`;lS2s>z8HJ(Lv*_HoA2raV)iXm00h44V~u>gnpac z-*$lwf-MW|22leVA)Nc!bHkQzWzQe3g`>n-&d*0KP{T;1qTt*16&iEO0Znts+<7sI1T*u-zyeyY0HMwz3 z5M=&vbCo1-goXaQl)}Q1Uu8yd8l8UWRI6OqDjs}4BNhV`eg{iR|F=H#eoiu!KZyZj zp(60PTFs+_rWh(%!2j9!S1~>0OOvP}q89%c|j;gppnL%AY&;I0c5GV;wa*Z}_!S z9^Vmq65SE~J-TKqDC~ylh-N$2Aj?onU9Xm=E33Qh8;wMu3=Oa$1Btww{O0}c{V4o} z{dI~s^p>mQoBCuQ3!|U;l^8^yGw2{+F|0-z&=|hE5`~Y@1@A)RLhC~3Lia-d!tlcQ zVpEb4dUtJoKOS*+J#-&AuX9T!EPVe~Td<8|5S{Gf-7`TD&6dy(tr{k-9l%fDmL8Y{Upy)eJ96t!qhy-u0DD1HXYdU@TY-dykBQ{SHk zcrdL}G~FHfo?b^N{jQ^#5G6X*T!{VALS z!|so$UiENaqhy-gS# zJ^AAL>i3cyknu^qUZRGl-qAHRTxofF946izEvfwdKI(&}gSLY%R*|;AF&pi%gSRjQ zMT?v5djck&5=9@%n5HSDAa7i7Xy(ml@K~JY_}I}gE^KAdFcxfKx&>C%c%&#om&a9J zW|U~~QS?&4A4Qc&8+txTbA}!wK0Ob%gC1$n?eT35G!MSjkTx+H`-xeYyJhp_mu#|15~NN30jR%PXiiWmSGi2f>pM2EQQYp*}~G z;s*C4sx2rgCTG6q1iv2_tpBbB>&L#|8Hr#Br@n@eC&L0ZfA5y9n*^=t$-Sm&hd*`C zMAJ?_N#_}=3MYIy2P5B2PRjfm3!9+-AQ0Q$7uwa~UpD+=i3|Jmsw(wP_bD^{_MRib zSDE;XKhfiW^$!2&;TQ7p`qmrq>rHA%l7BCQ@H*pQXpphDAxa<7MbYA$k4P9PgvaVw zVUaEF-$d%cA1-wL&w<#De^v=-;wiW)FBD{hKC-20q(d@=T|)n5Qh)p;(R+~ zGV;|Ux#HrKJA`3rv^G7ju8n`te|=XQdq=?~IbFUJS?4J+aoj|#WR zssuBwC0Bh2-Cl(;`{;93x1Qy+rmni)NpT~>C;8o5_;)@L#_%efW-M0W7HEhCiw4x9 zV-6mBQ4~AD5@ReZsXK?>_X_?NlxJ@SZ-h2k$ix7@9=FBa%z8(s*X=-~-xt!IriPnY z=+Aih$m^N^4B&}V(~bNs=S_uG*5r+I7Cxk@@kUyEe7A)8LCA$2HV~Ka+ zr3ZW&*QZY&=u#4r&ke;k`>>Z9pIWL39DaGf;ad7;0lsg1C0~*M4BlIe&J0lZ&@V~x zcDoj(78*{XbmxLuUv$mxAE@!~2a`_WQpL;AO7;oHV8<25HT8*6!fbCo2kDq;8)X_)UP)B$Q(yZ|$YVeV_M;B0Q@4 zfSIx1%@D@MXo6^|TW2_1pU?4Y9QjHl6;|0ea0Z`_oV3ZGANMq6qLs=-ls*_`UJSU!eX@pkr?_?U0R>WfE}OAIji{1Ipx79G)@$p_>|EDa2z|-~?Ax|StW~O$O4JMYZU(8@I(a$0jJ+-l(%bJ(fz13yyi3NX=jID(*^a zn4L-|pk{6YP>%X*qr9xEhgjs2>)~1zMG_fnU!!)e?@3Xp9sze9VMdyxM(6WdNw=3G zY<@}NMci1Ks9~_B1#w2rT)a#4q{~+=N;fCcNOtN@DR}&6=Vy?e%@B^O(bajUn#D{5 z4r7k&qbUpe4So;?_zHAQ)-x=9d4sbPS4pQ&DM^P|akiC}y26G_oI&*-^G7Uu3^Ep< zFRro3m`M8wi%Uku=Ugf6jaedJ-v;!6rgjFPIu$ON+)bs_>pgVd^7EgePfb%pQ1x$D zMqw|%M~z!Zp-^S{>9w_Gwy*W|Q+aR2q$;&IED+;$`m+$|gfD`tXVMz+DI@m-zc5xn zk`Y&KP!DmM*yviFYish&yI;WpWw#|Q)GTN4@E3H=n(LSjh7elGj=6qR2yyPd_PXu< zy^p*<76Wo_)&969eW%tr-!O$CFL%BFu|VnT@&xDzM?9Aa{S+R`RWf;??$*;#%brYh zzVR-`A?DM@SGIa>*cf3XoUtH}PNKb#VG4v6M)ODB^@%@ux?AE%h!wWQ9oxW<)m>Op zSL)b?Nr1^f!Tsrn#x>F@Ngwc&M?J5zwd9X8A}ZW>x>4i60HH9Ldyk~JFmG|higt~Q z^xSn{z?n4(mziBY=(mv7f} zf4#RwsskqMDQ=>0eid3h&N(DK9_)*&wsI*U*XRO%nC)#ZOF*=c2S<0u-9ckUI3G~w z)dU_rPO^ukzUY+g6TV$}DV|U!SgDz`OCO$Gu&Tx9XwT@}HQnAhSm;J}OVc%dT=5b8 z(Gc(%(lx04cSm+aFgV{PmqmW*ettFnD*o)2?)})2b>oiVW+M1)BX;-)yplm9#W`Iq zd@Sq3w2jl`Jwvrt8{C;Z`6?8#w`6N!C-U{(vT^uWuwy>dY%1~L8>0S8nLZ7u^)kcD zE|>a&MxHr3sFNiVE=0oC^lDd(v}^5jn&qrhvb(Edi?_4EX%&g3Ef~EruEfKj#JLNh zu+0pmJ-9{?ym1-vA>{Ak5OIdL+2KB3Qk7*eY?@8R+ICmeW4Y}>1MhL&^pXf5okxj`OqL?V47ex+Zh!f9k z^w|pQ$<()*9v>69z^-1u^F*8~mzO1pTMG(+={+ z!5<|uEIQ8f%byI+xc3t{rxJTdC5~H;ap>SfP_e#}YS4jRh~uU7YLCNN(f|peHm6o= zQZr8VR8=?S)^{}6(7gN!y;%u{KHS$4K7ziW`(B20! zsTQilMvTQp1&LltakA*J7`Kqvz6n0kwPA1Sl?`vaQo~y()49ypI4VjG-a#dlaAH37 z?X6KO%54?PuaRZ(hNr=f@^wa9EUBEHd2N+HI*?>)`%@dcQlijU&wP z3KFK5Jado@iUNAQ#@pJeI4bPXBwq_4SE>ihkOHhB2K{wBXCoq$*jddty-O%qX&6AS zUjd@q2ZlWi_6a2wU=57%qBhB&giI$c5D6S<5@XIiP2%xB=4^_NjbmzP+%$(FBVJ)R ztrR{WV1dqf(`asV-C%y6{DRHig!qf#Bi|gF9mf$_YwP>zakACBS>itae-k0u0|f0- zLsYgljxyInE;au1;H;U%8I%T=kTtfkg7|3q_tCqF&NT)PxfH(L%YQ)}>?<&}H@w-9 z;BdRr)M9*L-2YzUT|7lxk-Uw-Xbq+a(rV&_wY_=j_l-|v_59aMs#SJA8DyV%p3uw& zHxOCFxT5jn&D^{)-ji^@z3G(w<(yol(f_d@v=sUki-A(b7@ghMs1-mHVN2?ZjRh2a zG~8!pr$p}V28Wo1wO`OTUT_2V_OGCyM-OJ{!d2!(H^8{g-@ai-U9bGq~oHun{x4M!~+8=w)fhJMF?IRX{{m^1-w7 z!w|uf_dl}2tL=Cx<<@(NtbJ*L!A`@!6KCM3=@|LcMW$7qJ4&kJPMw+Ee!aRLF{PbG z?avu-v?X8ZDTb$%zY8fA;;xG$obl`v0Dh+4>Zbr@LUuWlk}X}UX_fRz285h*@xB7x z@s)S&f@S_lk_+A@QeZra#_*uksw@CCkOxEu}2;@Ab6Wt~0}b3bQ>Cp%v{PV|>?RcYeGH4s%{{or@sx`P?jS zPi8xmrGUz3`~(-+;3|8vhh-KaF}}U{q-fw9qY7dkIwqZ43zUxHoX^yy4613m#ASg%P~J;?2tLHB24dDEesK_SF4 z!L;t--DS#aw{`I}C`__sREZlfD;nnoq86Vbn z{!DE}R|*`BdtCN;)wA(e?o^I81hv-3C<3I@F>|>XJHtSgt{+~58d#62<74vs5(juVHjcAn(E zUA z5o$(7(Ws-aHCj|GGgM+r4?Q5Gs8>;-3rqYlh-+vw3G6saTL+s=Y)rr$Y;<^uxq`M_ zhTGZ6td(w+`y;Tin+^S3ovNra{!i^Z;;*vl*N~UY0B%&+h9yoh0r0$i{Ozv+XFS{CGEGjy@3@#w|y z-*aH0@vPfGYl_LH3(cLgOqU5sxDkv)I4p1+_C}Se1i;fVdFsgp2jP=F^vboqed`eG zp88No0m4#!(6-4aJOl9l4mU19xd={i_}!oR;?`4G~ZEGTV3J5+xP z%$FWPS;xh^j*ITx32kIp-VtWhm6W*OP&(n8Oi!v`0y4-E`$P zas}Oe3X$vvCM`evK_oAChL`xN(YSt?^~KCWmQszBc9q*zP6l*zzkD4a6I)Dgk2m35 zR0s#h5vKO6H7;j~3%BWvtTHP^XUX*NMpFGywma!%4bw6cz;-Ar0x^w+_&xBLjf)r2 ztdyPfiKR}?H@lCWm|(LUK9leSYI#{ch}J9NpDrF*Wf2^6V=0Ct-Lv}ppm~@q{&k_& zEpe?286$@ocuXYxQC8KGA4KtFUZCK8fE-13u_ z`QE3^ec!b-DtZ2rESW`xH2FML%s7Jc$f;Q1UD*=UlWnsAW|8-kwhf~j1sCOp-g|U= z?vpU-a>IyY)WQ%Y5@OJ39m-{6bZC8EXb%TCQgR@m=eSt|vcA0cQ$yok88azG)~ZH~ zLL!P5;1Ow_-3-B>@x^PpO|Z!mNv*m05X90Ochi?U0guG-mq#+ZiZ6Akimytp#I-92 znJF4ZDu1uuAfHxz^wpRhnS{WB4?PlqhFnoKl<1nbXc7AlR$#vJ5oj6*zHL7NIvBPB z!k>{b^^P}bJaSU_T(--z87JnZv_?Z4qtSd{8#_z-2pf+jzyucuwk1Gx7`$yr=c&AY z8mhVn%pxBp=zf+u#u%OeG?>Dxm1ILX2=d8bD7m7tjbI5&ey{IVx zwTO}h|D;%3#dj)MUOJth+gN?7ELv3Ec0c0dueTh4_-1rW;L{+L6cX=AtIa6LvCNCI z?Vd8g)T$lNruJ%$mRv&b+gRd0ZWl1wlW|Ok-B|&}=)8``h#D+~s=Na%z%?;|Y;JUz zxexXaGS%@KcFo(k?gQwqgyCiQidZu_ukWnV2*WGH^~%QoJQ9K!J|VFZomU=TyZ)Lv_5Smp>@xG|cP?&M<(U@xo}TAMuHRSE-P;ezvR)-`(LP3poS30~?i83m zj4!;8oclt~!kq4f4_4``wjY2Am|F9^7-Bxqh zZ>hYs2SIPdr$r@}T7coTrz*p?em1 zZ?$V@UCSxB4a%DP&=*b_+UDWq(`M?Pv_mz>%UCFd7 z9-RYU!b}LD!06Az&1FaAztmpkW3fp%ngq2n@9J(DNcfYTC{>J+vDSH3rjGpTXqR_?M_0)LTEwO_LAd-lm zRDxz`7%WtAQhoBk0UZ~^cC0#<8OGU{T1Z;Vp*qXeOS7g*M7+-kTT;fWi0|GT{$gwQ zQ1(Jl`Yd$ZnLPRBw`KMuyJTVAoC5Mj?nDcWmOnw6xzCx}0Bz1;+7eoCGv880Il=vo z8i1>!p3@m|miHeWS%2d{E3w|z1G8_G@84YUkH25LvQ3Pm!m~SFn$@o=l>8~Migf4q z$;id0kW%AMmcQ0yZ>x|IfJuS5xA+;bl1j6VdHb($YD&a{Lo3dwHgcf}pW>Sg%& zU^4~kAm6{yyuz{NP3`_Enze|kGLWMxwxe4uu}qn&U1tUA`Y0hZu=Wo2n&ddu2Xtoe z`emOS2}ODqjmCOF%D4Bo=8cIcu&ZVe;@P*^H7~qVRc`UmiLUZ9c^AL*`Idv(D#Ze? zI1bB8-KtJg3{n#~DB09pIj@LD-3Xw0aaX+kIK{B*=UR2B7kz#}_$t!%duu8X{OLgw zM9cYDQ&FSEPqS1;#Yt~xa_5`O?mSC$4$k)J3%BNd1~!A4JZuz`-u;lf86fDN00{+y z`HFT#@0(pi%&+P36zJUM+xi`_g221o13J4MOu7ZR1y4jeMg^Lt;{WDEI_RWXj|jqE zrlTzH5$$kL*p;Im#{rTE@f<#43PW1aA?g|%wkM+i%&N4Z^DRbK3#QOW)^T1vJz9tz zW_Mj*TknW!=Q8LEpq;4kV|ojcEj6$h`l>ZwG?A9HT4|A;%L#PgZU}A`16Rhya>_qw zSTojCRq`)QJXI{V@mBs++C%#vVVB#6Cu?=xL|Oxe3N)5q&ZUpH1et+8IB+gnGG#FD z-J42@KsbW;6wcxQl!Y`Hq8 z3ka|YQ#;X=@V7QB6*gIIfQ29f*wsgIKe1kj^%Tu`4wFc=Cq0k@BO&>MuZP<>7#K@d zsUw1$;*R#8YqdcfM{b$|z||g#m}u2)z=uD6Ny>S|b0_B5LQrNa(IL}gx{dP@U&D<> zL_Cj8^~cv^c`|b9HF|ZKgvP*cEU&Yn$A0Ug%0mK3hvmUFX}|d@<|&?D!C-q8&@qj9 z8e+qyI@g8NXGQM)#@Y?v-Zi(cyXjK*{0RJ4Qe*CMXOLsm{sxjnSx2)$!w!|x~nVoilj{#iCLR!CZ4?(TGZ48{`-B`NLQ^+*0$ zcGHIP>_d0T0o|}H8jRIPHa?I9QlMiHtJ}I_Ch%5n5s&A@9f=ni%Bgh3L39m;!zo1G zS^4z3Udq3I=$E7kbi&P|wZTjCE#y7YIli6j&q5v@$f5u6SdkH@udo;z(%jzd(^x8qUsZG*|zuNOJ~B_ zhyuvW+$arkUMIZ_e&B6vNknuUgYWdId|_BoG)nRyR&Bk9_9_F=Pqv@0ZO}8SC85H2 z;iEiS7GY}luJyAx5WK@o{XXn`l=j+md*!W(mPNvFo!Y(aZVJOCj&~jBuVV1t)DAulO$mFSKsMd=nv-bQ%8P4gwKgD`Omp zHI)aGqD3o3eJ`bxR=H0k@aP!8BO>@`+fw%hx3OUp+)lJ&>FopSKR90t@$lq>OQ{nM zNq`7_FX?Lxc8gx^Ry6i286e9UZuelLYJvVtW@0yjV{!*GZfnwhDF4oa2%7B+Kz^A% z8gKf}-?|UdFHQ)l7iX?K@F_=JrC1c_cwtOn+vQ>A-y^SU*kV&G+5AD8^%0GL`o`!U zFf(Y@U*=RCSN^ZS;E;+vG~wFRfmY%Um``a-lJh|=0=pm zTn>bA$YjDt2+r7dr;6Q;xB4fRLC+09v0i3?w8)QGFqPvXGv}8X#-Y)pVl}E_kJ;;y8o60mR_I6*vngpx_2I7{f?nKsy0BeK8>N$o0QwR0pKLpuTTMV`SZh?LJex zE?PAike-nVng*&Jym$VjS!k3yO-NzF3#!O%B}zjc6J-9>XY%W({qMTx@X)0~* z#+c2(clE$@%Mz;1x0B<6xN>k}YrP%93u+9>x%d5N2?DU-y62w&<+VSfBRXPhK;%2@ z(6@WWSxH3kX&hEJ^z)sabOX?ybKA92ENEpxBUSbh{K3nfn-8oL&Yxlp?jFU}u`l7= z;{p(@nI3mps2Hf`l;_3Ievk(uiUF98Q7x-)iN4Q4yniiZId`0c4uiv9<(no@MR3>t(aPCZk_4dlt9e_jzg^)EBlOW)#ay!QMEK&rt&I4&_`m5Mu2^VqvLnt9|}LXO$NiIjJb4 zrDAtbg}?g~tARZFrxykr!KcZ_;S$Fg5`hv1@mBGkl=gk*wS>i=q+KBDdDd}nc86Jl z3i>J7X_s?y;MgT4Iv+ykEjkcaJuWvI{&`<1)j*{DKcLq%S3{nl-onzbs^IU7c13n? zAU6Y8DDq@A5M_9}!U`<6*iU6{+umVdqE{^$wgX%UTX!QGRhZYF^_=sc3!jUdOGAHd z>b3Yj%~E$pv~*-*JmVT6F9YvV@s>a^n)3R1^M6xbvO)Ol6M*nS;3U(r>}5w1C$R@| z6Ebio{(WiFvhkeNoYUOj56{hme@?u7vkx`9jn(_cwSE?ZmUo7H{u-}eOd{ykwEV}a@> z{P||5Kj9cVPxw8~{Bv0D#{PW;E+FKrodNXqt{5|jh_dY#$=wGLg>bh209^n)OBQDN z7w8gd`ug(n3?a5en3RLsTB6y1KUcWF&!Ui}W>@i-m$O6vNLR<}ghv293ri;d_>jDj zO%IFz4#8a zVuSFt{3Xvt>0EBF=v35adFUh7TisyPLc6E=(;(*}a4q3wKbi&C@LU$#QkS2A5!U^} zh6YrU;rIXk7n@;^pSsB>F}!z$Y9-u+|1gqR;77D`z8UE90a{5!etmi3xuMkC?;A3X zMw8sI|MG^WR(A-(1M!{2C5T)u_mINA=rx@_YRe`*HMLqn?EXeycN6p)d&Oa|J~mv+ zmB!Y&v?c!~y$b)Kt}LFM^0eSwRP6-euWUt)SJcm&;O`eVxS3HggM08_;_TFPVNCU4 z-EU$%?qPTU{t8F*^;xOO`AxDeYxk}Ge$Qh3&6t0Whxuc+=a~7jXDN;M=vK6tNZM-m zfnIZ2&fa;rXGb`;Sm(h-oaMi;8V0~O$vh@&tLKLG7Cf)j%Y3~=Xm6&%E8c#T(cS+4 z1HPJdD2genWA+vM8BzN|@Wz<(Qxo>y3)F+N=O1NXZrl9_4})Ls%N-5x{=Ir*RH2Iv z-@GV6r3Kuas&5;h2mPRW1Adad+yDM${eS)&^JV2sOjc^12=G0U3R}*!xO{%yza+;E zS`Xy_q9c$n#q~n{>2Y#wIsv4pRVX1)u^iv727JqFXMhW5Jds}MO28T{aaeOm`o_;d zIkOaWjiI^8m*7YEkndXHYSp&{LZQF=ukg(j(L zv0MEJBO*>eNH+i2TT!NcLuIW2;k+9KAhHMU=f#VLv2I$Qad&X2Lt^n^umQ$NDVo(g zxzx)};Ci^H2zEa#P{w1~Ak}in)1sWAq~mrfS#+*nu_|;=J&|o~PnW+R7DIUGe!WZ| z%z=LP-U2(&x0<+NgNf*S2_py{$HHn3LQ4_Waro^+?1-=Rd-&*GwC zi~;a}awqP=v2eatNEs#IhbScFm?2xyqBZx{q3u@fM(WuT`_rvSmgfQ@v# zQcHeAb&nS0uPTUPHtvW$v}DY{$vUV62#dvO@IG7s-nA6&u!Q!%sK0AhR~VVP`>KHq z8O9Betb{9fT$x~_e8U{%T>xc)R`JS2F_Tt1K37?~GBJow>w!j7aq3J1wjyj3ienkb;3pUtfdupucC%ImNZ;D|wDGD9 zvT+kS)lpkc1(F>LWt4Jt34bo)9#Gw90&}lpE6+pZK^d4DkY-_izf;mXX?Q9NZC!uSqdjG+|lHp{TRjk&SiB$zT*3A$IH2YKDvY<{ne{r$r zIGz9dE#R6!Ci*!V{J<~MkN}*r1r0jQW9q^nHI_FW{gHBao$o{9bJI0uWRX#+<~cdd zSZr)Bq60XO{gfPjtXm3lxbBKX=O{Qv>95{VRJi%*@F;Qgl96bH!d4AGiW(G+4>z8_ z6?JR)73)4z?l0VFOCosHt{~)d%S(w{wXI^T)V;YmKIeSrDcw&ukhRkSmh(4Jy?xF) zm!yAkS@@Cd7pt(*6!>RQ`*koIAGf`jcfsxwwOZpqKpf#MS4JOPZTt$b6g+i&ispw*;ov!$V%D9#&T$u zh^Lv4{-$@bdL;;L=A5?23j<`2K$jiQLFUW4wlJ&Kpj%xjlHJc55@PE?E8jD8KO&$+ z<$Zj+dwU#|NwiywLnlb1qCm!d?u1Z%UgQ-44XS#ffZzP}oJJ(ya5)~|_*{T@+1$Bi zjEc&z@7SrZCUq(S%wdnMuo!L1oT386l&ce^^Qgz+QZIQ$Ss6e(GQa9IV=aoga2`mfjhavQIw+If{8Io>)b^{zV)vLv zRcj`Q(VK*P!xSNha=7<$VTClhtd)j*0zuE}SPHm&+NIUvH@q%xbKD9#sfs&I4e3SJ zihqi^Eq)et*bHg)*y($06M5h=YILIcWnEbkkyD%}oJliB>Lf;g!s9 zmP7C&lMlt^w3V6I%3l}}5=P1g7pkwbK5)|0pRerHIPL{G(s3i4oLdFgO&R)#o1$Da zCqwf&U@rwxb@tmqtyiE*FYRuo_bXO_Cc~Y`4-l)-pd*{d>&4p^&JQbWlNpu<>y%Tq zY95%r{3<~iiL@ZaRow=*25f@q8TRYe%|K$`yp)qC#6la)ft7 zQeA3aU%H_WvjC^2V#jV|MZ_h?(9USG;wvcf{L*J5px*{tOV*^u&fB)awzHMZYm8Dgx1&MVApiP}%YL&2 zuAtC-3P*laW03E=nS%1mSG~XygMBB25-D( z`(G1V~f7TNWI}$J`$K-b~LgV_QY7(rsw&y#VRw!F`K=;VBsf zjdXO^6=!ll#fY-1^?UZ^Cwv)hda9N>!GKm+7o>Cpt(2L%A~o?CuU&jMaySmX;({G^h0 z$M;f58RpKQt`exC;;_;vS|^;STD%OrI#i`#PK zRqq=!7+<3qwjOr~$CEFxhdq~lj}`8sg^wwkjsUY-bl31iseVH%2)@y|JIm+TOQm1O zgx^Y~*{-q8QyEWR=e?o$tl{fl)tA&b*e1!))eI+=_R6VEE{6qSpK9tP6zeCcJ z3j_+z_~3ihc-Fiqr*KE7wLZ3Q-yY9555?yOAIiWL&fE_eBR!`wsucfH@LB(1I;Y8G@*#(kK zwLtBsI-H}ZTun5}Rol_!P779elh*Sl4EIODL482QeP<4dmD_P6XoT#iAklM=ys546 z?xwB6YR#K|3Ar5P)wNhkgp?&^TOb>c{!%pi1cXg#S#M`BlVzKX z`}II2uk7E~Hfug!^k0huB{z}oEWg!GVsyRcgYow9)g&XohR|TnhkhANn8rUuS!1Gr zs=+m?290{To9}c?R*kXsgCqFB1xiwl(H@u&?3vp@ec8JzaY(FD2~;#jQ~Wo^H1(d! z{wejBjAK&40f5*27E{{Uy|LC0a)1Nty~84C9AX0^uD=`@nipf@mWhS9lL2DviGW~# zYR|^UFu=btf!2lpsS&!F|-PvS-^@`E9Gc26(eJjD)3%wFJ(X|`@7Sfw$h2!O82Y8`y0&*V z&SSC9Ugg|6`t_VO3J{1k($Xyge~B=|@Zrj%*8%^mJ9&mCKWtb_Vdm~K`|hW*%-S3! zrQ-WGyt0C2=dY?Aue2a}GwgBwIx$6Zd}zX|2cRy%+v2yU=)s?c;nYP(wMtOj9$XS) zf#9)#XbAWnX$c;=7}5s=|E?e#uazN|0%#@u6yvk?anmQ}s+QmW2%lVk%oK5ZA|iS% zyWIQHARAqA{m+}HYCGaXBO_DRr{hE8UH66>PH1llkg|fxGRJha8z*RtjY{{H>bR`o zjyyR{VAm;85(V@%FdqrMOU19%`lX7hg@Qf#Jf*iF3Ec^eIwohn0{#A*sVfbUVAz9P zzZJ^FH4PkB{q;7krkElXWV=Pma+!!s%q22};`zIC@rkIs8>Yx#QT0~a?Qe{1W1r<9 zKLFCpiKSn*I|dXoUS|=c$!^5LYzQgoD*gmT_Boq*JhqhVT%B9^sl5?~x+;1}za+J4 zL7GIBOxp2OxfXT^Eh~C(Cc3Z(C_I75$r9Zfblttp{E;Cj zSxr!`eM+)6u_6-2dU7ZppFz+!2n-n7?NnR}?9GspU~gq)i!B&Cu0P#mqjGIAZ(jot z#sJf1jnlaj%xaQFsA6-lG7^N9W5@Xaf>laHJU>B8_RtS?a|C5!j0Mc29yPCdHd{w- zEBdrWw_+HQWm4#w_OitNfHUc>W;*f?-5fjr|Dvmu^fsL#4>D#h#1xcn+D3lrQ_>Ii z*m8N$oQ=*NGTr*aE;X(k!c#dBMAC$*1N*#8-c*Lx5Nk81f|{8*9^JgO*!CH@ft8k3 zgR|YsL>|!T9Xt&fb50AvVEh)Y5I{#$9r(_6bM7?hT1{6r@44+9V`ZP)V4YcBDOI_1 zhyzH47Q|@wBl_LwR{yXSY`ce@Xo8O!!R3&_&P1<6K4$f}**|2+Sg|L(c=F3AMh3e8 zr~DNvjpjENU)NvMZo4sg46u2D!K{;(-gwPHuT&`}jolLa76Q`s?R`6onq{$LkE-~_vw^B69=w|tAbIeT;3rZH3aqD_PYS!o$8=e%f9bFZ;bPgwu? z507c7>JUpy3TZXnU=nO$E45O|v>l`azN7DZpQm_-V&*#wAmN(=C3FwxyJo zc!To58l6S0IgCq2;(V<ns&CyYU?)Z(OYcI~jq!TIv{DEeI>=>rZN| z)irPZ?8wAE6_e29ByJE&4jEH&nq0o%t|*$QwM>F7)h6maHEQ7}d3;ug9l-~%Nzhvb zw)xo3T8hk9pU*9$=aYl}gNqpw-DXCXcqEAed~M@k9vi7S*;crcNaMk-FD*Z?Vj5+f z!vT}*fo-F<;RU5vXND(MKc6C%p(#Rk@8S+abyod~zVbeUf=AA8gh1a;-ANqb5%pFu z);FV+$)o3@Sf1^UH=szzo1?1~cQ^T7T|aC0*hDzI6{v5;3LEqpAiVFx_#$(#`9jPH7mNQKOU3c&KNN&miHb3 zHn5{J&~ooCwdq$%6}$b;@}_H|V#e%e*04+%bga#0lO(&Rcv`ot7`k`cbnflclmgQBU!sgvVTd2j_65rtH8J&6C$7DJIh@CP-LR8FWTP z64Vm=oFSIJzPZEHkk3DF-!?#eV7frXoo3ppZX#>k({MuPZ^{izag0zSaQFiUVGg)k z{U*Hg%OauYjeFyOBkH)^eI#IW8ZCls+h}~J*wf#kt6z3kQ=ZOP!f?Zn3T44;7sg_P zCau&W){ZQ6qzCdb>xmAAvsN&AQ-kty_+z}C_zIERMM8(juN~8rzP7I!k@I$SJ%ntwCh%a7%C6w6^1NK1(XO6#fKpx#w;gK zQf*m*_G0o8cLZ~>MeXT|kaOe~c?h0yAcHF&0h}%tvjKI#%yb)({F0cBW?dNg$Puw0 ztv|EX8pFZ#dV~)i!PuHO*1tN^fwkDFL&HQU{VReHFcz|HZ~ETr_e}CmdG|i+d03+i zt*>>%M0e#u9yidax|sLWOQ#o@)lFnXv-g^Q75bEXjt%P2rj)^UV#~vH0j6J9n`EPP zPn^f8S>Gma{j>Y1Fcv(^H@^R1N4&@DEcVz99h}>`Nk_9k(idBP9fbR1bFrX{p=(x+ zjFUZZJ4s5&#`MX1+(Pjk^OJ>flPtDcr3jz1cF=IV2#C^UjW{IHQ=7V{(lpj!!@ZsFAlpsP2{NLAqE( zs;K_Kk-+k9TxJv}x+kQv8F;jXx%eEN(s_#D1S#LWnd_Ha_t+Iy!+Amk!g%0!MVu@| z&cut8HkVDz_etRwp&&h}0-T6Fg3mjj(BRJHd@0xS)BD9({9{3CH>d9F!GQSJh4(j` zI#BwBFU(;a4v)f%ckx;jO?NZi1sIOY8r4_X-goYM;k{P;nkO7jgX^*z+oPq3>b zUMjI`Y4L=w-R@KtHUcs$J>C@qT62@pU4)*8>kIR~SigTH~Jv^G5iLQ}cpA zl;4q;{uL%rX_S2+ITKws)L3~hpH*qPT@lnkm?6S1t}<45oD7OU>u~F_n3=h|GPb_< zbG8r5p|=Zmlj#AwE@1tpE99??nbCP+4>w%P1dFj2Q4cL^N0AYa1t5DzgZ^2<`#?^&WcZLJHyLJ8lcgV4 zr)iUoz`E@38VBl$cgt29@YAh;qtSZR+O#{h%r@@=UCh}Ym{?4_wa;LNYCN~fCG~2W zTX1}@Rpz)3CzEq+wV8kYWdT5EnDbiWzhCku2YVAY5_kTjC+cPiB zx0}hdn8GRaduJb42$qAs{U6iC&T$`yU{)(l;|s{#z-C7a#Djkq4209nb4+ zWN1VuQPx_fX(d+M6c;!Mw5`Qdx zrxqJ6VIvJjnu!P5@;l{m#&5{V?pU37f_cPRsqG<&vwGe;n}|{{#v%795H6jnvLCWh zX^XD?sz4?p!1a%IxY7-S21Wo2;`Qzy|%~lu0Nn4NVAYeV#QS4oMJ0xjQ*a$&jkXHoF zjgCf)|8W?_sc0lO1n2@=6qABeadVes+PEH;Q`zjfb$(rG?^ME_BUWcS8ldthF+*xG z!oEJ98=oGq2WtF^rAcC##W*WcXnR8eT8Sn8-S7Zb0*G+A6igL5G!F$tn$nSks(X(f zA8kAvVw;~1#K*&kmZua_7j#-@O%ZY&eH1Col%(q|)rIcFXp0s==cT6OzcSjs3wLu& zG;{~xlNmNwL3jGFhQ3?s-)gW?Oxu|Xhz3DGXH%W@p#Zm_dIQ&HiFrsHKsz1GJEw5} z`BAODU1vabJl-=N?ZvTuCCopHAr3JF4g3@Jn|_&nq@Pubzhd+dScnZ$sPsDMxbNjZ zvl^03;hKl^92wd2r2UqdDRplUts$aNl_-##4yWh<=iwR7O>U9^t|pZ*-26t-JN?c1Ar>Ku%UkyYh~Nyu zMOIGFOyO_Z!uRZoCxBb-NP)VlzG%<}G9dv%akD$ITao(KKuidg=5fbXk@ZB0M~!^P zv*_V=EGo#UWk5h%uErUUz~5Ucm3*-N3%7 z{$x|rz@Ju*Htz-<9Xs948|oePg$9JdP_xl7QBmYsvaVl(E7Mn>s?I0Qm%DB+`ULFa zSdI?*>Q+*dQmxvyYDkPyKX1w;91UtUaJwLYKk+d4*W(=_2v=#x)bWIovx}5OU&b^I zACaj$!npsm<&DV^{>!wTFz)c}Flteid4jeiCi`b@ryc|t8s0^NI1dO{l1}{IP{4F- z-?LdJ zpDArsmtrS9N>In`ia|{Adbxs;wsv_Vpgr2umMDekaXY$!uOq^@? z@44$k3cF{^K4f-$;c4p`x&6YU!;aXQPqRj#5;VC-7UR-><?W)lMyPf@QERZj^0;(1+AZV8=odsdT%p5eb}d|cf)^1FadDFRYTv?1VF*ULJSPO zf;{Unfe$E)I9vwPdHW?umOu36Itt5X&3_*L!|dsRGwn{TzyNzoITz}S1&xXkK^uKT zw36!UqGOhn(sac7H439tc3rbT?8taSIaM((KVrsn$9y^PV$D}f4mHuoTSfNb{4ul) ztFEhfRY$rK$ckIywJO6 zbXU=64PvSfFRgT-$Gd2ILBZa&T6<&buDh8eX)pP6w>)Q7hJhP8)s?XYmO1**h?8YZ zT>AVA%kNV_S1e*8qb)5-KnC4*k!^0S*1npb8jzX0qz3&%Rrm|zh1@;Jc@lcChAy5doq7BL(iPoj1Nnz@u$ad3oO=Q4m8zV(^*Hn7#KH+bm?EMjr!-`H-6$a zuY1eYA?X(0x;JLclZ$3GbrG(YV_brUGqu(3$|dQZ)|dmI>L6YYq3+miDhLeN|+adV3H2 zQgf)+*nwhf>juWaLp%yFb?u!Gm=HJ1{0EFIvnJLBQ=j;Qiom1?N=Y~vWD)il3jUS8 z4*`=hGX7t_T+kH$yF7&%45Og=#pwhqdZ#T5K9crBeDzfJpEh5dZ1#fa$siX*Cm6H? zQ-1%^c)et7MS%#yIi?l4UP8{o1}ght21ZyJfw{<7b>30cd*4vO@lIu8mDjqC>CrV; zd7Qa1)m>7EIIu)7xsCiW?feD}|8i<`?QJ*RjFOL>(H~@NECUyl`(t{d-^eJ6a%E=? zzX3xp@I>=VHLS|F%`Qg;^R_hNge>3#a(uoMlFL4&LnXbP#^_@^ ztZEJ`FH_zvIYnx4R;B;<0>@B!4%HHVp;lII#ssM4C9Wln1&1mvCrR>LdmL!WhZq$( z-&>SRN|CByM&jg`{~j6ojT#%}V;1>HIvPm*HOh0QXm7_H*%7B&AGr}{887!N&WuY= zLODaA$!t7O<)O~gHCaV4?D7Bn{eM435kBBTJ*2zPpySSkoW2NmvzrF~U&}FEODM_f z#`Kdwvo3QmrG{b%wL$t!>qvd0tjc#j2cgkW9_DWVe_OBH?CP+9;@ck`Exf$ZzBI{Z zTa1dVa?4->6KRvP{+>Qvpa`QHM zQ+-al7d0gDE@cH{$ah~VdOU~aQ_*$mKee#|9iH`f!1V_}DWBcNdY zG+TK_W2cn(^O^ERdcCwZZlk{FpW8|!u3S{8{8d%qcRzgd zfn9dZg8qYb-uf{jFbsA}0xV_aMK>7yW_^o$v-R3a~O!pByJeus|6LI3mR`TfiH;hI)%8oaj_?QY{;0*f6Qb%8ve>9(l^&tmPmW5{=q|rrlu6J5{hASP;Ukwi($?+{J zZ5d|gLjTwD%~Qr)EM{VCHymY)tTJythpzsiO_fQXsi=jlb3_L#X}+@(dIz2YqGg=s z?qh;m&Uf;hN><04v|XFii}vz`pj!1TsuTq>&Aw9EEQO{2Jum1F-XfqtIwlwCE}K^p zp!_ywj~w=oV(`(=JMn<*?t=f`N>u#N5jlA>@bvrgR(HK5SCk0-z@z`ac;IDtXXn;3 z8#+Ia^vL<3(E9N8Q~~=$IbCZ2BE@jBOtF1cZDR!!!^GSt^xiLBI^HU+ALCgaIaN#s zW^fNORM*(U!Twe7{8cyZzD0}i1tJZ{<9=?4Z)>0kV^6aAAayuld87Gv{W~73dEJS! z#c0Z@R63Sh3`)_;9ENA*w&|5KB(&uCmo+d`9a-^WvfQ-6{&k4GW_9mUfd$P(lEty% zv=|0PlN229J`0mv4@tmWT}5}1Cp2o8P~Y&R4NOm9kC+USLY&49S**ei9p%7ga?5T@ z;w1C@jl&i~kQ(F5Cpu_ZsgHy+kFi$Btw(8Z_}Ot`DSWC-c?(|o&kEZ%H=+pj-t5M2 zpm@0%kq`omFRqes6DAingSHMVMuS&9qMXiaF)(fm$&>u{@9Fx>zp<8CgB`%*ARoL= z-$hb)DR05(s%1V~`Uz9!AIPt|)nazk_IkF{^t+m#B*dr`@(G2!eLus@W?WNf1XZ(_&5>QV z&=(J-UO@QB{O=j{&!xM6o}BoN zOohaDiK@~?;cRiQL^}VP8lwpklz^X3TV2!A|B>o0qNC63&%In^67%RNb8=mbd*Dht zb1Z;?r|g68|C2GcV|CoALz-TUFG@WBl1kpxGV~2iJu*3}U|e^L@OcUyG=%EttBxyb z;>}s}&c~VgvuHYXXe#U?~GmQ6Zl>y7F}2sgKmRKX~K9Y1iJ~@p`;!O+e#Z zLdH&aLEJPnPoo$-#~wX)cWt2CA-o%Plnaq5UqXgj!TFt^$v8qMmdJ%h+>8zbY$B86 z=lMi=8Km376HKC)RXh4DY7C3a5rQ5Da1$B92&ho(i^SU$tRe!#uD<$hBkHiLpFX8L zx>HY_Gj@scY}zXXI1;eiTm(!4%D+0N+0Jtuw#@x)TQsR zRbn&T)ExZ9tm^b0e@!hcKZ2n2DK47{s8a`{O6lyWGFDP^kVY9ul z9yo5=@x`V@)*%WFM)#i^UF=KV-=9^ahHULL2#q-AsW{!H;LYki-p<+_qp$K86MHOH zy@Pqejej>v-=Ao)BVE7X6VE`I>FnzOv84*COG{y7D;U$%8$&8mfxGQFP_{urxKWS! z{W%`R%O4Hc>+4BTxI0_KcF(q7tyr(NjE76p-0kG+#JNqe=O6AGd>EErbJ1p{MYOhc zFtxplPgwKg7!^t*Xi{nFd3EA>2s;ZK*W|2UXr7_bolM&}`k~`W3s%S$S8%+|Bs5+3 zF?i<2VA}QJpS0fm`~C2oAr0Qa59e;)(SCV|cJi%?%Q*?@gyV+GC1u2a7G z&72N?7;_}(DKSn^d|Y1fLRVsi-z4dy!!AchPD$mYYx!fhKJnqPshfi`G#A}vVrQ=i zt&$wV+Ed#2mK1d9^(MB8B4T2V!=`z|_4h88V0)=-bcA9fy{gDn_mLr;|g3iC(#i4tHN9$0Tk{@6>DKS}asp2JIh{&bVkff>AunEB-W_ zjF-qq13!OE4S1~My=Z>{uarjp;c*XtEv@D?#p1F}gtHkNAkc2%t}rOTV|BR2b&0Aq zwPaH}cRgM;49ZrBJuK@*nS_}R>sh+@C?nnH6CPDDyJef+X)Ut3g2tZ2f(Zccl4BB`+ijx;QM1>Xi!e~0m zj~t%2i}rIPB{lRAmyDYUr@x8F+-Zh|Q>@1{4~_fdS1iUcW=)Z`9!W@;+seyiIaywd z^oJ08p4H&~szUh1{7Sg2f=hix;q}H&ykp9jb)o(rKPqKigeQg%*U0HokE8Y~8iHFZ z{=^jaZdAnI)3?C=GDZuX!g5C$G%fOLx~h^~>E`uNx;Kt(M^EssINve49>;yXSj|yl zaAoT}U!3(ONg<#|;egN!3)NtZqCQi1N&u!Bz%B(<8`rRRg;JZ-XH`h!!(x^G7&7--J{N@L!K)sm&XvFEaNzeb$&MLUe+$NVNk?*%_CDG2!;v%A1O8lN?XO-qbGi9=hZnqi?#ugBUUACFwO7~W)=*_0JhdOp9~oYQ6|1P5Ru%MfMeBM?ckR;A z_ZqufRj92A&`i0)wI&8;A-3>G>O{paS>xL=X#>Cttwpm(E^yLPN9a&z3Xbo*Cr5n8@hN05(NiJf7%-*kts6bq zkg`fD7nE#i$8w*#6t;+5R#LjH`pe5EJZ;+HT^E;)wLqi?6%F11!a+~eL+3T^mEMB< zOsfV%ss|WF!Jfw~n(-$1b?ds*j=#ZiG=`P07)&9KTO;nlE3XD0)NLo{Q(;u|{K3)9 zP&cY?vwyf>tr?t9fr$aZ*8K6rY0J-5#be4dbN;Oq+~g~e9y(%UjGLdY#&yyu;Xy6Sl3~g1wfr z|Jex^Y!fGIYxZXDji`pfhQz0=g*&}YDv5~V2mBcPp+zs@c+5vX&r@gwScJ80DoXm4 z<9FCOid)8TF|^5ay^HP-bUr#^TM91uOtC!8+LLECtlH=AHDAj!aW$bJBVso*Ha?1u zx9Wpgaj&lN?CpKPP4EK6Nz9R4OO8b(P_=`5(jCN*Hi=4n zuQ^C7!xRbJ_Nhv2dW|M34!$@W);VbX)&Qf;YOf|WL9)DUK_O=J^qkFHGvY$9rFpr&!t~V$V!X(KbFT|K0Q3{oo;R1TlMo_ zs{-pv?lWIne|~n6p5~YR`+=(`P8{YhoxJ8sOulp?bA}Yi*nlgqHZLoPx_!~+@42#d zZ>_kix2oiT+Ab$H7=C)PzIw)O-mBBxyi{JIk%l}mwNqC*sNih zpc#iWbi6QgiF>Q;O>$C}J(*D)`P^!nu)9$1U$1;~S=$;Gne&--o8dv5`~#Z6ZV$h-TvfpR`oH!+--o}u@bPW$`zQCW@0&P#`u-`> z)ALT9)sANk^$cs4xid@oy43zHUlliG_nL#!*yW7Z+-;{GX+_HH3pux&>uy!JaniTrw~pN{_|y%HLV5MLg%VSozGMM?^pJQr2}ni_iB%m(SSs=2!lTYnf}W ztEKFCwf)-1gjSw@U{@VDx};70;WjLtRgwntuKZ`-dvS`@m4gS)0v*WU>FVdQ&MBb@ E0MG*@3jhEB literal 0 HcmV?d00001 diff --git a/presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenshotTest.GIVEN loaded screen WHEN apply text on filter THEN users get filtered.png b/presentation/users/screenshots/com.random.users.users.screenshot.UsersScreenshotTest.GIVEN loaded screen WHEN apply text on filter THEN users get filtered.png new file mode 100644 index 0000000000000000000000000000000000000000..8e973bd2025f0abe70ce6c962f9fb50003d37677 GIT binary patch literal 24649 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 w_Wu|A?}z>OV!Z literal 0 HcmV?d00001 diff --git a/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt b/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt index 4bc86f5..194d3f4 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/screen/UsersScreen.kt @@ -27,10 +27,6 @@ import com.random.users.users.contract.UserUiState import com.random.users.users.contract.UsersErrorUiEventsState import com.random.users.users.contract.UsersEvent import com.random.users.users.contract.UsersScreenUiState -import com.random.users.users.model.UserLocationUiModel -import com.random.users.users.model.UserNameUiModel -import com.random.users.users.model.UserPictureUiModel -import com.random.users.users.model.UserStreetUiModel import com.random.users.users.model.UserUiModel import com.random.users.users.navigation.UsersRoute import com.random.users.users.viewmodel.UsersViewModel @@ -126,63 +122,11 @@ private fun UsersScreenPreview() { users = listOf( UserUiState( - user = - UserUiModel( - uuid = "550e8400-e29b-41d4-a716-446655440000", - name = - UserNameUiModel( - first = "María", - last = "García", - ), - location = - UserLocationUiModel( - street = - UserStreetUiModel( - number = 123, - name = "Calle Mayor", - ), - city = "Madrid", - state = "Madrid", - ), - email = "maria.garcia@example.com", - phone = "+34 612 345 678", - gender = "female", - picture = - UserPictureUiModel( - medium = "https://randomuser.me/api/portraits/women/42.jpg", - thumbnail = "https://randomuser.me/api/portraits/thumb/women/42.jpg", - ), - ), + user = UserUiModel.toPreviewData(), userState = UserUiState.ContentState.Idle, ), UserUiState( - user = - UserUiModel( - uuid = "550e8400-e29b-41d4-a716-446655440001", - name = - UserNameUiModel( - first = "Alejandro", - last = "Rodríguez", - ), - location = - UserLocationUiModel( - street = - UserStreetUiModel( - number = 47, - name = "Avenida Diagonal", - ), - city = "Barcelona", - state = "Cataluña", - ), - email = "alejandro.rodriguez@example.com", - phone = "+34 633 456 789", - gender = "male", - picture = - UserPictureUiModel( - medium = "https://randomuser.me/api/portraits/men/29.jpg", - thumbnail = "https://randomuser.me/api/portraits/thumb/men/29.jpg", - ), - ), + user = UserUiModel.toPreviewData().copy(uuid = "2"), userState = UserUiState.ContentState.Deleting, ), ), diff --git a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenshotTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenshotTest.kt index 1b15709..35ef5f4 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenshotTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UserDetailScreenshotTest.kt @@ -8,20 +8,15 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import com.github.takahirom.roborazzi.RobolectricDeviceQualifiers import com.github.takahirom.roborazzi.RoborazziRule import com.github.takahirom.roborazzi.captureRoboImage +import com.random.users.test.rules.MainDispatcherRule import com.random.users.test.rules.createRoborazziRule import com.random.users.test.rules.createScreenshotTestComposeRule import com.random.users.users.mapper.toUiModel import com.random.users.users.mother.UserMother import com.random.users.users.screen.UserDetailScreen -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.advanceUntilIdle -import kotlinx.coroutines.test.resetMain import kotlinx.coroutines.test.runTest -import kotlinx.coroutines.test.setMain -import org.junit.After -import org.junit.Before import org.junit.Rule import org.junit.runner.RunWith import org.robolectric.annotation.Config @@ -31,8 +26,14 @@ import kotlin.test.Test @ExperimentalCoroutinesApi @RunWith(AndroidJUnit4::class) @GraphicsMode(GraphicsMode.Mode.NATIVE) -@Config(qualifiers = RobolectricDeviceQualifiers.Pixel4a) +@Config( + qualifiers = RobolectricDeviceQualifiers.Pixel7, + sdk = [34], +) internal class UserDetailScreenshotTest { + @get:Rule + val instantRule = InstantTaskExecutorRule() + @get:Rule val composeTestRule = createScreenshotTestComposeRule() @@ -41,17 +42,7 @@ internal class UserDetailScreenshotTest { createRoborazziRule(composeTestRule = composeTestRule, captureType = RoborazziRule.CaptureType.None) @get:Rule - val instantRule = InstantTaskExecutorRule() - - @Before - fun setup() { - Dispatchers.setMain(StandardTestDispatcher()) - } - - @After - fun tearDown() { - Dispatchers.resetMain() - } + val mainDispatcherRule = MainDispatcherRule() @Test fun `GIVEN user model WHEN load screen THEN correct user info shown`() = diff --git a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt index 6774eb8..3047f3b 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/screenshot/UsersScreenshotTest.kt @@ -7,77 +7,79 @@ import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onRoot import androidx.compose.ui.test.performTextInput import androidx.compose.ui.test.performTouchInput -import androidx.compose.ui.test.swipeUp +import androidx.test.ext.junit.runners.AndroidJUnit4 +import arrow.core.left +import arrow.core.right import com.github.takahirom.roborazzi.RobolectricDeviceQualifiers import com.github.takahirom.roborazzi.RoborazziRule import com.github.takahirom.roborazzi.captureRoboImage -import com.random.users.test.model.getUserListResponsePage1Json +import com.random.users.domain.models.UsersErrors +import com.random.users.domain.usecase.DeleteUserUseCase +import com.random.users.domain.usecase.GetUserListUseCase +import com.random.users.test.rules.MainDispatcherRule import com.random.users.test.rules.createRoborazziRule import com.random.users.test.rules.createScreenshotTestComposeRule +import com.random.users.users.mother.UserMother import com.random.users.users.screen.UsersScreen -import dagger.hilt.android.testing.HiltAndroidRule -import dagger.hilt.android.testing.HiltTestApplication -import kotlinx.coroutines.Dispatchers +import com.random.users.users.viewmodel.UsersViewModel +import io.mockk.coEvery +import io.mockk.mockk import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.advanceUntilIdle -import kotlinx.coroutines.test.resetMain import kotlinx.coroutines.test.runTest -import kotlinx.coroutines.test.setMain -import okhttp3.mockwebserver.MockResponse -import okhttp3.mockwebserver.MockWebServer -import org.junit.After import org.junit.Before import org.junit.Rule +import org.junit.rules.TestRule import org.junit.runner.RunWith -import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import org.robolectric.annotation.GraphicsMode -import javax.inject.Inject import kotlin.test.Test @ExperimentalCoroutinesApi -@RunWith(RobolectricTestRunner::class) +@RunWith(AndroidJUnit4::class) @GraphicsMode(GraphicsMode.Mode.NATIVE) @Config( - qualifiers = RobolectricDeviceQualifiers.Pixel4a, - application = HiltTestApplication::class, - sdk = [28], + qualifiers = RobolectricDeviceQualifiers.Pixel7, + sdk = [34], ) internal class UsersScreenshotTest { - @get:Rule(order = 0) - var hiltRule = HiltAndroidRule(this) - @get:Rule(order = 1) - val composeTestRule = createScreenshotTestComposeRule() + var instantRule: TestRule = InstantTaskExecutorRule() @get:Rule(order = 2) - val roborazziRule = - createRoborazziRule(composeTestRule = composeTestRule, captureType = RoborazziRule.CaptureType.None) + var mainRule: TestRule = MainDispatcherRule() @get:Rule(order = 3) - val instantRule = InstantTaskExecutorRule() + val composeTestRule = createScreenshotTestComposeRule() + + @get:Rule(order = 4) + val roborazziRule = + createRoborazziRule(composeTestRule = composeTestRule, captureType = RoborazziRule.CaptureType.None) - @Inject - lateinit var mockWebServer: MockWebServer + private val getUsersListUseCase: GetUserListUseCase = mockk() + private val deleteUserUseCase: DeleteUserUseCase = mockk() + lateinit var viewModel: UsersViewModel @Before fun setup() { - hiltRule.inject() - mockWebServer.start(8080) - Dispatchers.setMain(StandardTestDispatcher()) - } - - @After - fun tearDown() { - mockWebServer.shutdown() - Dispatchers.resetMain() + viewModel = UsersViewModel(getUsersListUseCase, deleteUserUseCase) } @Test fun `GIVEN getUsersListUseCase returns users WHEN load screen THEN idle state with data`() = runTest { - mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + coEvery { getUsersListUseCase(any()) } returns + listOf( + UserMother.createModel(uuid = "1"), + UserMother.createModel(uuid = "2"), + UserMother.createModel(uuid = "3"), + UserMother.createModel(uuid = "4"), + UserMother.createModel(uuid = "5"), + UserMother.createModel(uuid = "6"), + UserMother.createModel(uuid = "7"), + UserMother.createModel(uuid = "8"), + UserMother.createModel(uuid = "9"), + ).right() renderScreen() advanceUntilIdle() @@ -86,13 +88,24 @@ internal class UsersScreenshotTest { } @Test - fun `GIVEN loaded screen WHEN delete first user THEN idle state without deleted user`() = + fun `GIVEN getUsersListUseCase returns users WHEN delete first user THEN idle state without deleted user`() = runTest { - mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + coEvery { getUsersListUseCase(any()) } returns + listOf( + UserMother.createModel(uuid = "1", email = "deletedemail@gmail.com"), + UserMother.createModel(uuid = "2", email = "newfirstuser@gmail.com"), + UserMother.createModel(uuid = "3"), + UserMother.createModel(uuid = "4"), + UserMother.createModel(uuid = "5"), + UserMother.createModel(uuid = "6"), + UserMother.createModel(uuid = "7"), + UserMother.createModel(uuid = "8"), + UserMother.createModel(uuid = "9"), + ).right() + coEvery { deleteUserUseCase(any()) } returns Unit.right() renderScreen() advanceUntilIdle() - composeTestRule .onNodeWithTag("1-delete") .performTouchInput { @@ -104,42 +117,46 @@ internal class UsersScreenshotTest { } @Test - fun `GIVEN loaded screen WHEN scrolling THEN idle state with new data`() = + fun `GIVEN loaded screen WHEN apply text on filter THEN users get filtered`() = runTest { - mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + coEvery { getUsersListUseCase(any()) } returns + listOf( + UserMother.createModel(uuid = "1"), + UserMother.createModel(uuid = "2", email = "adefff@gmail"), + UserMother.createModel(uuid = "3"), + UserMother.createModel(uuid = "4"), + UserMother.createModel(uuid = "5"), + UserMother.createModel(uuid = "6", email = "adefff@gmail"), + UserMother.createModel(uuid = "7"), + UserMother.createModel(uuid = "8"), + UserMother.createModel(uuid = "9"), + ).right() renderScreen() advanceUntilIdle() - composeTestRule - .onNodeWithTag("userList") - .performTouchInput { - swipeUp() - } + .onNodeWithTag("searchField") + .performTextInput("ade") advanceUntilIdle() composeTestRule.onRoot().captureRoboImage() } @Test - fun `GIVEN loaded screen WHEN apply text on filter THEN users get filtered`() = + fun `GIVEN error in loading users WHEN load screen THEN error state`() = runTest { - mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + coEvery { getUsersListUseCase(any()) } returns + UsersErrors.NetworkError.left() renderScreen() advanceUntilIdle() - composeTestRule - .onNodeWithTag("searchField") - .performTextInput("ade") - advanceUntilIdle() - composeTestRule.onRoot().captureRoboImage() } private fun renderScreen() { composeTestRule.setContent { - UsersScreen() + UsersScreen(viewModel) } } } diff --git a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt index 7523260..d65eb70 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt @@ -5,6 +5,7 @@ import app.cash.turbine.test import com.random.users.domain.usecase.DeleteUserUseCase import com.random.users.domain.usecase.GetUserListUseCase import com.random.users.test.model.getUserListResponsePage1Json +import com.random.users.test.rules.MainDispatcherRule import com.random.users.users.contract.UsersEvent import com.random.users.users.contract.UsersScreenUiState import dagger.hilt.android.testing.HiltAndroidRule @@ -14,7 +15,10 @@ import io.mockk.coVerify import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.UnconfinedTestDispatcher +import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.resetMain +import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.setMain import okhttp3.mockwebserver.MockResponse @@ -23,6 +27,7 @@ import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test +import org.junit.rules.TestRule import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @@ -39,6 +44,12 @@ internal class UsersViewModelIntegrationTest { @JvmField val hiltRule = HiltAndroidRule(this) + @get:Rule(order = 1) + var instantRule: TestRule = InstantTaskExecutorRule() + + @get:Rule(order = 2) + var mainRule: TestRule = MainDispatcherRule() + @Inject lateinit var getUsersListUseCase: GetUserListUseCase @@ -54,13 +65,11 @@ internal class UsersViewModelIntegrationTest { fun setup() { hiltRule.inject() viewModel = UsersViewModel(getUsersListUseCase, deleteUserUseCase) - Dispatchers.setMain(StandardTestDispatcher()) } @After fun tearDown() { mockWebServer.shutdown() - Dispatchers.resetMain() } @Test @@ -69,16 +78,14 @@ internal class UsersViewModelIntegrationTest { mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) viewModel.handleEvent(UsersEvent.OnLoadUsers) + advanceUntilIdle() viewModel.uiState.test { - assertTrue(awaitItem().contentState is UsersScreenUiState.ContentState.Loading) - + val initialState = awaitItem() + val loadingState = awaitItem() + assertTrue(initialState.contentState is UsersScreenUiState.ContentState.Loading) + assertTrue(loadingState.contentState is UsersScreenUiState.ContentState.Idle) expectNoEvents() } - - coVerify { - getUsersListUseCase(any()) - } - coVerify(exactly = 0) { deleteUserUseCase(any()) } } } From a97252b9162114a8e421101cdefe389328708c18 Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 17:59:04 +0200 Subject: [PATCH 14/22] Clean dependencies --- core/api/build.gradle.kts | 2 - core/database/build.gradle.kts | 2 - core/preferences/build.gradle.kts | 2 - core/presentation/build.gradle.kts | 3 - core/test/build.gradle.kts | 10 -- data/build.gradle.kts | 1 + presentation/users/build.gradle.kts | 2 - .../random/users/users/mother/UserMother.kt | 2 +- .../UsersViewModelIntegrationTest.kt | 86 ++++++++++++--- .../users/viewmodel/UsersViewModelUnitTest.kt | 102 +----------------- 10 files changed, 78 insertions(+), 134 deletions(-) diff --git a/core/api/build.gradle.kts b/core/api/build.gradle.kts index d2b2eb9..99b1d20 100644 --- a/core/api/build.gradle.kts +++ b/core/api/build.gradle.kts @@ -43,6 +43,4 @@ dependencies { implementation(libs.mockwebserver) ksp(libs.com.google.dagger.hilt.compiler) - - testImplementation(libs.bundles.test.unit) } diff --git a/core/database/build.gradle.kts b/core/database/build.gradle.kts index 716d2df..357174b 100644 --- a/core/database/build.gradle.kts +++ b/core/database/build.gradle.kts @@ -40,6 +40,4 @@ dependencies { ksp(libs.com.google.dagger.hilt.compiler) ksp(libs.room.compiler) - - testImplementation(libs.bundles.test.unit) } diff --git a/core/preferences/build.gradle.kts b/core/preferences/build.gradle.kts index 5c1a46e..f643b90 100644 --- a/core/preferences/build.gradle.kts +++ b/core/preferences/build.gradle.kts @@ -37,6 +37,4 @@ dependencies { implementation(libs.hilt.testing) ksp(libs.com.google.dagger.hilt.compiler) - - testImplementation(libs.bundles.test.unit) } diff --git a/core/presentation/build.gradle.kts b/core/presentation/build.gradle.kts index 4bf6c1c..2847c87 100644 --- a/core/presentation/build.gradle.kts +++ b/core/presentation/build.gradle.kts @@ -45,7 +45,4 @@ dependencies { implementation(libs.androidx.activity.compose) ksp(libs.com.google.dagger.hilt.compiler) - - testImplementation(libs.bundles.test.unit) - testImplementation(libs.bundles.test.compose) } diff --git a/core/test/build.gradle.kts b/core/test/build.gradle.kts index b57f960..c187512 100644 --- a/core/test/build.gradle.kts +++ b/core/test/build.gradle.kts @@ -41,16 +41,6 @@ dependencies { implementation(libs.bundles.layer.data) ksp(libs.com.google.dagger.hilt.compiler) implementation(libs.bundles.test.compose) - implementation(libs.retrofit) - implementation(libs.retrofit.gson) - implementation(libs.okhttp) - implementation(libs.okhttp.logging.interceptor) - implementation(libs.room.ktx) - implementation(libs.room.testing) - - implementation(project(":core:api")) - implementation(project(":core:database")) - implementation(project(":core:preferences")) testImplementation(libs.bundles.test.unit) } diff --git a/data/build.gradle.kts b/data/build.gradle.kts index e51cec5..65b0081 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -35,6 +35,7 @@ android { dependencies { implementation(libs.bundles.layer.data) implementation(libs.arrow.core.retrofit) + implementation(libs.hilt.testing) implementation(libs.test.corutines) diff --git a/presentation/users/build.gradle.kts b/presentation/users/build.gradle.kts index f5830d9..c686ab0 100644 --- a/presentation/users/build.gradle.kts +++ b/presentation/users/build.gradle.kts @@ -60,11 +60,9 @@ dependencies { implementation(project(":core:presentation")) implementation(project(":domain")) - implementation(project(":core:test")) testImplementation(project(":core:test")) testImplementation(project(":data")) - testImplementation(project(":core:api")) testImplementation(libs.bundles.test.unit) testImplementation(libs.bundles.test.compose) } diff --git a/presentation/users/src/test/kotlin/com/random/users/users/mother/UserMother.kt b/presentation/users/src/test/kotlin/com/random/users/users/mother/UserMother.kt index 1febc14..7be98bc 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/mother/UserMother.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/mother/UserMother.kt @@ -6,7 +6,7 @@ import com.random.users.domain.models.UserName import com.random.users.domain.models.UserPicture import com.random.users.domain.models.UserStreet -object UserMother { +internal object UserMother { fun createModel( uuid: String = "mock-uuid", name: UserName = createUserName(), diff --git a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt index d65eb70..333fa6b 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelIntegrationTest.kt @@ -6,21 +6,15 @@ import com.random.users.domain.usecase.DeleteUserUseCase import com.random.users.domain.usecase.GetUserListUseCase import com.random.users.test.model.getUserListResponsePage1Json import com.random.users.test.rules.MainDispatcherRule +import com.random.users.users.contract.UsersErrorUiEventsState import com.random.users.users.contract.UsersEvent import com.random.users.users.contract.UsersScreenUiState import dagger.hilt.android.testing.HiltAndroidRule import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltTestApplication -import io.mockk.coVerify -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.UnconfinedTestDispatcher -import kotlinx.coroutines.test.advanceUntilIdle -import kotlinx.coroutines.test.resetMain import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest -import kotlinx.coroutines.test.setMain import okhttp3.mockwebserver.MockResponse import okhttp3.mockwebserver.MockWebServer import org.junit.After @@ -33,6 +27,7 @@ import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import javax.inject.Inject import kotlin.getValue +import kotlin.test.assertEquals import kotlin.test.assertTrue @OptIn(ExperimentalCoroutinesApi::class) @@ -64,7 +59,6 @@ internal class UsersViewModelIntegrationTest { @Before fun setup() { hiltRule.inject() - viewModel = UsersViewModel(getUsersListUseCase, deleteUserUseCase) } @After @@ -72,19 +66,87 @@ internal class UsersViewModelIntegrationTest { mockWebServer.shutdown() } + private fun initViewModel() { + viewModel = UsersViewModel(getUsersListUseCase, deleteUserUseCase) + } + @Test - fun `GIVEN getUsersListUseCase returns users WHEN load users event THEN receives correct state`() = + fun `GIVEN getUsersListUseCase returns users WHEN load users event THEN receives Idle state`() = runTest { + initViewModel() mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) viewModel.handleEvent(UsersEvent.OnLoadUsers) - advanceUntilIdle() + runCurrent() viewModel.uiState.test { val initialState = awaitItem() - val loadingState = awaitItem() + val finalState = awaitItem() assertTrue(initialState.contentState is UsersScreenUiState.ContentState.Loading) - assertTrue(loadingState.contentState is UsersScreenUiState.ContentState.Idle) + assertTrue(finalState.contentState is UsersScreenUiState.ContentState.Idle) + assertTrue(finalState.users.isNotEmpty()) + expectNoEvents() + } + } + + @Test + fun `GIVEN getUsersListUseCase returns error WHEN load users event THEN receives Error state`() = + runTest { + initViewModel() + mockWebServer.enqueue(MockResponse().setResponseCode(500)) + + viewModel.handleEvent(UsersEvent.OnLoadUsers) + runCurrent() + + viewModel.uiState.test { + val initialState = awaitItem() + val finalState = awaitItem() + assertTrue(initialState.contentState is UsersScreenUiState.ContentState.Loading) + assertTrue(finalState.contentState is UsersScreenUiState.ContentState.Error) + expectNoEvents() + } + + viewModel.uiEventsState.test { + assertEquals(UsersErrorUiEventsState.LoadUsersError, awaitItem()) + expectNoEvents() + } + } + + @Test + fun `GIVEN getUsersListUseCase returns users WHEN filter users event with text THEN receives Filtered state`() = + runTest { + initViewModel() + mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + + viewModel.handleEvent(UsersEvent.OnLoadUsers) + runCurrent() + + viewModel.uiState.test { + skipItems(2) + viewModel.handleEvent(UsersEvent.OnFilterUsers("Jos")) + runCurrent() + + val newState = awaitItem() + assertTrue(newState.users.size == 1) + assertTrue(newState.contentState is UsersScreenUiState.ContentState.Filtered) + assertEquals(newState.filterText, "Jos") + expectNoEvents() + } + } + + @Test + fun `GIVEN getUsersListUseCase returns users WHEN filter users event with no text THEN receives correct state`() = + runTest { + initViewModel() + mockWebServer.enqueue(MockResponse().setResponseCode(200).setBody(getUserListResponsePage1Json)) + + viewModel.handleEvent(UsersEvent.OnFilterUsers("")) + runCurrent() + + viewModel.uiState.test { + val newState = awaitItem() + assertTrue(newState.contentState is UsersScreenUiState.ContentState.Idle) + assertEquals(newState.filterText, "") expectNoEvents() } } diff --git a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt index e6e3ce7..6e9cbec 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt @@ -2,28 +2,22 @@ package com.random.users.users.viewmodel import app.cash.turbine.test import arrow.core.left -import arrow.core.right import com.random.users.domain.models.UsersErrors import com.random.users.domain.usecase.DeleteUserUseCase import com.random.users.domain.usecase.GetUserListUseCase +import com.random.users.test.rules.MainDispatcherRule import com.random.users.users.contract.UsersErrorUiEventsState import com.random.users.users.contract.UsersEvent -import com.random.users.users.contract.UsersScreenUiState -import com.random.users.users.mapper.toUiState -import com.random.users.users.mother.UserMother -import com.random.users.test.rules.MainDispatcherRule import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk -import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest import org.junit.Rule import org.junit.Test import kotlin.getValue import kotlin.test.assertEquals -import kotlin.test.assertTrue -class UsersViewModelUnitTest { +internal class UsersViewModelUnitTest { @get:Rule val mainDispatcherRule = MainDispatcherRule() @@ -33,98 +27,6 @@ class UsersViewModelUnitTest { UsersViewModel(getUsersListUseCase, deleteUserUseCase) } - @OptIn(ExperimentalCoroutinesApi::class) - @Test - fun `GIVEN getUsersListUseCase returns users WHEN load users event THEN receives correct state`() = - runTest { - val expectedUsers = - listOf( - UserMother.createModel(uuid = "1"), - UserMother.createModel(uuid = "2"), - UserMother.createModel(uuid = "3"), - ) - coEvery { getUsersListUseCase(any()) } returns expectedUsers.right() - - viewModel.handleEvent(UsersEvent.OnLoadUsers) - - viewModel.uiState.test { - assertTrue(awaitItem().contentState is UsersScreenUiState.ContentState.Loading) - assertEquals(expectedUsers.toUiState(), awaitItem().users) - expectNoEvents() - } - - coVerify { - getUsersListUseCase(any()) - } - coVerify(exactly = 0) { deleteUserUseCase(any()) } - } - - @Test - fun `GIVEN getUsersListUseCase returns error WHEN load users event THEN receives error state`() = - runTest { - coEvery { getUsersListUseCase(any()) } returns UsersErrors.NetworkError.left() - - viewModel.uiEventsState.test { - viewModel.handleEvent(UsersEvent.OnLoadUsers) - assertEquals(UsersErrorUiEventsState.LoadUsersError, awaitItem()) - expectNoEvents() - } - - coVerify { - getUsersListUseCase(any()) - } - } - - @Test - fun `GIVEN getUsersListUseCase returns users WHEN filter users event with text THEN receives correct state`() = - runTest { - val expectedUsers = - listOf( - UserMother.createModel(uuid = "1"), - UserMother.createModel(uuid = "2"), - UserMother.createModel(uuid = "3"), - ) - coEvery { getUsersListUseCase(any()) } returns expectedUsers.right() - - viewModel.handleEvent(UsersEvent.OnFilterUsers("test")) - - viewModel.uiState.test { - val item = awaitItem() - assertTrue(item.contentState is UsersScreenUiState.ContentState.Filtered) - assertEquals(item.filterText, "test") - } - - coVerify(exactly = 0) { - getUsersListUseCase(any()) - deleteUserUseCase(any()) - } - } - - @Test - fun `GIVEN getUsersListUseCase returns users WHEN filter users event with no text THEN receives correct state`() = - runTest { - val expectedUsers = - listOf( - UserMother.createModel(uuid = "1"), - UserMother.createModel(uuid = "2"), - UserMother.createModel(uuid = "3"), - ) - coEvery { getUsersListUseCase(any()) } returns expectedUsers.right() - - viewModel.handleEvent(UsersEvent.OnFilterUsers("")) - - viewModel.uiState.test { - val item = awaitItem() - assertTrue(item.contentState is UsersScreenUiState.ContentState.Idle) - assertEquals(item.filterText, "") - } - - coVerify(exactly = 0) { - getUsersListUseCase(any()) - deleteUserUseCase(any()) - } - } - @Test fun `GIVEN deleteUser returns error WHEN deleteUserUseCase THEN receives error state`() = runTest { From cf0e0b748ae40189f96571abfea16b799d9b664b Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 21:53:00 +0200 Subject: [PATCH 15/22] Improved tests --- .../repository/UsersRepositoryUnitTest.kt | 21 +++++---- .../usecase/GetUserListUseCaseUnitTest.kt | 47 ++++++++----------- .../users/viewmodel/UsersViewModelUnitTest.kt | 16 ++++++- 3 files changed, 44 insertions(+), 40 deletions(-) diff --git a/data/src/test/kotlin/com/random/users/data/repository/UsersRepositoryUnitTest.kt b/data/src/test/kotlin/com/random/users/data/repository/UsersRepositoryUnitTest.kt index 28f6560..2101987 100644 --- a/data/src/test/kotlin/com/random/users/data/repository/UsersRepositoryUnitTest.kt +++ b/data/src/test/kotlin/com/random/users/data/repository/UsersRepositoryUnitTest.kt @@ -33,14 +33,12 @@ class UsersRepositoryUnitTest { @Test fun `GIVEN users from remote data source WHEN getUsers THEN return users successfully`() = runBlocking { - val page = 1 - val results = 10 val mockSeed = "mock-seed" val newSeed = "new-seed" val users = listOf(UserDtoMother.createModel()) coEvery { seedLocalDataSource.getSeed() } returns mockSeed.right() - coEvery { usersRemoteDataSource.getUsers(page, results, mockSeed) } returns + coEvery { usersRemoteDataSource.getUsers(PAGE, RESULTS, mockSeed) } returns RandomUsersResponseMother .createModel( results = users, @@ -48,28 +46,26 @@ class UsersRepositoryUnitTest { ).right() coEvery { seedLocalDataSource.saveSeed(newSeed) } returns Unit.right() - val result = usersRepository.getUsers(page, results) + val result = usersRepository.getUsers(PAGE, RESULTS) Assert.assertEquals(users.toDomain().right(), result) coVerify { seedLocalDataSource.getSeed() } - coVerify { usersRemoteDataSource.getUsers(page, results, mockSeed) } + coVerify { usersRemoteDataSource.getUsers(PAGE, RESULTS, mockSeed) } coVerify { seedLocalDataSource.saveSeed(newSeed) } } @Test fun `GIVEN error from remote data source WHEN getUsers THEN return error`() = runBlocking { - val page = 1 - val results = 10 val error = UsersErrors.NetworkError coEvery { seedLocalDataSource.getSeed() } returns null.right() - coEvery { usersRemoteDataSource.getUsers(page, results, null) } returns error.left() + coEvery { usersRemoteDataSource.getUsers(PAGE, RESULTS, null) } returns error.left() - val result = usersRepository.getUsers(page, results) + val result = usersRepository.getUsers(PAGE, RESULTS) Assert.assertEquals(error.left(), result) coVerify { seedLocalDataSource.getSeed() } - coVerify { usersRemoteDataSource.getUsers(page, results, null) } + coVerify { usersRemoteDataSource.getUsers(PAGE, RESULTS, null) } coVerify(exactly = 0) { seedLocalDataSource.saveSeed(any()) } } @@ -109,4 +105,9 @@ class UsersRepositoryUnitTest { Assert.assertEquals(Unit.right(), result) coVerify { usersLocalDataSource.deleteUser(uuid) } } + + companion object { + private const val PAGE = 1 + private const val RESULTS = 15 + } } diff --git a/domain/src/test/kotlin/com/random/users/domain/usecase/GetUserListUseCaseUnitTest.kt b/domain/src/test/kotlin/com/random/users/domain/usecase/GetUserListUseCaseUnitTest.kt index 962ed5e..32a1d6a 100644 --- a/domain/src/test/kotlin/com/random/users/domain/usecase/GetUserListUseCaseUnitTest.kt +++ b/domain/src/test/kotlin/com/random/users/domain/usecase/GetUserListUseCaseUnitTest.kt @@ -34,7 +34,7 @@ class GetUserListUseCaseUnitTest { UserMother.createModel(uuid = "3"), ) val deletedUsers = listOf("2") - coEvery { usersRepository.getUsers(1, any()) } returns users.right() + coEvery { usersRepository.getUsers(PAGE, RESULTS) } returns users.right() coEvery { usersRepository.getDeletedUsers() } returns deletedUsers.right() val result = getUserListUseCase(1) @@ -46,7 +46,7 @@ class GetUserListUseCaseUnitTest { ).right(), result, ) - coVerify { usersRepository.getUsers(1, any()) } + coVerify { usersRepository.getUsers(PAGE, RESULTS) } coVerify { usersRepository.getDeletedUsers() } } @@ -59,20 +59,13 @@ class GetUserListUseCaseUnitTest { UserMother.createModel(uuid = "2"), UserMother.createModel(uuid = "3"), ) - coEvery { usersRepository.getUsers(1, any()) } returns users.right() + coEvery { usersRepository.getUsers(PAGE, RESULTS) } returns users.right() coEvery { usersRepository.getDeletedUsers() } returns emptyList().right() val result = getUserListUseCase(1) - Assert.assertEquals( - listOf( - UserMother.createModel(uuid = "1"), - UserMother.createModel(uuid = "2"), - UserMother.createModel(uuid = "3"), - ).right(), - result, - ) - coVerify { usersRepository.getUsers(1, any()) } + Assert.assertEquals(users.right(), result) + coVerify { usersRepository.getUsers(PAGE, RESULTS) } coVerify { usersRepository.getDeletedUsers() } } @@ -86,13 +79,13 @@ class GetUserListUseCaseUnitTest { UserMother.createModel(uuid = "3"), ) val deletedUsers = listOf("1", "2", "3") - coEvery { usersRepository.getUsers(1, any()) } returns users.right() + coEvery { usersRepository.getUsers(PAGE, RESULTS) } returns users.right() coEvery { usersRepository.getDeletedUsers() } returns deletedUsers.right() val result = getUserListUseCase(1) Assert.assertEquals(emptyList().right(), result) - coVerify { usersRepository.getUsers(1, any()) } + coVerify { usersRepository.getUsers(PAGE, RESULTS) } coVerify { usersRepository.getDeletedUsers() } } @@ -100,12 +93,12 @@ class GetUserListUseCaseUnitTest { fun `GIVEN left in getUsers WHEN getUserListUseCase THEN returned left`() = runBlocking { val error = UsersErrors.NetworkError - coEvery { usersRepository.getUsers(1, any()) } returns error.left() + coEvery { usersRepository.getUsers(PAGE, RESULTS) } returns error.left() - val result = getUserListUseCase(1) + val result = getUserListUseCase(PAGE) Assert.assertEquals(error.left(), result) - coVerify { usersRepository.getUsers(any(), any()) } + coVerify { usersRepository.getUsers(PAGE, RESULTS) } coVerify(exactly = 0) { usersRepository.getDeletedUsers() } } @@ -118,20 +111,18 @@ class GetUserListUseCaseUnitTest { UserMother.createModel(uuid = "2"), UserMother.createModel(uuid = "3"), ) - coEvery { usersRepository.getUsers(1, any()) } returns users.right() + coEvery { usersRepository.getUsers(PAGE, RESULTS) } returns users.right() coEvery { usersRepository.getDeletedUsers() } returns UsersErrors.UserError.left() - val result = getUserListUseCase(1) + val result = getUserListUseCase(PAGE) - Assert.assertEquals( - listOf( - UserMother.createModel(uuid = "1"), - UserMother.createModel(uuid = "2"), - UserMother.createModel(uuid = "3"), - ).right(), - result, - ) - coVerify { usersRepository.getUsers(any(), any()) } + Assert.assertEquals(users.right(), result) + coVerify { usersRepository.getUsers(PAGE, RESULTS) } coVerify { usersRepository.getDeletedUsers() } } + + companion object { + private const val PAGE = 1 + private const val RESULTS = 15 + } } diff --git a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt index 6e9cbec..8953630 100644 --- a/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt +++ b/presentation/users/src/test/kotlin/com/random/users/users/viewmodel/UsersViewModelUnitTest.kt @@ -8,15 +8,20 @@ import com.random.users.domain.usecase.GetUserListUseCase import com.random.users.test.rules.MainDispatcherRule import com.random.users.users.contract.UsersErrorUiEventsState import com.random.users.users.contract.UsersEvent +import com.random.users.users.contract.UsersScreenUiState import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Rule import org.junit.Test import kotlin.getValue import kotlin.test.assertEquals +import kotlin.test.assertTrue +@OptIn(ExperimentalCoroutinesApi::class) internal class UsersViewModelUnitTest { @get:Rule val mainDispatcherRule = MainDispatcherRule() @@ -32,14 +37,21 @@ internal class UsersViewModelUnitTest { runTest { coEvery { deleteUserUseCase("1") } returns UsersErrors.UserError.left() + viewModel.handleEvent(UsersEvent.OnDeleteUser("1")) + runCurrent() + + viewModel.uiState.test { + assertTrue(awaitItem().contentState is UsersScreenUiState.ContentState.Idle) + expectNoEvents() + } + viewModel.uiEventsState.test { - viewModel.handleEvent(UsersEvent.OnDeleteUser("1")) assertEquals(UsersErrorUiEventsState.DeleteError, awaitItem()) expectNoEvents() } coVerify { - deleteUserUseCase(any()) + deleteUserUseCase("1") } } } From 4b9b89cc5bf9098138f6acc6450eb9e82dac72df Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 22:03:53 +0200 Subject: [PATCH 16/22] Changed README.md --- README.md | 58 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index baecf05..745d0af 100644 --- a/README.md +++ b/README.md @@ -1,62 +1,65 @@ ## 📱 Overview -An Android application that displays a list of random users fetched from an external API. Features a modern and intuitive UI built with Jetpack Compose, allowing users to filter, delete, and manage profiles. +An Android application that displays a list of random users fetched from an external API. Features a modern and intuitive UI built with Jetpack Compose, allowing users to filter and delete profiles. ## ✨ Features -- **User List**: Browse through random user profiles with detailed information -- **Filtering**: Filter users by various criteria -- **Local Storage**: Access previously loaded users while offline -- **Reactive UI**: Real-time updates when data changes +- **User List**: Browse through random user profiles with detailed information. Infinite scroll implemented +- **USer details**: View detailed information about each user +- **Filtering**: Filter users by name, surname and email +- **Delete**: Remove users from the list ## 🛠️ Tech Stack -| Category | Technologies | -|----------|--------------| -| **Core** | Kotlin, Coroutines, Flow | -| **UI** | Jetpack Compose | -| **Architecture** | Clean Architecture, MVI Pattern | -| **Dependency Injection** | Hilt | -| **Networking** | Retrofit | -| **Local Storage** | Room | -| **Functional Programming** | Arrow | -| **Testing** | Turbine, Mockk, Roborazzi, Robolectric | -| **Planned** | MockWebServer | +| Category | Technologies | +|----------|-------------------------------------------------------| +| **Core** | Kotlin, Coroutines, Flow | +| **UI** | Jetpack Compose | +| **Architecture** | Clean Architecture, MVI Pattern | +| **Dependency Injection** | Hilt | +| **Networking** | Retrofit | +| **Local Storage** | Room, SharedPreferences | +| **Functional Programming** | Arrow | +| **Testing** | Turbine, Mockk, Roborazzi, Robolectric, MockWebServer | ## 🏗️ Architecture The project follows **Clean Architecture** principles with an MVI (Model-View-Intent) pattern: -- **Presentation Layer**: Compose UI components and ViewModels -- **Domain Layer**: Business logic encapsulated in UseCases +- **Presentation Layer**: Compose UI components and ViewModels modularized by feature +- **Domain Layer**: Business logic encapsulated in UseCases and repositories - **Data Layer**: Repository implementations and data sources -- **Core Module**: Shared utilities and reusable components +- **Core Module**: Shared utilities and reusable components like api, database and preferences ``` app/ -├── core/ # Core utilities and extensions -├── data/ # Data layer implementations -├── domain/ # Business logic and use cases -└── presentation/ # UI components and ViewModels +├── core/ # Core modules +├── data/ # Data layer +├── domain/ # Domain layer +└── presentation/ # Feature modules + └── users/ # User list feature ``` ## 🧪 Testing -- **Unit Tests**: Cover ViewModels, data and parts of the core layers +- **Unit Tests**: Cover ViewModels, usecases and data layer - **UI Tests**: Screenshot testing with Roborazzi implemented -- **Integration Tests**: Planned for UseCase to DataSource layers using MockWebServer and Room +- **Integration Tests**: VM integration tests with mockwebserver ## 🚀 Future Improvements -- Add integration tests for UseCase to DataSource layers using MockWebServer +- Manage strings in core-presentation module - Expand test coverage across the application +- Integration tests from compose to data layer +- Compose navigation tests +- Github Actions for CI/CD ## 🔧 Getting Started 1. Clone the repository ```bash - git clone https://github.com/yourusername/random-users.git + git clone https://github.com/xavierpellvidal/random-users.git ``` 2. Open the project in Android Studio 3. Sync the project with Gradle @@ -66,4 +69,3 @@ app/ ## 📝 License This project is licensed under the MIT License - see the LICENSE file for details -``` From 3c8c1c68d7dc8e6cc0e018ba4094f74232ea2ddd Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 22:05:35 +0200 Subject: [PATCH 17/22] Bump project version --- README.md | 6 ++++++ buildSrc/src/main/kotlin/AppVersions.kt | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 745d0af..1de44f0 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ An Android application that displays a list of random users fetched from an external API. Features a modern and intuitive UI built with Jetpack Compose, allowing users to filter and delete profiles. + ## ✨ Features - **User List**: Browse through random user profiles with detailed information. Infinite scroll implemented @@ -10,6 +11,7 @@ An Android application that displays a list of random users fetched from an exte - **Filtering**: Filter users by name, surname and email - **Delete**: Remove users from the list + ## 🛠️ Tech Stack | Category | Technologies | @@ -23,6 +25,7 @@ An Android application that displays a list of random users fetched from an exte | **Functional Programming** | Arrow | | **Testing** | Turbine, Mockk, Roborazzi, Robolectric, MockWebServer | + ## 🏗️ Architecture The project follows **Clean Architecture** principles with an MVI (Model-View-Intent) pattern: @@ -41,12 +44,14 @@ app/ └── users/ # User list feature ``` + ## 🧪 Testing - **Unit Tests**: Cover ViewModels, usecases and data layer - **UI Tests**: Screenshot testing with Roborazzi implemented - **Integration Tests**: VM integration tests with mockwebserver + ## 🚀 Future Improvements - Manage strings in core-presentation module @@ -55,6 +60,7 @@ app/ - Compose navigation tests - Github Actions for CI/CD + ## 🔧 Getting Started 1. Clone the repository diff --git a/buildSrc/src/main/kotlin/AppVersions.kt b/buildSrc/src/main/kotlin/AppVersions.kt index 7c9259e..e961c65 100644 --- a/buildSrc/src/main/kotlin/AppVersions.kt +++ b/buildSrc/src/main/kotlin/AppVersions.kt @@ -4,8 +4,8 @@ object AppVersions { const val APPLICATION_ID = "com.random.user" const val COMPILE_SDK = 35 const val MIN_SDK = 26 - const val APP_VERSION_CODE = 2 - const val APP_VERSION_NAME = "1.1.1" + const val APP_VERSION_CODE = 3 + const val APP_VERSION_NAME = "1.2.0" const val JVM_TARGET = "17" val javaVersion = JavaVersion.VERSION_17 } From 48eae122f9c2601247fb62d95dd440fcba30a6c5 Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 22:11:58 +0200 Subject: [PATCH 18/22] First action version --- .github/workflows/check-tests.yml | 33 +++++++++++++++++++++++++++++++ README.md | 4 +++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/check-tests.yml diff --git a/.github/workflows/check-tests.yml b/.github/workflows/check-tests.yml new file mode 100644 index 0000000..14c1a84 --- /dev/null +++ b/.github/workflows/check-tests.yml @@ -0,0 +1,33 @@ +name: Check Code Coverage + +on: + pull_request: + branches: + - main + - develop + +permissions: + pull-requests: write + contents: read + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Run tests + id: run_tests + run: ./gradlew :app:testDebugUnitTest + continue-on-error: false diff --git a/README.md b/README.md index 1de44f0..5418336 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,9 @@ app/ - Expand test coverage across the application - Integration tests from compose to data layer - Compose navigation tests -- Github Actions for CI/CD +- Kover for coverage reports +- Konsists for code quality +- Ktlint for code style ## 🔧 Getting Started From ad394c71f841f7505b300070de873cd44f829eb1 Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 22:16:36 +0200 Subject: [PATCH 19/22] Added cache to action --- .github/workflows/check-tests.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/check-tests.yml b/.github/workflows/check-tests.yml index 14c1a84..19a4d75 100644 --- a/.github/workflows/check-tests.yml +++ b/.github/workflows/check-tests.yml @@ -1,23 +1,31 @@ -name: Check Code Coverage +name: Check tests on: - pull_request: + workflow_dispatch: + push: branches: - - main - develop - -permissions: - pull-requests: write - contents: read + - main + pull_request: jobs: - build-and-test: + build: + name: 📲 Build Android Project runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 + - name: Setup build cache + uses: actions/cache@v4 + with: + key: $gradle-build-cache + path: | + ~/.gradle/caches + ~/.gradle/wrapper + ~/.gradle/gradle-build-cache + - name: Set up JDK 17 uses: actions/setup-java@v4 with: From 1c42d3cf3933bfc834d5114d23d83afb061e20f4 Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 22:21:08 +0200 Subject: [PATCH 20/22] Test screenshot tests in CI --- .github/workflows/check-tests.yml | 2 +- .../main/kotlin/com/random/users/users/composable/UserCard.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-tests.yml b/.github/workflows/check-tests.yml index 19a4d75..5036abb 100644 --- a/.github/workflows/check-tests.yml +++ b/.github/workflows/check-tests.yml @@ -37,5 +37,5 @@ jobs: - name: Run tests id: run_tests - run: ./gradlew :app:testDebugUnitTest + run: ./gradlew test continue-on-error: false diff --git a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt index 25ef00f..7d53c20 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt @@ -52,7 +52,7 @@ internal fun UserCard( modifier = Modifier .fillMaxWidth() - .padding(16.dp), + .padding(46.dp), verticalAlignment = Alignment.CenterVertically, ) { AsyncImage( From 073e924ee3dbcc6e1d43b26b8c15379418b56a68 Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 22:29:53 +0200 Subject: [PATCH 21/22] Final workflow version --- .github/workflows/check-tests.yml | 3 +++ README.md | 4 +++- .../main/kotlin/com/random/users/users/composable/UserCard.kt | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-tests.yml b/.github/workflows/check-tests.yml index 5036abb..5fced3a 100644 --- a/.github/workflows/check-tests.yml +++ b/.github/workflows/check-tests.yml @@ -16,6 +16,9 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: recursive - name: Setup build cache uses: actions/cache@v4 diff --git a/README.md b/README.md index 5418336..25a5d61 100644 --- a/README.md +++ b/README.md @@ -55,12 +55,14 @@ app/ ## 🚀 Future Improvements - Manage strings in core-presentation module +- Add ui-components to core-presentation module or to a new ds module - Expand test coverage across the application -- Integration tests from compose to data layer +- Integration tests from roborazzi to data layer - Compose navigation tests - Kover for coverage reports - Konsists for code quality - Ktlint for code style +- Add screenshot results in PR to see the differences ## 🔧 Getting Started diff --git a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt index 7d53c20..25ef00f 100644 --- a/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt +++ b/presentation/users/src/main/kotlin/com/random/users/users/composable/UserCard.kt @@ -52,7 +52,7 @@ internal fun UserCard( modifier = Modifier .fillMaxWidth() - .padding(46.dp), + .padding(16.dp), verticalAlignment = Alignment.CenterVertically, ) { AsyncImage( From 6cf9124270da46dcddce532151d5ee24254d4dd8 Mon Sep 17 00:00:00 2001 From: Pell Date: Tue, 22 Apr 2025 22:37:28 +0200 Subject: [PATCH 22/22] Copilot typo comment --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 25a5d61..50f2337 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@ An Android application that displays a list of random users fetched from an exte ## ✨ Features -- **User List**: Browse through random user profiles with detailed information. Infinite scroll implemented -- **USer details**: View detailed information about each user +- **User list**: Browse through random user profiles with detailed information. Infinite scroll implemented +- **User details**: View detailed information about each user - **Filtering**: Filter users by name, surname and email - **Delete**: Remove users from the list