Kotlin-ize some more tests.

Resolves #13813
This commit is contained in:
Jameson Williams
2024-11-22 15:04:56 -06:00
committed by Greyson Parrelli
parent 39b4484887
commit d28fa304c8
10 changed files with 525 additions and 557 deletions

View File

@@ -1,76 +0,0 @@
package org.thoughtcrime.securesms.util;
import android.text.TextUtils;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockedStatic;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.mockito.stubbing.Answer;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.anyString;
public class DelimiterUtilTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
@Mock
private MockedStatic<TextUtils> textUtilsMockedStatic;
@Before
public void setup() {
textUtilsMockedStatic.when(() -> TextUtils.isEmpty(anyString())).thenAnswer((Answer<Boolean>) invocation -> {
if (invocation.getArguments()[0] == null) return true;
return ((String) invocation.getArguments()[0]).isEmpty();
});
}
@Test
public void testEscape() {
assertEquals(DelimiterUtil.escape("MTV Music", ' '), "MTV\\ Music");
assertEquals(DelimiterUtil.escape("MTV Music", ' '), "MTV\\ \\ Music");
assertEquals(DelimiterUtil.escape("MTV,Music", ','), "MTV\\,Music");
assertEquals(DelimiterUtil.escape("MTV,,Music", ','), "MTV\\,\\,Music");
assertEquals(DelimiterUtil.escape("MTV Music", '+'), "MTV Music");
}
@Test
public void testSplit() {
String[] parts = DelimiterUtil.split("MTV\\ Music", ' ');
assertEquals(parts.length, 1);
assertEquals(parts[0], "MTV\\ Music");
parts = DelimiterUtil.split("MTV Music", ' ');
assertEquals(parts.length, 2);
assertEquals(parts[0], "MTV");
assertEquals(parts[1], "Music");
}
@Test
public void testEscapeSplit() {
String input = "MTV Music";
String intermediate = DelimiterUtil.escape(input, ' ');
String[] parts = DelimiterUtil.split(intermediate, ' ');
assertEquals(parts.length, 1);
assertEquals(parts[0], "MTV\\ Music");
assertEquals(DelimiterUtil.unescape(parts[0], ' '), "MTV Music");
input = "MTV\\ Music";
intermediate = DelimiterUtil.escape(input, ' ');
parts = DelimiterUtil.split(intermediate, ' ');
assertEquals(parts.length, 1);
assertEquals(parts[0], "MTV\\\\ Music");
assertEquals(DelimiterUtil.unescape(parts[0], ' '), "MTV\\ Music");
}
}

View File

@@ -0,0 +1,66 @@
package org.thoughtcrime.securesms.util
import android.text.TextUtils
import io.mockk.every
import io.mockk.mockkStatic
import io.mockk.unmockkStatic
import org.junit.After
import org.junit.Assert.assertArrayEquals
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
class DelimiterUtilTest {
@Before
fun setup() {
mockkStatic(TextUtils::class)
every { TextUtils.isEmpty(any()) } answers {
(invocation.args.first() as? String)?.isEmpty() ?: true
}
}
@After
fun cleanup() {
unmockkStatic(TextUtils::class)
}
@Test
fun testEscape() {
assertEquals("MTV\\ Music", DelimiterUtil.escape("MTV Music", ' '))
assertEquals("MTV\\ \\ Music", DelimiterUtil.escape("MTV Music", ' '))
assertEquals("MTV\\,Music", DelimiterUtil.escape("MTV,Music", ','))
assertEquals("MTV\\,\\,Music", DelimiterUtil.escape("MTV,,Music", ','))
assertEquals("MTV Music", DelimiterUtil.escape("MTV Music", '+'))
}
@Test
fun testSplit() {
assertArrayEquals(
arrayOf("MTV\\ Music"),
DelimiterUtil.split("MTV\\ Music", ' ')
)
assertArrayEquals(
arrayOf("MTV", "Music"),
DelimiterUtil.split("MTV Music", ' ')
)
}
@Test
fun testEscapeSplit() {
"MTV Music".let { input ->
val intermediate = DelimiterUtil.escape(input, ' ')
val parts = DelimiterUtil.split(intermediate, ' ')
assertEquals("MTV\\ Music", parts.single())
assertEquals("MTV Music", DelimiterUtil.unescape(parts.single(), ' '))
}
"MTV\\ Music".let { input ->
val intermediate = DelimiterUtil.escape(input, ' ')
val parts = DelimiterUtil.split(intermediate, ' ')
assertEquals("MTV\\\\ Music", parts.single())
assertEquals("MTV\\ Music", DelimiterUtil.unescape(parts.single(), ' '))
}
}
}