test classes moved to same packages with components they test

This commit is contained in:
Sergey Skrobotov
2023-07-17 12:58:10 -07:00
parent b8d8d349f4
commit 352e1b2249
42 changed files with 84 additions and 136 deletions

View File

@@ -0,0 +1,49 @@
/*
* Copyright 2023 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.whispersystems.textsecuregcm.util;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Collections;
import java.util.List;
import java.util.Locale.LanguageRange;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Stream;
import javax.annotation.Nullable;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
class LocaleTest {
private static final Set<String> SUPPORTED_LOCALES = Set.of("es", "en", "zh", "zh-HK");
@ParameterizedTest
@MethodSource
void testFindBestLocale(@Nullable final String languageRange, @Nullable final String expectedLocale) {
final List<LanguageRange> languageRanges = Optional.ofNullable(languageRange)
.map(LanguageRange::parse)
.orElse(Collections.emptyList());
assertEquals(Optional.ofNullable(expectedLocale), Util.findBestLocale(languageRanges, SUPPORTED_LOCALES));
}
static Stream<Arguments> testFindBestLocale() {
return Stream.of(
// languageRange, expectedLocale
Arguments.of("en-US, fr", "en"),
Arguments.of("es-ES", "es"),
Arguments.of("zh-Hant-HK, zh-HK", "zh"),
// zh-HK is supported, but Locale#lookup truncates from the end, per RFC-4647
Arguments.of("zh-Hant-HK", "zh"),
Arguments.of("zh-HK", "zh-HK"),
Arguments.of("de", null),
Arguments.of(null, null)
);
}
}

View File

@@ -0,0 +1,22 @@
/*
* Copyright 2013 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.whispersystems.textsecuregcm.util;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import org.junit.jupiter.api.Test;
class NumberPrefixTest {
@Test
void testPrefixes() {
assertThat(Util.getNumberPrefix("+14151234567")).isEqualTo("+14151");
assertThat(Util.getNumberPrefix("+22587654321")).isEqualTo("+2258765");
assertThat(Util.getNumberPrefix("+298654321")).isEqualTo("+2986543");
assertThat(Util.getNumberPrefix("+12")).isEqualTo("+12");
}
}

View File

@@ -0,0 +1,66 @@
/*
* Copyright 2013 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.whispersystems.textsecuregcm.util;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
class ValidNumberTest {
@ParameterizedTest
@ValueSource(strings = {
"+447700900111",
"+14151231234",
"+71234567890",
"+447535742222",
"+4915174108888",
"+2250707312345",
"+298123456",
"+299123456",
"+376123456",
"+68512345",
"+689123456",
"+80011111111"})
void requireNormalizedNumber(final String number) {
assertDoesNotThrow(() -> Util.requireNormalizedNumber(number));
}
@Test
void requireNormalizedNumberNull() {
assertThrows(ImpossiblePhoneNumberException.class, () -> Util.requireNormalizedNumber(null));
}
@ParameterizedTest
@ValueSource(strings = {
"Definitely not a phone number at all",
"+141512312341",
"+712345678901",
"+4475357422221",
"+491517410888811111",
"71234567890",
"001447535742222",
"+1415123123a"
})
void requireNormalizedNumberImpossibleNumber(final String number) {
assertThrows(ImpossiblePhoneNumberException.class, () -> Util.requireNormalizedNumber(number));
}
@ParameterizedTest
@ValueSource(strings = {
"+4407700900111",
"+49493023125000", // double country code - this e164 is "possible"
"+1 415 123 1234",
"+1 (415) 123-1234",
"+1 415)123-1234",
" +14151231234"})
void requireNormalizedNumberNonNormalized(final String number) {
assertThrows(NonNormalizedPhoneNumberException.class, () -> Util.requireNormalizedNumber(number));
}
}