Merge pull request 'API 1.2.5 Diet Preference, DietUserPreference' (#19) from tibor into master
Reviewed-on: https://git.workouttest.org/bossanyit/aitrainer_server/pulls/19
This commit is contained in:
commit
f61603d1ac
@ -11,7 +11,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "com.aitrainer"
|
||||
version = "1.2.4"
|
||||
version = "1.2.5"
|
||||
java.sourceCompatibility = JavaVersion.VERSION_17
|
||||
|
||||
repositories {
|
||||
@ -26,7 +26,7 @@ dependencies {
|
||||
implementation("org.springframework.boot:spring-boot-starter-validation")
|
||||
implementation("org.springframework.boot:spring-boot-starter-security")
|
||||
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
|
||||
implementation("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.6.8")
|
||||
implementation(dependencyNotation = "org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.6.8")
|
||||
implementation("org.springframework.security.oauth:spring-security-oauth2:2.5.2.RELEASE")
|
||||
implementation("javax.validation:validation-api:2.0.1.Final")
|
||||
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
|
||||
@ -38,7 +38,7 @@ dependencies {
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1")
|
||||
|
||||
implementation("io.jsonwebtoken:jjwt:0.9.1")
|
||||
implementation("org.yaml:snakeyaml:1.33")
|
||||
implementation("org.yaml:snakeyaml:2.0")
|
||||
implementation("com.google.code.gson:gson:2.10.1")
|
||||
implementation("org.json:json:20220924")
|
||||
|
||||
|
24
data/db/update_1_2_5.sql
Normal file
24
data/db/update_1_2_5.sql
Normal file
@ -0,0 +1,24 @@
|
||||
START TRANSACTION;
|
||||
|
||||
DROP TABLE `diet_user_sensitivity`;
|
||||
DROP TABLE `diet_sensitivity`;
|
||||
|
||||
CREATE TABLE `diet_preference` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`type` CHAR(50) NULL DEFAULT NULL COLLATE 'utf8_hungarian_ci',
|
||||
`preference` CHAR(100) NOT NULL DEFAULT '' COLLATE 'utf8_hungarian_ci',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
)
|
||||
COLLATE='utf8_hungarian_ci'
|
||||
ENGINE=InnoDB
|
||||
;
|
||||
|
||||
ALTER TABLE `diet_user_preference`
|
||||
CHANGE COLUMN `raw_material_id` `diet_preference_id` INT(11) NULL DEFAULT '0' AFTER `diet_user_id`,
|
||||
ADD COLUMN `preference` CHAR(100) NULL DEFAULT NULL AFTER `diet_preference_id`,
|
||||
ADD COLUMN `preference_type` CHAR(50) NULL DEFAULT NULL AFTER `preference`,
|
||||
DROP COLUMN `temperature`;
|
||||
|
||||
UPDATE configuration set config_value = "1.2.5", date_change=CURRENT_DATE WHERE config_key = "db_version";
|
||||
|
||||
COMMIT;
|
@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api")
|
||||
class CustomerPackageController( private val customerRepository: CustomerRepository,
|
||||
class CustomerPackageController(private val customerRepository: CustomerRepository,
|
||||
private val customerExerciseDeviceRepository: CustomerExerciseDeviceRepository,
|
||||
private val exercisesRepository: ExercisesRepository,
|
||||
private val purchaseRepository: PurchaseRepository,
|
||||
@ -27,7 +27,6 @@ class CustomerPackageController( private val customerRepository: CustomerReposit
|
||||
private val dietUserConsumptionRepository: DietUserConsumptionRepository,
|
||||
private val dietUserRepository: DietUserRepository,
|
||||
private val dietUserPreferenceRepository: DietUserPreferenceRepository,
|
||||
private val dietUserSensitivityRepository: DietUserSensitivityRepository,
|
||||
private val customerConversationRepository: CustomerConversationRepository
|
||||
|
||||
) {
|
||||
@ -62,9 +61,6 @@ class CustomerPackageController( private val customerRepository: CustomerReposit
|
||||
val listDietUserPreference = dietUserPreferenceRepository.findByDietUserId(dietUserId)
|
||||
val listDietUserPreferenceJson = gson.toJson(listDietUserPreference)
|
||||
|
||||
val listDietUserSensitivity = dietUserSensitivityRepository.findByDietUserId(dietUserId)
|
||||
val listDietUserSensitivityJson = gson.toJson(listDietUserSensitivity)
|
||||
|
||||
val listCustomerConversation = customerConversationRepository.findByCustomerId(customerId)
|
||||
val listCustomerConversationJson = gson.toJson(listCustomerConversation)
|
||||
|
||||
@ -74,7 +70,6 @@ class CustomerPackageController( private val customerRepository: CustomerReposit
|
||||
"|||" + getClassRecord(Diet::class.simpleName, listDietJson) +
|
||||
"|||" + getClassRecord(DietUserConsumption::class.simpleName, listDietUserConsumptionJson) +
|
||||
"|||" + getClassRecord(DietUserPreference::class.simpleName, listDietUserPreferenceJson) +
|
||||
"|||" + getClassRecord(DietUserSensitivity::class.simpleName, listDietUserSensitivityJson) +
|
||||
"|||" + getClassRecord(CustomerConversation::class.simpleName, listCustomerConversationJson)
|
||||
|
||||
return if (packageJson.isEmpty()) ResponseEntity.notFound().build() else
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.aitrainer.api.controller
|
||||
|
||||
import com.aitrainer.api.model.*
|
||||
import com.aitrainer.api.model.diet.DietSensitivity
|
||||
import com.aitrainer.api.model.diet.DietPreference
|
||||
import com.aitrainer.api.model.diet.Meal
|
||||
import com.aitrainer.api.model.diet.Recipe
|
||||
import com.aitrainer.api.model.diet.Store
|
||||
@ -38,7 +38,7 @@ class PackageController(private val exerciseAbilityRepository: ExerciseAbilityRe
|
||||
private val storeRepository: StoreRepository,
|
||||
private val recipeRepository: RecipeRepository,
|
||||
private val mealRepository: MealRepository,
|
||||
private val dietSensitivityRepository: DietSensitivityRepository
|
||||
private val dietPreferenceRepository: DietPreferenceRepository
|
||||
) {
|
||||
|
||||
@GetMapping("/diet_package", produces = [MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8"])
|
||||
@ -63,7 +63,7 @@ class PackageController(private val exerciseAbilityRepository: ExerciseAbilityRe
|
||||
val listRawMaterial = mealRepository.findAll()
|
||||
val listRawMaterialJson = gson.toJson(listRawMaterial)
|
||||
|
||||
val listDietSensitivity = dietSensitivityRepository.findAll()
|
||||
val listDietSensitivity = dietPreferenceRepository.findAll()
|
||||
val listDietSensitivityJson = gson.toJson(listDietSensitivity)
|
||||
|
||||
val listAppText = appTextRepository.findAllWithTranslation()
|
||||
@ -75,7 +75,7 @@ class PackageController(private val exerciseAbilityRepository: ExerciseAbilityRe
|
||||
"|||" + getClassRecord(Store::class.simpleName, listStoreJson) +
|
||||
"|||" + getClassRecord(Recipe::class.simpleName, listRecipeJson) +
|
||||
"|||" + getClassRecord(Meal::class.simpleName, listRawMaterialJson) +
|
||||
"|||" + getClassRecord(DietSensitivity::class.simpleName, listDietSensitivityJson) +
|
||||
"|||" + getClassRecord(DietPreference::class.simpleName, listDietSensitivityJson) +
|
||||
"|||" + getClassRecord(AppText::class.simpleName, listAppTextJson)
|
||||
|
||||
return if (packageJson.isEmpty()) ResponseEntity.notFound().build() else
|
||||
|
@ -1,24 +0,0 @@
|
||||
package com.aitrainer.api.controller.diet
|
||||
|
||||
import com.aitrainer.api.model.diet.DietSensitivity
|
||||
import com.aitrainer.api.repository.diet.DietSensitivityRepository
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.*
|
||||
|
||||
@RestController
|
||||
@RequestMapping("api")
|
||||
class DietSensitivityController(private val dietSensitivityRepository: DietSensitivityRepository) {
|
||||
|
||||
@PostMapping ("/diet_sensitivity")
|
||||
fun insert(@RequestBody dietSensitivity: DietSensitivity): ResponseEntity<DietSensitivity> {
|
||||
val newDietSensitivity = dietSensitivityRepository.save(dietSensitivity)
|
||||
return ResponseEntity.ok().body(newDietSensitivity)
|
||||
}
|
||||
|
||||
@GetMapping("/diet_sensitivity")
|
||||
fun getAll(): ResponseEntity<List<DietSensitivity>> {
|
||||
val list = dietSensitivityRepository.findAll()
|
||||
return if (list.isEmpty()) ResponseEntity.notFound().build() else
|
||||
ResponseEntity.ok().body(list)
|
||||
}
|
||||
}
|
@ -22,4 +22,16 @@ class DietUserPreferenceController(private val dietUserPreferenceRepository: Die
|
||||
return if (list.isEmpty()) ResponseEntity.notFound().build() else
|
||||
ResponseEntity.ok().body(list)
|
||||
}
|
||||
|
||||
@GetMapping("/diet_user_preference/preference/{dietPreferenceId}")
|
||||
fun getByDietPreferenceIdId(@PathVariable dietPreferenceId: Long): ResponseEntity<List<DietUserPreference>> {
|
||||
val list = dietUserPreferenceRepository.findByDietPreferenceId(dietPreferenceId)
|
||||
return if (list.isEmpty()) ResponseEntity.notFound().build() else
|
||||
ResponseEntity.ok().body(list)
|
||||
}
|
||||
|
||||
@PostMapping("/diet_user_preference/delete", produces = [MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8"])
|
||||
fun delete(@RequestBody dietUserPreference: DietUserPreference): ResponseEntity<*> {
|
||||
return ResponseEntity.ok().body(dietUserPreferenceRepository.delete(dietUserPreference))
|
||||
}
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
package com.aitrainer.api.controller.diet
|
||||
|
||||
import com.aitrainer.api.model.diet.DietUserSensitivity
|
||||
import com.aitrainer.api.repository.diet.DietUserSensitivityRepository
|
||||
import org.springframework.http.MediaType
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.*
|
||||
import java.util.*
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api")
|
||||
class DietUserSensitivityController(private val dietUserSensitivityRepository: DietUserSensitivityRepository) {
|
||||
|
||||
@PostMapping("/diet_user_sensitivity", produces = [MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8"])
|
||||
fun insert(@RequestBody dietUserSensitivity: DietUserSensitivity): ResponseEntity<*> {
|
||||
return ResponseEntity.ok().body(dietUserSensitivityRepository.save(dietUserSensitivity))
|
||||
}
|
||||
|
||||
@GetMapping("/diet_user_sensitivity/{dietUserId}")
|
||||
fun getByDietUserId(@PathVariable dietUserId: Long): ResponseEntity<List<DietUserSensitivity>> {
|
||||
val list = dietUserSensitivityRepository.findByDietUserId(dietUserId)
|
||||
return if (list.isEmpty()) ResponseEntity.notFound().build() else
|
||||
ResponseEntity.ok().body(list)
|
||||
}
|
||||
}
|
@ -8,7 +8,8 @@ import jakarta.persistence.Id
|
||||
import javax.validation.constraints.NotNull
|
||||
|
||||
@Entity
|
||||
data class DietSensitivity(
|
||||
data class DietPreference(
|
||||
@Expose @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long = 0,
|
||||
@Expose @get: NotNull val name: String = "",
|
||||
@Expose @get: NotNull val type: String = "",
|
||||
@Expose @get: NotNull val preference: String = "",
|
||||
)
|
@ -11,6 +11,7 @@ import javax.validation.constraints.NotNull
|
||||
data class DietUserPreference(
|
||||
@Expose @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long = 0,
|
||||
@Expose @get: NotNull val dietUserId: Long = 0,
|
||||
@Expose @get: NotNull val rawMaterialId: Long = 0,
|
||||
@Expose @get: NotNull val temperature: Byte = 0,
|
||||
@Expose @get: NotNull val dietPreferenceId: Long = 0,
|
||||
@Expose @get: NotNull val preference: String = "",
|
||||
@Expose @get: NotNull val preferenceType: String = "",
|
||||
)
|
@ -1,15 +0,0 @@
|
||||
package com.aitrainer.api.model.diet
|
||||
|
||||
import com.google.gson.annotations.Expose
|
||||
import jakarta.persistence.Entity
|
||||
import jakarta.persistence.GeneratedValue
|
||||
import jakarta.persistence.GenerationType
|
||||
import jakarta.persistence.Id
|
||||
import javax.validation.constraints.NotNull
|
||||
|
||||
@Entity
|
||||
data class DietUserSensitivity(
|
||||
@Expose @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long = 0,
|
||||
@Expose @get: NotNull val dietUserId: Long = 0,
|
||||
@Expose @get: NotNull val sensitivityId: Long = 0,
|
||||
)
|
@ -0,0 +1,6 @@
|
||||
package com.aitrainer.api.repository.diet
|
||||
|
||||
import com.aitrainer.api.model.diet.DietPreference
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
|
||||
interface DietPreferenceRepository : JpaRepository<DietPreference, Int>
|
@ -1,6 +0,0 @@
|
||||
package com.aitrainer.api.repository.diet
|
||||
|
||||
import com.aitrainer.api.model.diet.DietSensitivity
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
|
||||
interface DietSensitivityRepository : JpaRepository<DietSensitivity, Int>
|
@ -7,4 +7,6 @@ import org.springframework.stereotype.Repository
|
||||
@Repository
|
||||
interface DietUserPreferenceRepository : JpaRepository<DietUserPreference, Long> {
|
||||
fun findByDietUserId(dietUserId: Long): List<DietUserPreference>
|
||||
|
||||
fun findByDietPreferenceId(dietPreferenceId: Long): List<DietUserPreference>
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package com.aitrainer.api.repository.diet
|
||||
|
||||
import com.aitrainer.api.model.diet.DietUserSensitivity
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
import org.springframework.stereotype.Repository
|
||||
|
||||
@Repository
|
||||
interface DietUserSensitivityRepository : JpaRepository<DietUserSensitivity, Long> {
|
||||
fun findByDietUserId(dietUserId: Long): List<DietUserSensitivity>
|
||||
}
|
@ -16,7 +16,7 @@ logging.config=classpath:logback-spring.xml
|
||||
logging.file=logs
|
||||
|
||||
# if the database structure has been changed, increment this version number
|
||||
application.version=1.2.4
|
||||
application.version=1.2.5
|
||||
|
||||
jwt.secret=aitrainer
|
||||
|
||||
|
@ -14,7 +14,7 @@ logging.config=classpath:logback-spring.xml
|
||||
logging.file=logs
|
||||
|
||||
# if the database structue has been changed, increment this version number
|
||||
application.version=1.2.4
|
||||
application.version=1.2.5
|
||||
|
||||
jwt.secret=aitrainer
|
||||
|
||||
|
@ -14,7 +14,7 @@ logging.config=classpath:logback-spring.xml
|
||||
logging.file=logs
|
||||
|
||||
# if the database structue has been changed, increment this version number
|
||||
application.version=1.2.4
|
||||
application.version=1.2.5
|
||||
|
||||
jwt.secret=aitrainer
|
||||
|
||||
|
@ -17,7 +17,7 @@ logging.config=classpath:logback-spring.xml
|
||||
logging.file=logs
|
||||
|
||||
# if the database structure has been changed, increment this version number
|
||||
application.version=1.2.4
|
||||
application.version=1.2.5
|
||||
|
||||
jwt.secret=aitrainer
|
||||
|
||||
|
@ -59,9 +59,6 @@ class AppCustomerPackageTest {
|
||||
@Autowired
|
||||
private lateinit var dietUserPreferenceRepository: DietUserPreferenceRepository
|
||||
|
||||
@Autowired
|
||||
private lateinit var dietUserSensitivityRepository: DietUserSensitivityRepository
|
||||
|
||||
@Autowired
|
||||
private lateinit var customerConversationRepository: CustomerConversationRepository
|
||||
|
||||
@ -83,7 +80,6 @@ class AppCustomerPackageTest {
|
||||
dietUserConsumptionRepository,
|
||||
dietUserRepository,
|
||||
dietUserPreferenceRepository,
|
||||
dietUserSensitivityRepository,
|
||||
customerConversationRepository
|
||||
)
|
||||
|
||||
@ -130,15 +126,8 @@ class AppCustomerPackageTest {
|
||||
val type = object : TypeToken<List<DietUserPreference?>?>() {}.type
|
||||
val list: List<DietUserPreference> = gson.fromJson(dietUserPreferenceJson, type)
|
||||
assertEquals(list[0].dietUserId, 2)
|
||||
assertEquals(list[0].temperature, -1)
|
||||
}
|
||||
|
||||
record[0] == DietUserSensitivity::class.simpleName -> {
|
||||
val dietUserSensitivityJson: String = record[1]
|
||||
val type = object : TypeToken<List<DietUserSensitivity?>?>() {}.type
|
||||
val list: List<DietUserSensitivity> = gson.fromJson(dietUserSensitivityJson, type)
|
||||
assertEquals(list[0].dietUserId, 2)
|
||||
assertEquals(list[0].sensitivityId, 1)
|
||||
assertEquals(list[0].dietPreferenceId, 10)
|
||||
assertEquals(list[1].preference, "Cukorbetegség")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -162,7 +151,6 @@ class AppCustomerPackageTest {
|
||||
dietUserConsumptionRepository,
|
||||
dietUserRepository,
|
||||
dietUserPreferenceRepository,
|
||||
dietUserSensitivityRepository,
|
||||
customerConversationRepository
|
||||
)
|
||||
|
||||
@ -217,7 +205,6 @@ class AppCustomerPackageTest {
|
||||
dietUserConsumptionRepository,
|
||||
dietUserRepository,
|
||||
dietUserPreferenceRepository,
|
||||
dietUserSensitivityRepository,
|
||||
customerConversationRepository)
|
||||
|
||||
var response: ResponseEntity<*> = controller.getCustomerPackageData(91)
|
||||
|
@ -2,7 +2,7 @@ package com.aitrainer.api.test
|
||||
|
||||
import com.aitrainer.api.controller.PackageController
|
||||
import com.aitrainer.api.model.*
|
||||
import com.aitrainer.api.model.diet.DietSensitivity
|
||||
import com.aitrainer.api.model.diet.DietPreference
|
||||
import com.aitrainer.api.model.diet.Meal
|
||||
import com.aitrainer.api.model.diet.Recipe
|
||||
import com.aitrainer.api.model.diet.Store
|
||||
@ -62,7 +62,7 @@ class AppPackageTest {
|
||||
private lateinit var membershipRepository: MembershipRepository
|
||||
|
||||
@Autowired
|
||||
private lateinit var dietSensitivityRepository: DietSensitivityRepository
|
||||
private lateinit var dietPreferenceRepository: DietPreferenceRepository
|
||||
|
||||
@Autowired
|
||||
private lateinit var mealRepository: MealRepository
|
||||
@ -101,7 +101,7 @@ class AppPackageTest {
|
||||
storeRepository,
|
||||
recipeRepository,
|
||||
mealRepository,
|
||||
dietSensitivityRepository,
|
||||
dietPreferenceRepository,
|
||||
)
|
||||
val response: ResponseEntity<*> = controller.getDietPackageData()
|
||||
|
||||
@ -149,13 +149,13 @@ class AppPackageTest {
|
||||
assertEquals(list[0].calMin, 70.0)
|
||||
assertEquals(list[0].proteinMax, 25.0)
|
||||
assertEquals(list[1].name, "Tigris buci1")
|
||||
} else if ( record[0] == DietSensitivity::class.simpleName) {
|
||||
val dietSensitivityJson: String = record[1]
|
||||
val type = object : TypeToken<List<DietSensitivity?>?>() {}.type
|
||||
val list: List<DietSensitivity> = gson.fromJson(dietSensitivityJson, type)
|
||||
} else if ( record[0] == DietPreference::class.simpleName) {
|
||||
val dietPreferenceJson: String = record[1]
|
||||
val type = object : TypeToken<List<DietPreference?>?>() {}.type
|
||||
val list: List<DietPreference> = gson.fromJson(dietPreferenceJson, type)
|
||||
assertTrue(list.isNotEmpty())
|
||||
assertEquals(list[0].name, "Nut Allergy")
|
||||
assertEquals(list[1].name, "Penicillin sensitivity")
|
||||
assertEquals(list[0].preference, "Nut Allergy")
|
||||
assertEquals(list[1].preference, "Penicillin sensitivity")
|
||||
} else if ( record[0] == AppText::class.simpleName) {
|
||||
val appTextJson: String = record[1]
|
||||
val type = object : TypeToken<List<AppText?>?>() {}.type
|
||||
@ -199,7 +199,7 @@ class AppPackageTest {
|
||||
storeRepository,
|
||||
recipeRepository,
|
||||
mealRepository,
|
||||
dietSensitivityRepository,
|
||||
dietPreferenceRepository,
|
||||
)
|
||||
val response: ResponseEntity<*> = controller.getClubPackageData()
|
||||
|
||||
@ -259,7 +259,7 @@ class AppPackageTest {
|
||||
storeRepository,
|
||||
recipeRepository,
|
||||
mealRepository,
|
||||
dietSensitivityRepository,
|
||||
dietPreferenceRepository,
|
||||
)
|
||||
val response: ResponseEntity<*> = controller.getPackageData()
|
||||
|
||||
|
@ -1,70 +0,0 @@
|
||||
package com.aitrainer.api.test.diet
|
||||
|
||||
import com.aitrainer.api.model.diet.DietSensitivity
|
||||
import com.aitrainer.api.test.Tokenizer
|
||||
import com.google.gson.Gson
|
||||
import org.junit.jupiter.api.BeforeAll
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.TestInstance
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
import org.springframework.http.MediaType
|
||||
import org.springframework.test.web.servlet.MockMvc
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
|
||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.*
|
||||
|
||||
@SpringBootTest
|
||||
@AutoConfigureMockMvc
|
||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||
class DietSensitivityTest {
|
||||
|
||||
@Autowired
|
||||
lateinit var mockMvc: MockMvc
|
||||
|
||||
private var authToken: String? = ""
|
||||
|
||||
@BeforeAll
|
||||
fun initTest() {
|
||||
authToken = Tokenizer.getToken()
|
||||
}
|
||||
|
||||
private val dietSensitivity = DietSensitivity(1, name = "Nut Allergy")
|
||||
private val dietSensitivity2 = DietSensitivity(2, name = "Penicillin sensitivity")
|
||||
|
||||
@Test
|
||||
fun `insert diet sensitivity successfully`() {
|
||||
|
||||
val gson = Gson()
|
||||
|
||||
mockMvc.perform(
|
||||
post("/api/diet_sensitivity")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.header("Authorization", "Bearer $authToken")
|
||||
.content(gson.toJson(dietSensitivity))
|
||||
)
|
||||
.andExpect(status().isOk)
|
||||
.andExpect(jsonPath("$.name").value("Nut Allergy"))
|
||||
|
||||
mockMvc.perform(
|
||||
post("/api/diet_sensitivity")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.header("Authorization", "Bearer $authToken")
|
||||
.content(gson.toJson(dietSensitivity2))
|
||||
)
|
||||
.andExpect(status().isOk)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `get all diet sensitivity successfully`() {
|
||||
|
||||
mockMvc.perform(get("/api/diet_sensitivity")
|
||||
.header("Authorization", "Bearer $authToken")
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk)
|
||||
.andExpect(jsonPath("$.[0].name").value("Nut Allergy"))
|
||||
.andExpect(jsonPath("$.[1].name").value("Penicillin sensitivity"))
|
||||
}
|
||||
|
||||
}
|
@ -28,17 +28,16 @@ class DietUserPreferenceTest {
|
||||
private lateinit var mockMvc: MockMvc
|
||||
|
||||
private val dietUserPreference = DietUserPreference(
|
||||
id = 1,
|
||||
rawMaterialId = 10,
|
||||
dietPreferenceId = 10,
|
||||
dietUserId = 5,
|
||||
temperature = -1
|
||||
preference = ""
|
||||
)
|
||||
|
||||
private val dietUserPreference2 = DietUserPreference(
|
||||
id = 2,
|
||||
rawMaterialId = 11,
|
||||
dietPreferenceId = 0,
|
||||
dietUserId = 5,
|
||||
temperature = 1
|
||||
preference = "Cukorbetegség",
|
||||
preferenceType = "betegség"
|
||||
)
|
||||
|
||||
private var authToken: String = ""
|
||||
@ -60,8 +59,9 @@ class DietUserPreferenceTest {
|
||||
)
|
||||
.andExpect(status().isOk)
|
||||
.andExpect(jsonPath("$.dietUserId").value(5))
|
||||
.andExpect(jsonPath("$.rawMaterialId").value(10))
|
||||
.andExpect(jsonPath("$.temperature").value(-1))
|
||||
.andExpect(jsonPath("$.dietPreferenceId").value(10))
|
||||
.andExpect(jsonPath("$.preference").value(""))
|
||||
.andExpect(jsonPath("$.preferenceType").value(""))
|
||||
|
||||
mockMvc.perform(
|
||||
MockMvcRequestBuilders.post("/api/diet_user_preference")
|
||||
@ -70,20 +70,37 @@ class DietUserPreferenceTest {
|
||||
.content(toJson(dietUserPreference2))
|
||||
)
|
||||
.andExpect(status().isOk)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `get dietUserPreference list by dietUserId id successfully`() {
|
||||
|
||||
// Act & Assert
|
||||
mockMvc.perform(get("/api/diet_user_preference/{dietUserId}", 5)
|
||||
.header("Authorization", "Bearer $authToken")
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk)
|
||||
.andExpect(jsonPath("$.[0].temperature").value(-1))
|
||||
.andExpect(jsonPath("$.[0].rawMaterialId").value(10))
|
||||
.andExpect(jsonPath("$.[1].temperature").value(1))
|
||||
.andExpect(jsonPath("$.[1].rawMaterialId").value(11))
|
||||
.andExpect(jsonPath("$.[0].dietPreferenceId").value(10))
|
||||
.andExpect(jsonPath("$.[0].preference").value(""))
|
||||
.andExpect(jsonPath("$.[1].preference").value("Cukorbetegség"))
|
||||
|
||||
val dietUserPreference3 = DietUserPreference(
|
||||
dietPreferenceId = 0,
|
||||
dietUserId = 5,
|
||||
preference = "Ebéd-Vacsora egyben",
|
||||
preferenceType = "egyéb"
|
||||
)
|
||||
|
||||
mockMvc.perform(
|
||||
MockMvcRequestBuilders.post("/api/diet_user_preference")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.header("Authorization", "Bearer $authToken")
|
||||
.content(toJson(dietUserPreference3))
|
||||
)
|
||||
.andExpect(status().isOk)
|
||||
|
||||
mockMvc.perform(
|
||||
MockMvcRequestBuilders.post("/api/diet_user_preference/delete")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.header("Authorization", "Bearer $authToken")
|
||||
.content(toJson(dietUserPreference3))
|
||||
)
|
||||
.andExpect(status().isOk)
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,69 +0,0 @@
|
||||
package com.aitrainer.api.test.diet
|
||||
|
||||
import com.aitrainer.api.model.diet.DietUserSensitivity
|
||||
import com.aitrainer.api.test.Tokenizer
|
||||
import com.google.gson.Gson
|
||||
import org.junit.jupiter.api.BeforeAll
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.TestInstance
|
||||
import org.junit.jupiter.api.extension.ExtendWith
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
import org.springframework.http.MediaType
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension
|
||||
import org.springframework.test.web.servlet.MockMvc
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
|
||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.*
|
||||
|
||||
|
||||
@ExtendWith(SpringExtension::class)
|
||||
@SpringBootTest
|
||||
@AutoConfigureMockMvc
|
||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||
class DietUserSensitivityTest {
|
||||
|
||||
@Autowired
|
||||
private lateinit var mockMvc: MockMvc
|
||||
|
||||
private val dietUserSensitivity = DietUserSensitivity(
|
||||
sensitivityId = 1,
|
||||
dietUserId = 5,
|
||||
)
|
||||
private var authToken: String = ""
|
||||
|
||||
@BeforeAll
|
||||
fun initTest() {
|
||||
authToken = Tokenizer.getToken()
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun `insert dietUserSensitivity successfully`() {
|
||||
|
||||
mockMvc.perform(
|
||||
MockMvcRequestBuilders.post("/api/diet_user_sensitivity")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.header("Authorization", "Bearer $authToken")
|
||||
.content(toJson(dietUserSensitivity))
|
||||
)
|
||||
.andExpect(status().isOk)
|
||||
.andExpect(jsonPath("$.dietUserId").value(5))
|
||||
.andExpect(jsonPath("$.sensitivityId").value(1))
|
||||
|
||||
// Act & Assert
|
||||
mockMvc.perform(get("/api/diet_user_sensitivity/{dietUserId}", 5)
|
||||
.header("Authorization", "Bearer $authToken")
|
||||
.contentType(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk)
|
||||
.andExpect(jsonPath("$.[0].dietUserId").value(5))
|
||||
.andExpect(jsonPath("$.[0].sensitivityId").value(1))
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun toJson(obj: Any): String {
|
||||
return Gson().toJson(obj)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user