Cleaned up tests

This commit is contained in:
Erik C. Thauvin 2022-12-31 01:48:49 -08:00
parent e62af2cf4b
commit be01f6dc07

View file

@ -6,48 +6,41 @@ package com.uwyn.urlencoder;
import org.junit.jupiter.api.Test;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertTrue;
class UrlEncoderTest {
@Test
public void testEncodeURL() {
assertNull(UrlEncoder.encode(null));
assertEquals("a%20test%20%26", UrlEncoder.encode("a test &"));
String valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~";
assertSame(valid, UrlEncoder.encode(valid));
assertEquals("%21abcdefghijklmnopqrstuvwxyz%25%25ABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~%3D", UrlEncoder.encode("!abcdefghijklmnopqrstuvwxyz%%ABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~="));
assertEquals("%25%23ok%C3%A9k%C3%89%C8%A2%20smile%21%F0%9F%98%81", UrlEncoder.encode("%#okékÉȢ smile!😁"));
}
private String[] invalid = {"sdkjfh%", "sdkjfh%6", "sdkjfh%xx", "sdfjfh%-1"};
private String same = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~";
private Map<String, String> validMap = Map.of(
"a test &", "a%20test%20%26",
"!abcdefghijklmnopqrstuvwxyz%%ABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~=",
"%21abcdefghijklmnopqrstuvwxyz%25%25ABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~%3D",
"%#okékÉȢ smile!😁", "%25%23ok%C3%A9k%C3%89%C8%A2%20smile%21%F0%9F%98%81"
);
@Test
public void testDecodeURL() {
assertNull(UrlEncoder.decode(null));
assertEquals("a test &", UrlEncoder.decode("a%20test%20%26"));
String valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~";
assertSame(valid, UrlEncoder.decode(valid));
assertEquals("!abcdefghijklmnopqrstuvwxyz%%ABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~=", UrlEncoder.decode("%21abcdefghijklmnopqrstuvwxyz%25%25ABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~%3D"));
assertEquals("%#okékÉȢ smile!😁", UrlEncoder.decode("%25%23ok%C3%A9k%C3%89%C8%A2%20smile%21%F0%9F%98%81"));
assertSame(same, UrlEncoder.decode(same));
validMap.forEach((expected, source) -> assertEquals(expected, UrlEncoder.decode(source)));
try {
UrlEncoder.decode("sdkjfh%");
fail();
} catch (Exception e) {
assertTrue(e instanceof IllegalArgumentException);
}
try {
UrlEncoder.decode("sdkjfh%6");
fail();
} catch (Exception e) {
assertTrue(e instanceof IllegalArgumentException);
}
try {
UrlEncoder.decode("sdkjfh%xx");
fail();
} catch (Exception e) {
assertTrue(e instanceof IllegalArgumentException);
for (String i : invalid) {
assertThrows(IllegalArgumentException.class, () -> UrlEncoder.decode(i));
}
}
@Test
public void testEncodeURL() {
assertNull(UrlEncoder.encode(null));
assertTrue(UrlEncoder.encode("").isEmpty());
assertSame(same, UrlEncoder.encode(same));
assertSame(same, UrlEncoder.encode(same, ""));
validMap.forEach((source, expected) -> assertEquals(expected, UrlEncoder.encode(source)));
assertEquals("?test=a%20test", UrlEncoder.encode("?test=a test", "?="));
assertEquals("?test=a%20test", UrlEncoder.encode("?test=a test", '?', '='));
assertEquals("aaa", UrlEncoder.encode("aaa", 'a'));
}
}