From 7cbf2eafcd03e4702734967a4fc8dbb340bb013e Mon Sep 17 00:00:00 2001 From: DiegoMarti2 <150871541+DiegoMarti2@users.noreply.github.com> Date: Sat, 17 Feb 2024 14:12:34 -0800 Subject: [PATCH] baeldung-articles : BAEL-7442 (#15887) * baeldung-articles : BAEL-7442 Check if String is Base64 Encoded (commit) * Update CheckIfStringIsBased64UnitTest.java --- .../CheckIfStringIsBased64UnitTest.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 core-java-modules/core-java-string-operations-8/src/test/java/com/baeldung/checkifstringisbased64/CheckIfStringIsBased64UnitTest.java diff --git a/core-java-modules/core-java-string-operations-8/src/test/java/com/baeldung/checkifstringisbased64/CheckIfStringIsBased64UnitTest.java b/core-java-modules/core-java-string-operations-8/src/test/java/com/baeldung/checkifstringisbased64/CheckIfStringIsBased64UnitTest.java new file mode 100644 index 0000000000..fdb543b3f5 --- /dev/null +++ b/core-java-modules/core-java-string-operations-8/src/test/java/com/baeldung/checkifstringisbased64/CheckIfStringIsBased64UnitTest.java @@ -0,0 +1,40 @@ +package com.baeldung.checkifstringisbased64; + +import org.junit.jupiter.api.Test; + +import java.util.Base64; +import java.util.regex.Pattern; + +import static org.junit.jupiter.api.Assertions.*; + +public class CheckIfStringIsBased64UnitTest { + + @Test + public void givenBase64EncodedString_whenDecoding_thenNoException() { + try { + Base64.getDecoder().decode("SGVsbG8gd29ybGQ="); + assertTrue(true); + } catch (IllegalArgumentException e) { + fail("Unexpected exception: " + e.getMessage()); + } + } + + @Test + public void givenNonBase64String_whenDecoding_thenCatchException() { + try { + Base64.getDecoder().decode("Hello world!"); + fail("Expected IllegalArgumentException was not thrown"); + } catch (IllegalArgumentException e) { + assertTrue(true); + } + } + + @Test + public void givenString_whenOperatingRegex_thenCheckIfItIsBase64Encoded() { + Pattern BASE64_PATTERN = Pattern.compile( + "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" + ); + + assertTrue(BASE64_PATTERN.matcher("SGVsbG8gd29ybGQ=").matches()); + } +}