169 похожих чатов

Написал метод который возвращает ДТОшку override fun getSurveyUsers(surveyId: Long):

SurveyUsersDto {
val completedUserDto = mapToDto(surveyCompleteStatusRepository.findCompletedUsers(surveyId))
val notCompletedUserDto = mapToDto(surveyCompleteStatusRepository.findNotCompletedUsers(surveyId))
return SurveyUsersDto(
surveyId = surveyId,
isCompleted = completedUserDto,
isNotCompleted = notCompletedUserDto
)
}

этот просто мапит

private fun mapToDto(completedUsers: List<SurveyCompleteStatusDo>): List<SurveyUserDto> {
val userIdList = completedUsers.mapNotNull { it.userProfileId }
val userLoginList = userIdList.mapNotNull { userId ->
userProfileRepository.findById(userId)?.login
}
val completedUserDto = userIdList.zip(userLoginList).map { (userId, userLogin) ->
SurveyUserDto(
userProfileId = userId,
userLogin = userLogin
)
}
return completedUserDto
}

на выходе получем такую шляпу:

@Schema(description = "DTO с информацией о пользователе, прошедшем или не прошедшем опрос")
data class SurveyUserDto(
@Schema(description = "Идентификатор пользователя")
var userProfileId: Long? = null,

@Schema(description = "Логин пользователя")
var userLogin: String? = null
)

data class SurveyUsersDto(
@Schema(description = "Идентификатор опроса")
@JsonProperty("surveyId")
var surveyId: Long? = null,

@Schema(description = "Список пользователей, прошедших опрос")
@JsonProperty("isCompleted")
var isCompleted: List<SurveyUserDto>? = null,

@Schema(description = "Список пользователей, не прошедших опрос")
@JsonProperty("isNotCompleted")
var isNotCompleted: List<SurveyUserDto>? = null
)


т.е финальный жысон имеет вид
surveyId
isCompleted : список
isNotCompleted: список

но по итогу имеем : что в свагере отображается лишь surveyId

а поля завершено или нет - не отображаются

написан тест (сотв-но он тоже падает с ошибкой java.lang.AssertionError: No value at JSON path "$.isCompleted[0].userProfileId"):

@Test
fun testGetSurveyUsers() {
val surveyAdminService = Mockito.mock(SurveyAdminService::class.java)

val completedUserDto = SurveyUserDto(userProfileId = 1L, userLogin = "user1")
val notCompletedUserDto = SurveyUserDto(userProfileId = 2L, userLogin = "user2")

val surveyUsersDto = SurveyUsersDto(
surveyId = 1L,
isCompleted = listOf(completedUserDto),
isNotCompleted = listOf(notCompletedUserDto)
)

Mockito.`when`(surveyAdminService.getSurveyUsers(1L)).thenReturn(surveyUsersDto)
val surveyAdminController = SurveyAdminController(surveyAdminService)

val mockMvc: MockMvc = MockMvcBuilders.standaloneSetup(surveyAdminController).build()
val token = Tokens.USER

mockMvc.perform(
MockMvcRequestBuilders.get("/ns/survey/users/1")
.contentType(MediaType.APPLICATION_JSON)
.headers(token.getAuthorisationHeaders())
)
.andExpect(MockMvcResultMatchers.status().isOk)
.andExpect(MockMvcResultMatchers.jsonPath("$.surveyId").exists())
.andExpect(MockMvcResultMatchers.jsonPath("$.isCompleted[0].userProfileId").exists())
.andExpect(MockMvcResultMatchers.jsonPath("$.isCompleted[0].userLogin").exists())
.andExpect(MockMvcResultMatchers.jsonPath("$.isNotCompleted[0].userProfileId").exists())
.andExpect(MockMvcResultMatchers.jsonPath("$.isNotCompleted[0].userLogin").exists())
}

вопрос: пасаны куда копать??? уже аноташки JsonProperty перепробовал...такое ощущение что что-то не так с парсингом в жысон, вернее там оно и есть ... но как поправить

при этом если просто вывести обьект дтошки в консольку - он нормально отображается, а если ехать дальше через контроллер - там уже куй

3 ответов

61 просмотр

На пастбин лучше

Kirill-Gorkiy Автор вопроса

да и вообще урл на получение как бы одного пользователя, а возвращаешь ты userSDto, и проверяешь есть ли поле, в userDto, когда на самом деле у тебя в userSDto лежат листы

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта