package com.constellio.data.io;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Test;
import com.constellio.sdk.tests.ConstellioTest;
import com.constellio.sdk.tests.TestUtils;
public class EncodingServiceAcceptanceTest extends ConstellioTest {
EncodingService encodingService;
byte[] bytes1ko;
byte[] bytes10ko;
byte[] bytes100ko;
@Before
public void setUp() {
encodingService = new EncodingService();
bytes1ko = TestUtils.aRandomByteArray(1024);
bytes10ko = TestUtils.aRandomByteArray(10 * 1024);
bytes100ko = TestUtils.aRandomByteArray(100 * 1024);
}
@Test
public void givenEncodedValueInBase64WhenDecodingThenRawValueObtained() {
String encoded1Ko = encodingService.encodeToBase64(bytes1ko);
String encoded10ko = encodingService.encodeToBase64(bytes10ko);
String encoded100ko = encodingService.encodeToBase64(bytes100ko);
assertThat(encodingService.decodeStringToBase64Bytes(encoded1Ko)).isEqualTo(bytes1ko);
assertThat(encodingService.decodeStringToBase64Bytes(encoded10ko)).isEqualTo(bytes10ko);
assertThat(encodingService.decodeStringToBase64Bytes(encoded100ko)).isEqualTo(bytes100ko);
}
@Test
public void givenEncodedValueInBase32WhenDecodingThenRawValueObtained() {
String encoded1Ko = encodingService.encodeToBase32(bytes1ko);
String encoded10ko = encodingService.encodeToBase32(bytes10ko);
String encoded100ko = encodingService.encodeToBase32(bytes100ko);
assertThat(encodingService.decodeStringToBase32Bytes(encoded1Ko)).isEqualTo(bytes1ko);
assertThat(encodingService.decodeStringToBase32Bytes(encoded10ko)).isEqualTo(bytes10ko);
assertThat(encodingService.decodeStringToBase32Bytes(encoded100ko)).isEqualTo(bytes100ko);
}
@Test
public void givenEncodedValueInBase64UrlEncodedWhenDecodingThenRawValueObtained() {
String encoded1Ko = encodingService.encodeToBase64UrlEncoded(bytes1ko);
String encoded10ko = encodingService.encodeToBase64UrlEncoded(bytes10ko);
String encoded100ko = encodingService.encodeToBase64UrlEncoded(bytes100ko);
assertThat(encodingService.decodeStringToBase64UrlEncodedBytes(encoded1Ko)).isEqualTo(bytes1ko);
assertThat(encodingService.decodeStringToBase64UrlEncodedBytes(encoded10ko)).isEqualTo(bytes10ko);
assertThat(encodingService.decodeStringToBase64UrlEncodedBytes(encoded100ko)).isEqualTo(bytes100ko);
}
}