Size: a a a

Spring Framework and more

2019 July 23

ХМ

Хамид Мамытов in Spring Framework and more
контролле теперь на выходе ничего не возвращает
источник

ХМ

Хамид Мамытов in Spring Framework and more
java.lang.AssertionError: No value at JSON path "$.responseCode", exception: json can not be null or empty
источник

PB

Pavel Bukhmatov in Spring Framework and more
Хм, в теории такой способ мока тоже должен работать, хотя сам так никогда не делал)
А попробуйте посмотреть в дебагере, у вас хешкоды сервиса в тесте и в контролере совпадают? Т.е. это один и тот же объект из контекста?
источник

ХМ

Хамид Мамытов in Spring Framework and more
Pavel Bukhmatov
Хм, в теории такой способ мока тоже должен работать, хотя сам так никогда не делал)
А попробуйте посмотреть в дебагере, у вас хешкоды сервиса в тесте и в контролере совпадают? Т.е. это один и тот же объект из контекста?
да хеши теже
источник

PB

Pavel Bukhmatov in Spring Framework and more
Тогда у меня из головы осталось последнее предположение)
мокается только по совпадению apiRequest.getBody().

hashCode объекта, возвращаемого этим методом в тесте (при создании мока) совпадает с хешкодом объекта, получаемого внутри контроллера?
источник

ХМ

Хамид Мамытов in Spring Framework and more
Pavel Bukhmatov
Тогда у меня из головы осталось последнее предположение)
мокается только по совпадению apiRequest.getBody().

hashCode объекта, возвращаемого этим методом в тесте (при создании мока) совпадает с хешкодом объекта, получаемого внутри контроллера?
да объект один и тот же , по поводу "мокается только по совпадению apiRequest.getBody()" тоже проверял, может ли быть такое что ComplitableFuture еще не отработал но тест уже закончился?
источник

PB

Pavel Bukhmatov in Spring Framework and more
Хамид Мамытов
да объект один и тот же , по поводу "мокается только по совпадению apiRequest.getBody()" тоже проверял, может ли быть такое что ComplitableFuture еще не отработал но тест уже закончился?
Там же buildSuggestResponse() должен завершенную фьючу возвращать, разве нет?
источник

ХМ

Хамид Мамытов in Spring Framework and more
Pavel Bukhmatov
Там же buildSuggestResponse() должен завершенную фьючу возвращать, разве нет?
не совсем... CompletableFuture<ApiResponse<SuggestResponseData>>
источник

PB

Pavel Bukhmatov in Spring Framework and more
Хамид Мамытов
не совсем... CompletableFuture<ApiResponse<SuggestResponseData>>
Я к тому, она создается же через конструктор? Т.е. у нее result уже заполнен к моменту прокидывания ее из мока.
Кстати да, если в дебаге встать сразу за выход из вызова сервиса в контролере, но до завершения метода контроллера, там результат есть во фьюче?
источник

ХМ

Хамид Мамытов in Spring Framework and more
нет там я словил npe
источник

PB

Pavel Bukhmatov in Spring Framework and more
Где именно? Сразу после выхода из сервиса? Т.е. вместо CompletableFuture пришел null?
Или фьюча вернулась, но у нее в result лежит null?

Если первый вариант, кажется что оно просто не мокается.
источник

ХМ

Хамид Мамытов in Spring Framework and more
здесь следующий шаг после thenapply падает с npe
источник

ХМ

Хамид Мамытов in Spring Framework and more
Pavel Bukhmatov
Где именно? Сразу после выхода из сервиса? Т.е. вместо CompletableFuture пришел null?
Или фьюча вернулась, но у нее в result лежит null?

Если первый вариант, кажется что оно просто не мокается.
mock работает
источник

PB

Pavel Bukhmatov in Spring Framework and more
Походу дейсвительно мок работает.
Тогда можно попробовать получить результат от mockMvc
MvcResult result = mockMvc
               .perform(post("bla-bla")
                       .contentType(APPLICATION_JSON))
               .andReturn();
и посмотреть, что в нем)
Пишут вообще, что обработку асинхронного результата надо делать так:
MvcResult result = mockMvc
  <...>
  .andReturn();

mockMvc
               .perform(asyncDispatch(result))
               .andExpect(status().isOk())
               <...>
источник

ХМ

Хамид Мамытов in Spring Framework and more
Pavel Bukhmatov
Походу дейсвительно мок работает.
Тогда можно попробовать получить результат от mockMvc
MvcResult result = mockMvc
               .perform(post("bla-bla")
                       .contentType(APPLICATION_JSON))
               .andReturn();
и посмотреть, что в нем)
Пишут вообще, что обработку асинхронного результата надо делать так:
MvcResult result = mockMvc
  <...>
  .andReturn();

mockMvc
               .perform(asyncDispatch(result))
               .andExpect(status().isOk())
               <...>
эх точно так и пишут что мокмвиси не ждет пока асинхронный метод отработает...
источник

W

Warheart in Spring Framework and more
Народ, а какие варианты есть повесить констрейнт на несколько полей энтити, включающее nullable поле( чтобы констрейт не рвал если несколько null записей) ??
думал UniqueConstraint так может, но оказывается по видимому нет
источник

КМ

Кирилл Матросов in Spring Framework and more
всем привет.
Сделал вход через гугл (spring security)
возможно ли перехватить авторизацию и сначала проверить наличие такого пользователя в бд?
источник

S🕶

Sander 🕶 in Spring Framework and more
Всем привет,
кто как в spring security валидирует сколько раз ошибся человек вводя логин и пароль?

1) и где вы храните эти данные? с одним сервером все просто, а если их много?
2) как вы хендлите/обрабатываете, если пользователь ошибся вводя логин/пароль в rest-api POST запросе,

- для 2-второго вопроса, я нашел вот такой способ в spring security, но правильный ли это способ?

.and()
.exceptionHandling()
.accessDeniedHandler(accessDeniedHandler)
.authenticationEntryPoint(authenticationEntryPoint)
источник

ИТ

Иван Темерёв in Spring Framework and more
Sander 🕶
Всем привет,
кто как в spring security валидирует сколько раз ошибся человек вводя логин и пароль?

1) и где вы храните эти данные? с одним сервером все просто, а если их много?
2) как вы хендлите/обрабатываете, если пользователь ошибся вводя логин/пароль в rest-api POST запросе,

- для 2-второго вопроса, я нашел вот такой способ в spring security, но правильный ли это способ?

.and()
.exceptionHandling()
.accessDeniedHandler(accessDeniedHandler)
.authenticationEntryPoint(authenticationEntryPoint)
1) внешний кэш (или внутренний и липкая сессия если сервера равнозначны)
источник

S🕶

Sander 🕶 in Spring Framework and more
Иван Темерёв
1) внешний кэш (или внутренний и липкая сессия если сервера равнозначны)
shared кэш?
источник