model: init

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-09-22 13:47:06 +05:30
parent ee07f8391c
commit 4a363200a0
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
11 changed files with 30 additions and 13 deletions

1
.idea/gradle.xml generated
View file

@ -14,6 +14,7 @@
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/data" />
<option value="$PROJECT_DIR$/lobsters-api" />
<option value="$PROJECT_DIR$/model" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />

View file

@ -6,9 +6,7 @@ plugins {
dependencies {
def moshi_version = "1.9.3"
def retrofit_version = "2.9.0"
kapt "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version"
implementation "com.squareup.moshi:moshi:$moshi_version"
implementation "com.squareup.moshi:moshi-kotlin:$moshi_version"
implementation project(":model")
implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version"
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
kaptTest "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version"

View file

@ -1,10 +1,10 @@
package dev.msfjarvis.lobsters.api
import dev.msfjarvis.lobsters.api.model.LobstersPost
import dev.msfjarvis.lobsters.model.LobstersPost
import retrofit2.Call
import retrofit2.http.GET
interface LobstersApi {
@GET("hottest.json")
fun getHottestPosts(): Call<List<LobstersPost>>
fun getHottestPosts(): Call<List<dev.msfjarvis.lobsters.model.LobstersPost>>
}

View file

@ -1,6 +1,6 @@
package dev.msfjarvis.lobsters.api
import dev.msfjarvis.lobsters.api.model.LobstersPost
import dev.msfjarvis.lobsters.model.LobstersPost
import okhttp3.mockwebserver.Dispatcher
import okhttp3.mockwebserver.MockResponse
import okhttp3.mockwebserver.MockWebServer
@ -31,17 +31,17 @@ class LobstersApiTest {
@Test
fun `api gets correct number of items`() {
apiClient.getHottestPosts().enqueue(object : Callback<List<LobstersPost>> {
apiClient.getHottestPosts().enqueue(object : Callback<List<dev.msfjarvis.lobsters.model.LobstersPost>> {
override fun onResponse(
call: Call<List<LobstersPost>>,
response: Response<List<LobstersPost>>
call: Call<List<dev.msfjarvis.lobsters.model.LobstersPost>>,
response: Response<List<dev.msfjarvis.lobsters.model.LobstersPost>>
) {
val posts = response.body()
require(posts != null)
assertEquals(25, posts.size)
}
override fun onFailure(call: Call<List<LobstersPost>>, t: Throwable) {
override fun onFailure(call: Call<List<dev.msfjarvis.lobsters.model.LobstersPost>>, t: Throwable) {
fail("Call cannot fail in tests")
}
})

1
model/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/build

11
model/build.gradle Normal file
View file

@ -0,0 +1,11 @@
plugins {
id 'kotlin-android'
id 'kotlin-kapt'
}
dependencies {
def moshi_version = "1.9.3"
kapt "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version"
implementation "com.squareup.moshi:moshi:$moshi_version"
implementation "com.squareup.moshi:moshi-kotlin:$moshi_version"
}

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="dev.msfjarvis.lobsters.model">
</manifest>

View file

@ -1,4 +1,4 @@
package dev.msfjarvis.lobsters.api.model
package dev.msfjarvis.lobsters.model
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass

View file

@ -1,4 +1,4 @@
package dev.msfjarvis.lobsters.api.model
package dev.msfjarvis.lobsters.model
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass

View file

@ -1,4 +1,4 @@
package dev.msfjarvis.lobsters.api.model
package dev.msfjarvis.lobsters.model
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass

View file

@ -2,3 +2,4 @@ rootProject.name = "lobste.rs"
include ':app'
include ':data'
include ':lobsters-api'
include ':model'