Replace "Mealie" with "Mealient" everywhere

This commit is contained in:
Kirill Kamakin
2021-11-20 13:41:47 +03:00
parent d789bfcf97
commit 5866584d14
81 changed files with 283 additions and 284 deletions

View File

@@ -5,7 +5,6 @@ before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle - export GRADLE_USER_HOME=`pwd`/.gradle
cache: cache:
key: "mealie-android"
paths: paths:
- .gradle - .gradle
@@ -19,10 +18,10 @@ assembleDebug:
needs: [ ] needs: [ ]
script: script:
- ./gradlew assembleDebug - ./gradlew assembleDebug
- cp app/build/outputs/apk/debug/*.apk mealie-debug.apk - cp app/build/outputs/apk/debug/*.apk mealient-debug.apk
artifacts: artifacts:
paths: paths:
- mealie-debug.apk - mealient-debug.apk
checkApp: checkApp:
interruptible: true interruptible: true
@@ -40,15 +39,15 @@ assembleRelease:
stage: build stage: build
needs: [ "checkApp" ] needs: [ "checkApp" ]
script: script:
- echo "$MEALIE_KEY_STORE" | base64 -d > app/mealie-release-key.jks - echo "$MEALIE_KEY_STORE" | base64 -d > app/mealient-release-key.jks
- echo "storeFile=mealie-release-key.jks" > keystore.properties - echo "storeFile=mealient-release-key.jks" > keystore.properties
- echo "storePassword=$MEALIE_KEY_STORE_PASSWORD" >> keystore.properties - echo "storePassword=$MEALIE_KEY_STORE_PASSWORD" >> keystore.properties
- echo "keyAlias=$MEALIE_KEY_ALIAS" >> keystore.properties - echo "keyAlias=$MEALIE_KEY_ALIAS" >> keystore.properties
- echo "keyPassword=$MEALIE_KEY_PASSWORD" >> keystore.properties - echo "keyPassword=$MEALIE_KEY_PASSWORD" >> keystore.properties
- ./gradlew assembleRelease - ./gradlew assembleRelease
- cp app/build/outputs/apk/release/*.apk mealie-release.apk - cp app/build/outputs/apk/release/*.apk mealient-release.apk
artifacts: artifacts:
paths: paths:
- mealie-release.apk - mealient-release.apk
rules: rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'

View File

@@ -5,6 +5,6 @@ If you face any issues using the application or have a feature request DO NOT se
Instead, report a new issue in this repository. Instead, report a new issue in this repository.
THAT IS NOT AN OFFICIAL CLIENT. THAT IS NOT AN OFFICIAL CLIENT.
# Mealie Android Application # Mealient Android Application
An Android client for [Mealie](https://hay-kot.github.io/mealie/). Easily access your recipes using your phone. An Android client for [Mealie](https://hay-kot.github.io/mealie/). Easily access your recipes using your phone.

View File

@@ -11,7 +11,7 @@ android {
compileSdk 31 compileSdk 31
defaultConfig { defaultConfig {
applicationId "gq.kirmanak.mealie" applicationId "gq.kirmanak.mealient"
minSdk 21 minSdk 21
targetSdk 31 targetSdk 31
versionCode 1 versionCode 1

View File

@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="gq.kirmanak.mealie"> package="gq.kirmanak.mealient">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<application <application
android:name=".MealieApp" android:name="gq.kirmanak.mealient.App"
android:allowBackup="true" android:allowBackup="true"
android:fullBackupOnly="true" android:fullBackupOnly="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.Mealie"> android:theme="@style/Theme.Mealient">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true"> android:exported="true">

View File

@@ -1,10 +0,0 @@
package gq.kirmanak.mealie.data.recipes.network
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse
interface RecipeDataSource {
suspend fun requestRecipes(start: Int = 0, limit: Int = 9999): List<GetRecipeSummaryResponse>
suspend fun requestRecipeInfo(slug: String): GetRecipeResponse
}

View File

@@ -1,11 +1,11 @@
package gq.kirmanak.mealie package gq.kirmanak.mealient
import android.app.Application import android.app.Application
import dagger.hilt.android.HiltAndroidApp import dagger.hilt.android.HiltAndroidApp
import timber.log.Timber import timber.log.Timber
@HiltAndroidApp @HiltAndroidApp
class MealieApp : Application() { class App : Application() {
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
if (BuildConfig.DEBUG) Timber.plant(Timber.DebugTree()) if (BuildConfig.DEBUG) Timber.plant(Timber.DebugTree())

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie package gq.kirmanak.mealient
import android.os.Bundle import android.os.Bundle
import android.view.Menu import android.view.Menu
@@ -7,8 +7,8 @@ import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import gq.kirmanak.mealie.databinding.MainActivityBinding import gq.kirmanak.mealient.databinding.MainActivityBinding
import gq.kirmanak.mealie.ui.auth.AuthenticationViewModel import gq.kirmanak.mealient.ui.auth.AuthenticationViewModel
import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.collectLatest
import timber.log.Timber import timber.log.Timber

View File

@@ -1,11 +1,11 @@
package gq.kirmanak.mealie.data package gq.kirmanak.mealient.data
import androidx.room.Database import androidx.room.Database
import androidx.room.RoomDatabase import androidx.room.RoomDatabase
import androidx.room.TypeConverters import androidx.room.TypeConverters
import gq.kirmanak.mealie.data.impl.RoomTypeConverters import gq.kirmanak.mealient.data.impl.RoomTypeConverters
import gq.kirmanak.mealie.data.recipes.db.RecipeDao import gq.kirmanak.mealient.data.recipes.db.RecipeDao
import gq.kirmanak.mealie.data.recipes.db.entity.* import gq.kirmanak.mealient.data.recipes.db.entity.*
import javax.inject.Singleton import javax.inject.Singleton
@Database( @Database(
@@ -15,6 +15,6 @@ import javax.inject.Singleton
) )
@TypeConverters(RoomTypeConverters::class) @TypeConverters(RoomTypeConverters::class)
@Singleton @Singleton
abstract class MealieDb : RoomDatabase() { abstract class AppDb : RoomDatabase() {
abstract fun recipeDao(): RecipeDao abstract fun recipeDao(): RecipeDao
} }

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data package gq.kirmanak.mealient.data
import android.content.Context import android.content.Context
import androidx.room.Room import androidx.room.Room
@@ -10,11 +10,11 @@ import dagger.hilt.components.SingletonComponent
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
interface MealieModule { interface AppModule {
companion object { companion object {
@Provides @Provides
fun createDb(@ApplicationContext context: Context): MealieDb { fun createDb(@ApplicationContext context: Context): AppDb {
return Room.databaseBuilder(context, MealieDb::class.java, "mealie.db").build() return Room.databaseBuilder(context, AppDb::class.java, "app.db").build()
} }
} }
} }

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth package gq.kirmanak.mealient.data.auth
interface AuthDataSource { interface AuthDataSource {
/** /**

View File

@@ -1,12 +1,12 @@
package gq.kirmanak.mealie.data.auth package gq.kirmanak.mealient.data.auth
import dagger.Binds import dagger.Binds
import dagger.Module import dagger.Module
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import gq.kirmanak.mealie.data.auth.impl.AuthDataSourceImpl import gq.kirmanak.mealient.data.auth.impl.AuthDataSourceImpl
import gq.kirmanak.mealie.data.auth.impl.AuthRepoImpl import gq.kirmanak.mealient.data.auth.impl.AuthRepoImpl
import gq.kirmanak.mealie.data.auth.impl.AuthStorageImpl import gq.kirmanak.mealient.data.auth.impl.AuthStorageImpl
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth package gq.kirmanak.mealient.data.auth
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow

View File

@@ -1,6 +1,6 @@
package gq.kirmanak.mealie.data.auth package gq.kirmanak.mealient.data.auth
import gq.kirmanak.mealie.data.auth.impl.GetTokenResponse import gq.kirmanak.mealient.data.auth.impl.GetTokenResponse
import retrofit2.http.Field import retrofit2.http.Field
import retrofit2.http.FormUrlEncoded import retrofit2.http.FormUrlEncoded
import retrofit2.http.POST import retrofit2.http.POST

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth package gq.kirmanak.mealient.data.auth
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.data.auth.impl package gq.kirmanak.mealient.data.auth.impl
import gq.kirmanak.mealie.data.auth.AuthDataSource import gq.kirmanak.mealient.data.auth.AuthDataSource
import gq.kirmanak.mealie.data.auth.AuthService import gq.kirmanak.mealient.data.auth.AuthService
import gq.kirmanak.mealie.data.impl.RetrofitBuilder import gq.kirmanak.mealient.data.impl.RetrofitBuilder
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import retrofit2.create import retrofit2.create
import timber.log.Timber import timber.log.Timber

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth.impl package gq.kirmanak.mealient.data.auth.impl
import okhttp3.Interceptor import okhttp3.Interceptor
import okhttp3.Response import okhttp3.Response

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.data.auth.impl package gq.kirmanak.mealient.data.auth.impl
import gq.kirmanak.mealie.data.auth.AuthDataSource import gq.kirmanak.mealient.data.auth.AuthDataSource
import gq.kirmanak.mealie.data.auth.AuthRepo import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealie.data.auth.AuthStorage import gq.kirmanak.mealient.data.auth.AuthStorage
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import timber.log.Timber import timber.log.Timber

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.data.auth.impl package gq.kirmanak.mealient.data.auth.impl
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import gq.kirmanak.mealie.data.auth.AuthStorage import gq.kirmanak.mealient.data.auth.AuthStorage
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.channels.awaitClose

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth.impl package gq.kirmanak.mealient.data.auth.impl
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@@ -1,7 +1,7 @@
package gq.kirmanak.mealie.data.impl package gq.kirmanak.mealient.data.impl
import gq.kirmanak.mealie.BuildConfig import gq.kirmanak.mealient.BuildConfig
import gq.kirmanak.mealie.data.auth.impl.AuthOkHttpInterceptor import gq.kirmanak.mealient.data.auth.impl.AuthOkHttpInterceptor
import okhttp3.Interceptor import okhttp3.Interceptor
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor import okhttp3.logging.HttpLoggingInterceptor

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.impl package gq.kirmanak.mealient.data.impl
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.impl package gq.kirmanak.mealient.data.impl
import androidx.room.TypeConverter import androidx.room.TypeConverter
import kotlinx.datetime.* import kotlinx.datetime.*

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes package gq.kirmanak.mealient.data.recipes
import android.widget.ImageView import android.widget.ImageView

View File

@@ -1,16 +1,16 @@
package gq.kirmanak.mealie.data.recipes package gq.kirmanak.mealient.data.recipes
import androidx.paging.ExperimentalPagingApi import androidx.paging.ExperimentalPagingApi
import dagger.Binds import dagger.Binds
import dagger.Module import dagger.Module
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage import gq.kirmanak.mealient.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.recipes.db.RecipeStorageImpl import gq.kirmanak.mealient.data.recipes.db.RecipeStorageImpl
import gq.kirmanak.mealie.data.recipes.impl.RecipeImageLoaderImpl import gq.kirmanak.mealient.data.recipes.impl.RecipeImageLoaderImpl
import gq.kirmanak.mealie.data.recipes.impl.RecipeRepoImpl import gq.kirmanak.mealient.data.recipes.impl.RecipeRepoImpl
import gq.kirmanak.mealie.data.recipes.network.RecipeDataSource import gq.kirmanak.mealient.data.recipes.network.RecipeDataSource
import gq.kirmanak.mealie.data.recipes.network.RecipeDataSourceImpl import gq.kirmanak.mealient.data.recipes.network.RecipeDataSourceImpl
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
@ExperimentalPagingApi @ExperimentalPagingApi

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.data.recipes package gq.kirmanak.mealient.data.recipes
import androidx.paging.Pager import androidx.paging.Pager
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo
interface RecipeRepo { interface RecipeRepo {
fun createPager(): Pager<Int, RecipeSummaryEntity> fun createPager(): Pager<Int, RecipeSummaryEntity>

View File

@@ -1,9 +1,9 @@
package gq.kirmanak.mealie.data.recipes.db package gq.kirmanak.mealient.data.recipes.db
import androidx.paging.PagingSource import androidx.paging.PagingSource
import androidx.room.* import androidx.room.*
import gq.kirmanak.mealie.data.recipes.db.entity.* import gq.kirmanak.mealient.data.recipes.db.entity.*
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo
@Dao @Dao
interface RecipeDao { interface RecipeDao {

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.data.recipes.db package gq.kirmanak.mealient.data.recipes.db
import androidx.paging.PagingSource import androidx.paging.PagingSource
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse
interface RecipeStorage { interface RecipeStorage {
suspend fun saveRecipes(recipes: List<GetRecipeSummaryResponse>) suspend fun saveRecipes(recipes: List<GetRecipeSummaryResponse>)

View File

@@ -1,19 +1,19 @@
package gq.kirmanak.mealie.data.recipes.db package gq.kirmanak.mealient.data.recipes.db
import androidx.paging.PagingSource import androidx.paging.PagingSource
import androidx.room.withTransaction import androidx.room.withTransaction
import gq.kirmanak.mealie.data.MealieDb import gq.kirmanak.mealient.data.AppDb
import gq.kirmanak.mealie.data.recipes.db.entity.* import gq.kirmanak.mealient.data.recipes.db.entity.*
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeIngredientResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeIngredientResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeInstructionResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeInstructionResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
class RecipeStorageImpl @Inject constructor( class RecipeStorageImpl @Inject constructor(
private val db: MealieDb private val db: AppDb
) : RecipeStorage { ) : RecipeStorage {
private val recipeDao: RecipeDao by lazy { db.recipeDao() } private val recipeDao: RecipeDao by lazy { db.recipeDao() }

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity

View File

@@ -1,11 +1,11 @@
package gq.kirmanak.mealie.data.recipes.impl package gq.kirmanak.mealient.data.recipes.impl
import androidx.room.Embedded import androidx.room.Embedded
import androidx.room.Relation import androidx.room.Relation
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeIngredientEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeIngredientEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeInstructionEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeInstructionEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
data class FullRecipeInfo( data class FullRecipeInfo(
@Embedded val recipeEntity: RecipeEntity, @Embedded val recipeEntity: RecipeEntity,

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.data.recipes.impl package gq.kirmanak.mealient.data.recipes.impl
import android.widget.ImageView import android.widget.ImageView
import gq.kirmanak.mealie.R import gq.kirmanak.mealient.R
import gq.kirmanak.mealie.data.auth.AuthRepo import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealie.data.recipes.RecipeImageLoader import gq.kirmanak.mealient.data.recipes.RecipeImageLoader
import gq.kirmanak.mealie.ui.ImageLoader import gq.kirmanak.mealient.ui.ImageLoader
import javax.inject.Inject import javax.inject.Inject
class RecipeImageLoaderImpl @Inject constructor( class RecipeImageLoaderImpl @Inject constructor(

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.data.recipes.impl package gq.kirmanak.mealient.data.recipes.impl
import androidx.paging.PagingSource import androidx.paging.PagingSource
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage import gq.kirmanak.mealient.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton

View File

@@ -1,12 +1,12 @@
package gq.kirmanak.mealie.data.recipes.impl package gq.kirmanak.mealient.data.recipes.impl
import androidx.paging.ExperimentalPagingApi import androidx.paging.ExperimentalPagingApi
import androidx.paging.Pager import androidx.paging.Pager
import androidx.paging.PagingConfig import androidx.paging.PagingConfig
import gq.kirmanak.mealie.data.recipes.RecipeRepo import gq.kirmanak.mealient.data.recipes.RecipeRepo
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage import gq.kirmanak.mealient.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.network.RecipeDataSource import gq.kirmanak.mealient.data.recipes.network.RecipeDataSource
import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CancellationException
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.impl package gq.kirmanak.mealient.data.recipes.impl
import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting
import androidx.paging.ExperimentalPagingApi import androidx.paging.ExperimentalPagingApi
@@ -7,9 +7,9 @@ import androidx.paging.LoadType.PREPEND
import androidx.paging.LoadType.REFRESH import androidx.paging.LoadType.REFRESH
import androidx.paging.PagingState import androidx.paging.PagingState
import androidx.paging.RemoteMediator import androidx.paging.RemoteMediator
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage import gq.kirmanak.mealient.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.network.RecipeDataSource import gq.kirmanak.mealient.data.recipes.network.RecipeDataSource
import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CancellationException
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject

View File

@@ -0,0 +1,10 @@
package gq.kirmanak.mealient.data.recipes.network
import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse
interface RecipeDataSource {
suspend fun requestRecipes(start: Int = 0, limit: Int = 9999): List<GetRecipeSummaryResponse>
suspend fun requestRecipeInfo(slug: String): GetRecipeResponse
}

View File

@@ -1,9 +1,9 @@
package gq.kirmanak.mealie.data.recipes.network package gq.kirmanak.mealient.data.recipes.network
import gq.kirmanak.mealie.data.auth.AuthRepo import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealie.data.impl.RetrofitBuilder import gq.kirmanak.mealient.data.impl.RetrofitBuilder
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject

View File

@@ -1,7 +1,7 @@
package gq.kirmanak.mealie.data.recipes.network package gq.kirmanak.mealient.data.recipes.network
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse
import retrofit2.http.GET import retrofit2.http.GET
import retrofit2.http.Path import retrofit2.http.Path
import retrofit2.http.Query import retrofit2.http.Query

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.network.response package gq.kirmanak.mealient.data.recipes.network.response
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.network.response package gq.kirmanak.mealient.data.recipes.network.response
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.network.response package gq.kirmanak.mealient.data.recipes.network.response
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime import kotlinx.datetime.LocalDateTime

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.network.response package gq.kirmanak.mealient.data.recipes.network.response
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime import kotlinx.datetime.LocalDateTime

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui package gq.kirmanak.mealient.ui
import android.widget.ImageView import android.widget.ImageView
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui package gq.kirmanak.mealient.ui
import androidx.paging.PagingDataAdapter import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.ui package gq.kirmanak.mealient.ui
import dagger.Binds import dagger.Binds
import dagger.Module import dagger.Module
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import gq.kirmanak.mealie.ui.glide.ImageLoaderGlide import gq.kirmanak.mealient.ui.glide.ImageLoaderGlide
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui.auth package gq.kirmanak.mealient.ui.auth
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@@ -11,7 +11,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import gq.kirmanak.mealie.databinding.FragmentAuthenticationBinding import gq.kirmanak.mealient.databinding.FragmentAuthenticationBinding
import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.collectLatest
import timber.log.Timber import timber.log.Timber

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.ui.auth package gq.kirmanak.mealient.ui.auth
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import gq.kirmanak.mealie.data.auth.AuthRepo import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealie.data.recipes.RecipeRepo import gq.kirmanak.mealient.data.recipes.RecipeRepo
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import timber.log.Timber import timber.log.Timber

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.ui.glide package gq.kirmanak.mealient.ui.glide
import android.widget.ImageView import android.widget.ImageView
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import gq.kirmanak.mealie.ui.ImageLoader import gq.kirmanak.mealient.ui.ImageLoader
import javax.inject.Inject import javax.inject.Inject
class ImageLoaderGlide @Inject constructor() : ImageLoader { class ImageLoaderGlide @Inject constructor() : ImageLoader {

View File

@@ -1,7 +1,7 @@
package gq.kirmanak.mealie.ui.glide package gq.kirmanak.mealient.ui.glide
import com.bumptech.glide.annotation.GlideModule import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.module.AppGlideModule import com.bumptech.glide.module.AppGlideModule
@GlideModule @GlideModule
class MealieGlideModule : AppGlideModule() class MainGlideModule : AppGlideModule()

View File

@@ -1,9 +1,9 @@
package gq.kirmanak.mealie.ui.recipes package gq.kirmanak.mealient.ui.recipes
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import gq.kirmanak.mealie.R import gq.kirmanak.mealient.R
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.databinding.ViewHolderRecipeBinding import gq.kirmanak.mealient.databinding.ViewHolderRecipeBinding
class RecipeViewHolder( class RecipeViewHolder(
private val binding: ViewHolderRecipeBinding, private val binding: ViewHolderRecipeBinding,

View File

@@ -1,12 +1,12 @@
package gq.kirmanak.mealie.ui.recipes package gq.kirmanak.mealient.ui.recipes
import android.widget.ImageView import android.widget.ImageView
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import gq.kirmanak.mealie.data.recipes.RecipeImageLoader import gq.kirmanak.mealient.data.recipes.RecipeImageLoader
import gq.kirmanak.mealie.data.recipes.RecipeRepo import gq.kirmanak.mealient.data.recipes.RecipeRepo
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui.recipes package gq.kirmanak.mealient.ui.recipes
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@@ -10,10 +10,10 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.databinding.FragmentRecipesBinding import gq.kirmanak.mealient.databinding.FragmentRecipesBinding
import gq.kirmanak.mealie.ui.SwipeRefreshLayoutHelper.listenToRefreshRequests import gq.kirmanak.mealient.ui.SwipeRefreshLayoutHelper.listenToRefreshRequests
import gq.kirmanak.mealie.ui.auth.AuthenticationViewModel import gq.kirmanak.mealient.ui.auth.AuthenticationViewModel
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.collectLatest

View File

@@ -1,11 +1,11 @@
package gq.kirmanak.mealie.ui.recipes package gq.kirmanak.mealient.ui.recipes
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.paging.PagingDataAdapter import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.databinding.ViewHolderRecipeBinding import gq.kirmanak.mealient.databinding.ViewHolderRecipeBinding
import timber.log.Timber import timber.log.Timber
class RecipesPagingAdapter( class RecipesPagingAdapter(

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui.recipes.info package gq.kirmanak.mealient.ui.recipes.info
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@@ -11,8 +11,8 @@ import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import gq.kirmanak.mealie.databinding.FragmentRecipeInfoBinding import gq.kirmanak.mealient.databinding.FragmentRecipeInfoBinding
import gq.kirmanak.mealie.ui.auth.AuthenticationViewModel import gq.kirmanak.mealient.ui.auth.AuthenticationViewModel
import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.collectLatest
import timber.log.Timber import timber.log.Timber

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui.recipes.info package gq.kirmanak.mealient.ui.recipes.info
import android.widget.ImageView import android.widget.ImageView
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
@@ -6,9 +6,9 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import gq.kirmanak.mealie.data.recipes.RecipeImageLoader import gq.kirmanak.mealient.data.recipes.RecipeImageLoader
import gq.kirmanak.mealie.data.recipes.RecipeRepo import gq.kirmanak.mealient.data.recipes.RecipeRepo
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject

View File

@@ -1,13 +1,13 @@
package gq.kirmanak.mealie.ui.recipes.info package gq.kirmanak.mealient.ui.recipes.info
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeIngredientEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeIngredientEntity
import gq.kirmanak.mealie.databinding.ViewHolderIngredientBinding import gq.kirmanak.mealient.databinding.ViewHolderIngredientBinding
import gq.kirmanak.mealie.ui.recipes.info.RecipeIngredientsAdapter.RecipeIngredientViewHolder import gq.kirmanak.mealient.ui.recipes.info.RecipeIngredientsAdapter.RecipeIngredientViewHolder
class RecipeIngredientsAdapter() : class RecipeIngredientsAdapter() :
ListAdapter<RecipeIngredientEntity, RecipeIngredientViewHolder>(RecipeIngredientDiffCallback) { ListAdapter<RecipeIngredientEntity, RecipeIngredientViewHolder>(RecipeIngredientDiffCallback) {

View File

@@ -1,12 +1,12 @@
package gq.kirmanak.mealie.ui.recipes.info package gq.kirmanak.mealient.ui.recipes.info
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeInstructionEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeInstructionEntity
import gq.kirmanak.mealie.databinding.ViewHolderInstructionBinding import gq.kirmanak.mealient.databinding.ViewHolderInstructionBinding
class RecipeInstructionsAdapter : class RecipeInstructionsAdapter :
ListAdapter<RecipeInstructionEntity, RecipeInstructionsAdapter.RecipeInstructionViewHolder>( ListAdapter<RecipeInstructionEntity, RecipeInstructionsAdapter.RecipeInstructionViewHolder>(

View File

@@ -7,7 +7,7 @@
<fragment <fragment
android:id="@+id/authenticationFragment" android:id="@+id/authenticationFragment"
android:name="gq.kirmanak.mealie.ui.auth.AuthenticationFragment" android:name="gq.kirmanak.mealient.ui.auth.AuthenticationFragment"
android:label="AuthenticationFragment"> android:label="AuthenticationFragment">
<action <action
android:id="@+id/action_authenticationFragment_to_recipesFragment" android:id="@+id/action_authenticationFragment_to_recipesFragment"
@@ -17,7 +17,7 @@
</fragment> </fragment>
<fragment <fragment
android:id="@+id/recipesFragment" android:id="@+id/recipesFragment"
android:name="gq.kirmanak.mealie.ui.recipes.RecipesFragment" android:name="gq.kirmanak.mealient.ui.recipes.RecipesFragment"
android:label="fragment_recipes" android:label="fragment_recipes"
tools:layout="@layout/fragment_recipes"> tools:layout="@layout/fragment_recipes">
<action <action
@@ -31,7 +31,7 @@
</fragment> </fragment>
<fragment <fragment
android:id="@+id/recipeInfoFragment" android:id="@+id/recipeInfoFragment"
android:name="gq.kirmanak.mealie.ui.recipes.info.RecipeInfoFragment" android:name="gq.kirmanak.mealient.ui.recipes.info.RecipeInfoFragment"
android:label="RecipeInfoFragment"> android:label="RecipeInfoFragment">
<action <action
android:id="@+id/action_recipeInfoFragment_to_authenticationFragment" android:id="@+id/action_recipeInfoFragment_to_authenticationFragment"

View File

@@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools"> <resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. --> <!-- Base application theme. -->
<style name="Theme.Mealie" parent="Theme.MaterialComponents.DayNight.NoActionBar"> <style name="Theme.Mealient" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. --> <!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_200</item> <item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryVariant">@color/purple_700</item> <item name="colorPrimaryVariant">@color/purple_700</item>

View File

@@ -1,5 +1,5 @@
<resources> <resources>
<string name="app_name">Mealie</string> <string name="app_name">Mealient</string>
<string name="fragment_authentication_input_hint_email">E-mail</string> <string name="fragment_authentication_input_hint_email">E-mail</string>
<string name="fragment_authentication_input_hint_password">Password</string> <string name="fragment_authentication_input_hint_password">Password</string>
<string name="fragment_authentication_input_hint_url">Url</string> <string name="fragment_authentication_input_hint_url">Url</string>

View File

@@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools"> <resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. --> <!-- Base application theme. -->
<style name="Theme.Mealie" parent="Theme.MaterialComponents.DayNight.NoActionBar"> <style name="Theme.Mealient" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. --> <!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item> <item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item> <item name="colorPrimaryVariant">@color/purple_700</item>

View File

@@ -1,14 +1,14 @@
package gq.kirmanak.mealie.data.auth.impl package gq.kirmanak.mealient.data.auth.impl
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_PASSWORD import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_PASSWORD
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_TOKEN import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_USERNAME import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_USERNAME
import gq.kirmanak.mealie.data.test.AuthImplTestData.body import gq.kirmanak.mealient.data.test.AuthImplTestData.body
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueUnsuccessfulAuthResponse import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueUnsuccessfulAuthResponse
import gq.kirmanak.mealie.data.test.MockServerTest import gq.kirmanak.mealient.data.test.MockServerTest
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi

View File

@@ -1,13 +1,13 @@
package gq.kirmanak.mealie.data.auth.impl package gq.kirmanak.mealient.data.auth.impl
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_PASSWORD import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_PASSWORD
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_TOKEN import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_USERNAME import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_USERNAME
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueUnsuccessfulAuthResponse import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueUnsuccessfulAuthResponse
import gq.kirmanak.mealie.data.test.MockServerTest import gq.kirmanak.mealient.data.test.MockServerTest
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.junit.Test import org.junit.Test

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.data.auth.impl package gq.kirmanak.mealient.data.auth.impl
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_TOKEN import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_URL import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_URL
import gq.kirmanak.mealie.data.test.HiltRobolectricTest import gq.kirmanak.mealient.data.test.HiltRobolectricTest
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.data.impl package gq.kirmanak.mealient.data.impl
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.auth.impl.AUTHORIZATION_HEADER import gq.kirmanak.mealient.data.auth.impl.AUTHORIZATION_HEADER
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_TOKEN import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealie.data.test.MockServerTest import gq.kirmanak.mealient.data.test.MockServerTest
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.mockwebserver.MockResponse import okhttp3.mockwebserver.MockResponse

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.impl package gq.kirmanak.mealient.data.impl
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate

View File

@@ -1,26 +1,26 @@
package gq.kirmanak.mealie.data.recipes.db package gq.kirmanak.mealient.data.recipes.db
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.MealieDb import gq.kirmanak.mealient.data.AppDb
import gq.kirmanak.mealie.data.recipes.db.entity.CategoryEntity import gq.kirmanak.mealient.data.recipes.db.entity.CategoryEntity
import gq.kirmanak.mealie.data.recipes.db.entity.CategoryRecipeEntity import gq.kirmanak.mealient.data.recipes.db.entity.CategoryRecipeEntity
import gq.kirmanak.mealie.data.recipes.db.entity.TagEntity import gq.kirmanak.mealient.data.recipes.db.entity.TagEntity
import gq.kirmanak.mealie.data.recipes.db.entity.TagRecipeEntity import gq.kirmanak.mealient.data.recipes.db.entity.TagRecipeEntity
import gq.kirmanak.mealie.data.test.HiltRobolectricTest import gq.kirmanak.mealient.data.test.HiltRobolectricTest
import gq.kirmanak.mealie.data.test.RecipeImplTestData.BREAD_INGREDIENT import gq.kirmanak.mealient.data.test.RecipeImplTestData.BREAD_INGREDIENT
import gq.kirmanak.mealie.data.test.RecipeImplTestData.CAKE_BREAD_RECIPE_INGREDIENT_ENTITY import gq.kirmanak.mealient.data.test.RecipeImplTestData.CAKE_BREAD_RECIPE_INGREDIENT_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.CAKE_RECIPE_SUMMARY_ENTITY import gq.kirmanak.mealient.data.test.RecipeImplTestData.CAKE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY import gq.kirmanak.mealient.data.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.FULL_PORRIDGE_INFO_ENTITY import gq.kirmanak.mealient.data.test.RecipeImplTestData.FULL_PORRIDGE_INFO_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.GET_CAKE_RESPONSE import gq.kirmanak.mealient.data.test.RecipeImplTestData.GET_CAKE_RESPONSE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.GET_PORRIDGE_RESPONSE import gq.kirmanak.mealient.data.test.RecipeImplTestData.GET_PORRIDGE_RESPONSE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.MIX_CAKE_RECIPE_INSTRUCTION_ENTITY import gq.kirmanak.mealient.data.test.RecipeImplTestData.MIX_CAKE_RECIPE_INSTRUCTION_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.MIX_INSTRUCTION import gq.kirmanak.mealient.data.test.RecipeImplTestData.MIX_INSTRUCTION
import gq.kirmanak.mealie.data.test.RecipeImplTestData.PORRIDGE_RECIPE_SUMMARY_ENTITY import gq.kirmanak.mealient.data.test.RecipeImplTestData.PORRIDGE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.RECIPE_SUMMARY_CAKE import gq.kirmanak.mealient.data.test.RecipeImplTestData.RECIPE_SUMMARY_CAKE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.RECIPE_SUMMARY_PORRIDGE import gq.kirmanak.mealient.data.test.RecipeImplTestData.RECIPE_SUMMARY_PORRIDGE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.TEST_RECIPE_SUMMARIES import gq.kirmanak.mealient.data.test.RecipeImplTestData.TEST_RECIPE_SUMMARIES
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.junit.Test import org.junit.Test
import javax.inject.Inject import javax.inject.Inject
@@ -32,12 +32,12 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
lateinit var subject: RecipeStorageImpl lateinit var subject: RecipeStorageImpl
@Inject @Inject
lateinit var mealieDb: MealieDb lateinit var appDb: AppDb
@Test @Test
fun `when saveRecipes then saves tags`(): Unit = runBlocking { fun `when saveRecipes then saves tags`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actualTags = mealieDb.recipeDao().queryAllTags() val actualTags = appDb.recipeDao().queryAllTags()
assertThat(actualTags).containsExactly( assertThat(actualTags).containsExactly(
TagEntity(localId = 1, name = "gluten"), TagEntity(localId = 1, name = "gluten"),
TagEntity(localId = 2, name = "allergic"), TagEntity(localId = 2, name = "allergic"),
@@ -48,7 +48,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
@Test @Test
fun `when saveRecipes then saves categories`(): Unit = runBlocking { fun `when saveRecipes then saves categories`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actual = mealieDb.recipeDao().queryAllCategories() val actual = appDb.recipeDao().queryAllCategories()
assertThat(actual).containsExactly( assertThat(actual).containsExactly(
CategoryEntity(localId = 1, name = "dessert"), CategoryEntity(localId = 1, name = "dessert"),
CategoryEntity(localId = 2, name = "tasty"), CategoryEntity(localId = 2, name = "tasty"),
@@ -59,7 +59,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
@Test @Test
fun `when saveRecipes then saves recipes`(): Unit = runBlocking { fun `when saveRecipes then saves recipes`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actualTags = mealieDb.recipeDao().queryAllRecipes() val actualTags = appDb.recipeDao().queryAllRecipes()
assertThat(actualTags).containsExactly( assertThat(actualTags).containsExactly(
CAKE_RECIPE_SUMMARY_ENTITY, CAKE_RECIPE_SUMMARY_ENTITY,
PORRIDGE_RECIPE_SUMMARY_ENTITY PORRIDGE_RECIPE_SUMMARY_ENTITY
@@ -69,7 +69,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
@Test @Test
fun `when saveRecipes then saves category recipes`(): Unit = runBlocking { fun `when saveRecipes then saves category recipes`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actual = mealieDb.recipeDao().queryAllCategoryRecipes() val actual = appDb.recipeDao().queryAllCategoryRecipes()
assertThat(actual).containsExactly( assertThat(actual).containsExactly(
CategoryRecipeEntity(categoryId = 1, recipeId = 1), CategoryRecipeEntity(categoryId = 1, recipeId = 1),
CategoryRecipeEntity(categoryId = 2, recipeId = 1), CategoryRecipeEntity(categoryId = 2, recipeId = 1),
@@ -81,7 +81,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
@Test @Test
fun `when saveRecipes then saves tag recipes`(): Unit = runBlocking { fun `when saveRecipes then saves tag recipes`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actual = mealieDb.recipeDao().queryAllTagRecipes() val actual = appDb.recipeDao().queryAllTagRecipes()
assertThat(actual).containsExactly( assertThat(actual).containsExactly(
TagRecipeEntity(tagId = 1, recipeId = 1), TagRecipeEntity(tagId = 1, recipeId = 1),
TagRecipeEntity(tagId = 2, recipeId = 1), TagRecipeEntity(tagId = 2, recipeId = 1),
@@ -94,7 +94,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when refreshAll then old recipes aren't preserved`(): Unit = runBlocking { fun `when refreshAll then old recipes aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.refreshAll(listOf(RECIPE_SUMMARY_CAKE)) subject.refreshAll(listOf(RECIPE_SUMMARY_CAKE))
val actual = mealieDb.recipeDao().queryAllRecipes() val actual = appDb.recipeDao().queryAllRecipes()
assertThat(actual).containsExactly(CAKE_RECIPE_SUMMARY_ENTITY) assertThat(actual).containsExactly(CAKE_RECIPE_SUMMARY_ENTITY)
} }
@@ -102,7 +102,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when refreshAll then old category recipes aren't preserved`(): Unit = runBlocking { fun `when refreshAll then old category recipes aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.refreshAll(listOf(RECIPE_SUMMARY_CAKE)) subject.refreshAll(listOf(RECIPE_SUMMARY_CAKE))
val actual = mealieDb.recipeDao().queryAllCategoryRecipes() val actual = appDb.recipeDao().queryAllCategoryRecipes()
assertThat(actual).containsExactly( assertThat(actual).containsExactly(
CategoryRecipeEntity(categoryId = 1, recipeId = 1), CategoryRecipeEntity(categoryId = 1, recipeId = 1),
CategoryRecipeEntity(categoryId = 2, recipeId = 1), CategoryRecipeEntity(categoryId = 2, recipeId = 1),
@@ -113,7 +113,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when refreshAll then old tag recipes aren't preserved`(): Unit = runBlocking { fun `when refreshAll then old tag recipes aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.refreshAll(listOf(RECIPE_SUMMARY_CAKE)) subject.refreshAll(listOf(RECIPE_SUMMARY_CAKE))
val actual = mealieDb.recipeDao().queryAllTagRecipes() val actual = appDb.recipeDao().queryAllTagRecipes()
assertThat(actual).containsExactly( assertThat(actual).containsExactly(
TagRecipeEntity(tagId = 1, recipeId = 1), TagRecipeEntity(tagId = 1, recipeId = 1),
TagRecipeEntity(tagId = 2, recipeId = 1), TagRecipeEntity(tagId = 2, recipeId = 1),
@@ -124,7 +124,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when clearAllLocalData then recipes aren't preserved`(): Unit = runBlocking { fun `when clearAllLocalData then recipes aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.clearAllLocalData() subject.clearAllLocalData()
val actual = mealieDb.recipeDao().queryAllRecipes() val actual = appDb.recipeDao().queryAllRecipes()
assertThat(actual).isEmpty() assertThat(actual).isEmpty()
} }
@@ -132,7 +132,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when clearAllLocalData then categories aren't preserved`(): Unit = runBlocking { fun `when clearAllLocalData then categories aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.clearAllLocalData() subject.clearAllLocalData()
val actual = mealieDb.recipeDao().queryAllCategories() val actual = appDb.recipeDao().queryAllCategories()
assertThat(actual).isEmpty() assertThat(actual).isEmpty()
} }
@@ -140,7 +140,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when clearAllLocalData then tags aren't preserved`(): Unit = runBlocking { fun `when clearAllLocalData then tags aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES) subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.clearAllLocalData() subject.clearAllLocalData()
val actual = mealieDb.recipeDao().queryAllTags() val actual = appDb.recipeDao().queryAllTags()
assertThat(actual).isEmpty() assertThat(actual).isEmpty()
} }
@@ -148,7 +148,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when saveRecipeInfo then saves recipe info`(): Unit = runBlocking { fun `when saveRecipeInfo then saves recipe info`(): Unit = runBlocking {
subject.saveRecipes(listOf(RECIPE_SUMMARY_CAKE)) subject.saveRecipes(listOf(RECIPE_SUMMARY_CAKE))
subject.saveRecipeInfo(GET_CAKE_RESPONSE) subject.saveRecipeInfo(GET_CAKE_RESPONSE)
val actual = mealieDb.recipeDao().queryFullRecipeInfo(1) val actual = appDb.recipeDao().queryFullRecipeInfo(1)
assertThat(actual).isEqualTo(FULL_CAKE_INFO_ENTITY) assertThat(actual).isEqualTo(FULL_CAKE_INFO_ENTITY)
} }
@@ -157,7 +157,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
subject.saveRecipes(listOf(RECIPE_SUMMARY_CAKE, RECIPE_SUMMARY_PORRIDGE)) subject.saveRecipes(listOf(RECIPE_SUMMARY_CAKE, RECIPE_SUMMARY_PORRIDGE))
subject.saveRecipeInfo(GET_CAKE_RESPONSE) subject.saveRecipeInfo(GET_CAKE_RESPONSE)
subject.saveRecipeInfo(GET_PORRIDGE_RESPONSE) subject.saveRecipeInfo(GET_PORRIDGE_RESPONSE)
val actual = mealieDb.recipeDao().queryFullRecipeInfo(2) val actual = appDb.recipeDao().queryFullRecipeInfo(2)
assertThat(actual).isEqualTo(FULL_PORRIDGE_INFO_ENTITY) assertThat(actual).isEqualTo(FULL_PORRIDGE_INFO_ENTITY)
} }
@@ -167,7 +167,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
subject.saveRecipeInfo(GET_CAKE_RESPONSE) subject.saveRecipeInfo(GET_CAKE_RESPONSE)
val newRecipe = GET_CAKE_RESPONSE.copy(recipeIngredients = listOf(BREAD_INGREDIENT)) val newRecipe = GET_CAKE_RESPONSE.copy(recipeIngredients = listOf(BREAD_INGREDIENT))
subject.saveRecipeInfo(newRecipe) subject.saveRecipeInfo(newRecipe)
val actual = mealieDb.recipeDao().queryFullRecipeInfo(1)?.recipeIngredients val actual = appDb.recipeDao().queryFullRecipeInfo(1)?.recipeIngredients
val expected = listOf(CAKE_BREAD_RECIPE_INGREDIENT_ENTITY.copy(localId = 3)) val expected = listOf(CAKE_BREAD_RECIPE_INGREDIENT_ENTITY.copy(localId = 3))
assertThat(actual).isEqualTo(expected) assertThat(actual).isEqualTo(expected)
} }
@@ -178,7 +178,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
subject.saveRecipeInfo(GET_CAKE_RESPONSE) subject.saveRecipeInfo(GET_CAKE_RESPONSE)
val newRecipe = GET_CAKE_RESPONSE.copy(recipeInstructions = listOf(MIX_INSTRUCTION)) val newRecipe = GET_CAKE_RESPONSE.copy(recipeInstructions = listOf(MIX_INSTRUCTION))
subject.saveRecipeInfo(newRecipe) subject.saveRecipeInfo(newRecipe)
val actual = mealieDb.recipeDao().queryFullRecipeInfo(1)?.recipeInstructions val actual = appDb.recipeDao().queryFullRecipeInfo(1)?.recipeInstructions
val expected = listOf(MIX_CAKE_RECIPE_INSTRUCTION_ENTITY.copy(localId = 3)) val expected = listOf(MIX_CAKE_RECIPE_INSTRUCTION_ENTITY.copy(localId = 3))
assertThat(actual).isEqualTo(expected) assertThat(actual).isEqualTo(expected)
} }

View File

@@ -1,15 +1,15 @@
package gq.kirmanak.mealie.data.recipes.impl package gq.kirmanak.mealient.data.recipes.impl
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.MealieDb import gq.kirmanak.mealient.data.AppDb
import gq.kirmanak.mealie.data.recipes.RecipeRepo import gq.kirmanak.mealient.data.recipes.RecipeRepo
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage import gq.kirmanak.mealient.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.test.MockServerWithAuthTest import gq.kirmanak.mealient.data.test.MockServerWithAuthTest
import gq.kirmanak.mealie.data.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY import gq.kirmanak.mealient.data.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.RECIPE_SUMMARY_CAKE import gq.kirmanak.mealient.data.test.RecipeImplTestData.RECIPE_SUMMARY_CAKE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.enqueueSuccessfulGetRecipe import gq.kirmanak.mealient.data.test.RecipeImplTestData.enqueueSuccessfulGetRecipe
import gq.kirmanak.mealie.data.test.RecipeImplTestData.enqueueUnsuccessfulRecipeResponse import gq.kirmanak.mealient.data.test.RecipeImplTestData.enqueueUnsuccessfulRecipeResponse
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.junit.Test import org.junit.Test
import javax.inject.Inject import javax.inject.Inject
@@ -23,7 +23,7 @@ class RecipeRepoImplTest : MockServerWithAuthTest() {
lateinit var storage: RecipeStorage lateinit var storage: RecipeStorage
@Inject @Inject
lateinit var mealieDb: MealieDb lateinit var appDb: AppDb
@Test @Test
fun `when loadRecipeInfo then loads recipe`(): Unit = runBlocking { fun `when loadRecipeInfo then loads recipe`(): Unit = runBlocking {
@@ -38,7 +38,7 @@ class RecipeRepoImplTest : MockServerWithAuthTest() {
storage.saveRecipes(listOf(RECIPE_SUMMARY_CAKE)) storage.saveRecipes(listOf(RECIPE_SUMMARY_CAKE))
mockServer.enqueueSuccessfulGetRecipe() mockServer.enqueueSuccessfulGetRecipe()
subject.loadRecipeInfo(1, "cake") subject.loadRecipeInfo(1, "cake")
val actual = mealieDb.recipeDao().queryFullRecipeInfo(1) val actual = appDb.recipeDao().queryFullRecipeInfo(1)
assertThat(actual).isEqualTo(FULL_CAKE_INFO_ENTITY) assertThat(actual).isEqualTo(FULL_CAKE_INFO_ENTITY)
} }

View File

@@ -1,17 +1,17 @@
package gq.kirmanak.mealie.data.recipes.impl package gq.kirmanak.mealient.data.recipes.impl
import androidx.paging.* import androidx.paging.*
import androidx.paging.LoadType.* import androidx.paging.LoadType.*
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.MealieDb import gq.kirmanak.mealient.data.AppDb
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.test.MockServerWithAuthTest import gq.kirmanak.mealient.data.test.MockServerWithAuthTest
import gq.kirmanak.mealie.data.test.RecipeImplTestData.CAKE_RECIPE_SUMMARY_ENTITY import gq.kirmanak.mealient.data.test.RecipeImplTestData.CAKE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.PORRIDGE_RECIPE_SUMMARY_ENTITY import gq.kirmanak.mealient.data.test.RecipeImplTestData.PORRIDGE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.TEST_RECIPE_ENTITIES import gq.kirmanak.mealient.data.test.RecipeImplTestData.TEST_RECIPE_ENTITIES
import gq.kirmanak.mealie.data.test.RecipeImplTestData.enqueueSuccessfulRecipeSummaryResponse import gq.kirmanak.mealient.data.test.RecipeImplTestData.enqueueSuccessfulRecipeSummaryResponse
import gq.kirmanak.mealie.data.test.RecipeImplTestData.enqueueUnsuccessfulRecipeResponse import gq.kirmanak.mealient.data.test.RecipeImplTestData.enqueueUnsuccessfulRecipeResponse
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.junit.Test import org.junit.Test
import javax.inject.Inject import javax.inject.Inject
@@ -29,7 +29,7 @@ class RecipesRemoteMediatorTest : MockServerWithAuthTest() {
lateinit var subject: RecipesRemoteMediator lateinit var subject: RecipesRemoteMediator
@Inject @Inject
lateinit var mealieDb: MealieDb lateinit var appDb: AppDb
@Test @Test
fun `when first load with refresh successful then result success`(): Unit = runBlocking { fun `when first load with refresh successful then result success`(): Unit = runBlocking {
@@ -42,7 +42,7 @@ class RecipesRemoteMediatorTest : MockServerWithAuthTest() {
fun `when first load with refresh successful then recipes stored`(): Unit = runBlocking { fun `when first load with refresh successful then recipes stored`(): Unit = runBlocking {
mockServer.enqueueSuccessfulRecipeSummaryResponse() mockServer.enqueueSuccessfulRecipeSummaryResponse()
subject.load(REFRESH, pagingState()) subject.load(REFRESH, pagingState())
val actual = mealieDb.recipeDao().queryAllRecipes() val actual = appDb.recipeDao().queryAllRecipes()
assertThat(actual).containsExactly( assertThat(actual).containsExactly(
CAKE_RECIPE_SUMMARY_ENTITY, CAKE_RECIPE_SUMMARY_ENTITY,
PORRIDGE_RECIPE_SUMMARY_ENTITY PORRIDGE_RECIPE_SUMMARY_ENTITY
@@ -110,7 +110,7 @@ class RecipesRemoteMediatorTest : MockServerWithAuthTest() {
mockServer.takeRequest() mockServer.takeRequest()
mockServer.enqueueUnsuccessfulRecipeResponse() mockServer.enqueueUnsuccessfulRecipeResponse()
subject.load(APPEND, pagingState()) subject.load(APPEND, pagingState())
val actual = mealieDb.recipeDao().queryAllRecipes() val actual = appDb.recipeDao().queryAllRecipes()
assertThat(actual).isEqualTo(TEST_RECIPE_ENTITIES) assertThat(actual).isEqualTo(TEST_RECIPE_ENTITIES)
} }

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.test package gq.kirmanak.mealient.data.test
import okhttp3.mockwebserver.MockResponse import okhttp3.mockwebserver.MockResponse
import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.MockWebServer

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.test package gq.kirmanak.mealient.data.test
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import dagger.hilt.android.testing.HiltAndroidRule import dagger.hilt.android.testing.HiltAndroidRule

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.test package gq.kirmanak.mealient.data.test
import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.MockWebServer
import org.junit.After import org.junit.After

View File

@@ -1,9 +1,9 @@
package gq.kirmanak.mealie.data.test package gq.kirmanak.mealient.data.test
import gq.kirmanak.mealie.data.auth.AuthRepo import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_PASSWORD import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_PASSWORD
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_USERNAME import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_USERNAME
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.junit.Before import org.junit.Before
import javax.inject.Inject import javax.inject.Inject

View File

@@ -1,14 +1,14 @@
package gq.kirmanak.mealie.data.test package gq.kirmanak.mealient.data.test
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeIngredientEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeIngredientEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeInstructionEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeInstructionEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeIngredientResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeIngredientResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeInstructionResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeInstructionResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime import kotlinx.datetime.LocalDateTime
import okhttp3.mockwebserver.MockResponse import okhttp3.mockwebserver.MockResponse

View File

@@ -5,5 +5,5 @@ dependencyResolutionManagement {
mavenCentral() mavenCentral()
} }
} }
rootProject.name = "Mealie" rootProject.name = "Mealient"
include ':app' include ':app'