{"id":21744059,"url":"https://github.com/telefonica/android-mock-api-server","last_synced_at":"2026-01-16T02:27:05.791Z","repository":{"id":65507964,"uuid":"559863209","full_name":"Telefonica/android-mock-api-server","owner":"Telefonica","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-07T14:34:27.000Z","size":147,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-04-13T05:07:45.704Z","etag":null,"topics":["cdco","managed","org-cdo","srv-novum"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Telefonica.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-31T08:57:22.000Z","updated_at":"2024-12-11T08:53:19.000Z","dependencies_parsed_at":"2024-03-04T15:04:58.961Z","dependency_job_id":null,"html_url":"https://github.com/Telefonica/android-mock-api-server","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fandroid-mock-api-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fandroid-mock-api-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fandroid-mock-api-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fandroid-mock-api-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Telefonica","download_url":"https://codeload.github.com/Telefonica/android-mock-api-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665747,"owners_count":21142123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cdco","managed","org-cdo","srv-novum"],"created_at":"2024-11-26T07:09:52.356Z","updated_at":"2026-01-16T02:27:05.785Z","avatar_url":"https://github.com/Telefonica.png","language":"Kotlin","readme":"# Android Mock Api Server\n\nIt is a framework that provides local data and allows you to test your app without a backend.\n\n### Features\n\n- Mock response using json files, data class object or string bodies\n- Mock response sequence\n- Provide response delay time\n- Provide http response code\n\n### Installation\n\nInside the dependency block in the `build.gradle` file of your application, add this line to add the library:\n```Groovy\nrepositories {\n    mavenCentral()\n}\ndependencies {\n    ...\n    implementation 'com.telefonica:mock:$version'\n    ...\n}\n```\n\nCreate a demo variant in order to only have json files for development purposes:\n```Gradle\nflavorDimensions \"environment\"\n\nproductFlavors {\n    ...\n    demo {\n        dimension \"environment\"\n    }\n    ...\n}\n```\nCreate an asset folder in demo variant and place there all json files.\n\nProvide a singleton instance of MockHelper using dependency injection:\n```Kotlin\n@Provides\n@Singleton\nfun provideMockHelper(\n    @ApplicationContext context: Context\n): MockHelper = MockHelper(context)\n```\n\nInject MockHelper in Application file. Then in live cycle methods, start, stop and provide mocks.\n```Kotlin\nclass App : Application() {\n    \n    ...\n    @Inject\n    lateinit var mockHelper: MockHelper\n    ...\n\n    override fun onCreate() {\n        ...\n        if (BuildConfig.DEFAULT_ENVIRONMENT == Environment.DEMO) {\n            CoroutineScope(Dispatchers.IO).launch {\n                mockHelper.setUp()\n                mockHelper.enqueue {\n                    whenever(\"/image.png\").thenReturnFromRawFile(\"demo_image\")\n                    whenever(\"/?results=5\").thenReturnFromFile(\"user_list_success_1.json\")\n                    whenever(\"/?results=10\").thenReturn(Moshi.Builder().build().adapter(UserWrapperDto::class.java).toJson(DEMO_LIST))\n                }\n            }\n        }\n        ...\n    }\n \n    override fun onTerminate() {\n        super.onTerminate()\n        if (BuildConfig.DEFAULT_ENVIRONMENT == Environment.DEMO) {\n            mockHelper.stopServer()\n        }\n    }\n}\n```\n\nAt some point in the application, where the app set the base URL to make requests, you have to check if current variant is \"demo\" and set the base url obtained from method:\n\n```Kotlin\nmockHelper.getBaseUrl()\n```\n\n### Demo App\n\nDemo app shows a list of users in two screens, first shows five users, second shows ten users.\nTo use mock data, select demoDebug variant:\n- The first list, is a json sequence which the first request is success and the second request is an error.\n- The second list, is a data object response.\n\nTo use real data, select preDebug variant\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelefonica%2Fandroid-mock-api-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelefonica%2Fandroid-mock-api-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelefonica%2Fandroid-mock-api-server/lists"}