/
podkmax
/
spring-test
Обзор
Документация
Войти
/
podkmax
/
spring-test
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/test/java/com/example/springtests/common/UserNameNormalizerTest.java
42 строки
1 KB
Maksim.Podkorytov
Добавлен пример ожидания асинхронного результата
8 часов назад
8 часов назад
bb58f58
Код
Авторство
О чём код?
package com.example.springtests.common; import java.time.Duration; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicReference; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; class UserNameNormalizerTest { private final UserNameNormalizer userNameNormalizer = new UserNameNormalizer(); @Test void shouldNormalizeComplexUserName() { String normalized = userNameNormalizer.normalize(" MaX!! PoDkorytov### "); assertThat(normalized).isEqualTo("max podkorytov"); } @Test void shouldReturnEmptyStringForBlankValue() { String normalized = userNameNormalizer.normalize(" "); assertThat(normalized).isEmpty(); } @Test void shouldWaitForAsynchronousNormalizationWithoutFixedDelay() { AtomicReference<String> normalizedName = new AtomicReference<>(); CompletableFuture<Void> normalization = CompletableFuture.runAsync( () -> normalizedName.set(userNameNormalizer.normalize(" John Doe!! ")) ); await() .atMost(Duration.ofSeconds(5)) .untilAsserted(() -> assertThat(normalizedName).hasValue("john doe")); normalization.join(); } }