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