/* * Copyright 2005-2015 by BerryWorks Software, LLC. All rights reserved. */ package com.berryworks.edireader.util.base64; import com.berryworks.edireader.util.Conversion; import org.junit.Test; import static org.junit.Assert.*; public class TestPublicDomainEncoding { private byte[] byteArray; @Test public void testEqualsByteArray() { byteArray = new byte[]{0, 1, 2}; assertFalse(equalsByteArray(null)); assertTrue(equalsByteArray(new byte[]{0, 1, 2})); assertFalse(equalsByteArray(new byte[]{0, 1, 2, 3})); assertFalse(equalsByteArray(new byte[]{1, 1, 2})); } @Test public void testEncoding() { String string; byteArray = new byte[]{0, 1, 2}; string = PublicDomainBase64.encodeBytes(byteArray); assertEquals("AAEC", string); assertTrue(equalsByteArray(PublicDomainBase64.decode(string))); byteArray = new byte[]{0, 1, 2, 3}; string = PublicDomainBase64.encodeBytes(byteArray); assertEquals("AAECAw==", string); assertTrue(equalsByteArray(PublicDomainBase64.decode(string))); byteArray = new byte[]{0, 1, 2, 3, 4}; string = PublicDomainBase64.encodeBytes(byteArray); assertEquals("AAECAwQ=", string); assertTrue(equalsByteArray(PublicDomainBase64.decode(string))); byteArray = toByteArray(new int[]{253, 254, 255, 254, 253}); string = PublicDomainBase64.encodeBytes(byteArray); assertEquals("/f7//v0=", string); assertTrue(equalsByteArray(PublicDomainBase64.decode(string))); } @Test public void testConversion() { char[] charArray = new char[]{'a', 'b', 'c'}; byteArray = Conversion.toByteArray(charArray); assertEquals(charArray.length, byteArray.length); assertEquals(97, byteArray[0]); assertEquals(98, byteArray[1]); assertEquals(99, byteArray[2]); byteArray = new byte[256]; for (int i = 0; i < 256; i++) byteArray[i] = (byte) i; assertTrue(equalsByteArray(Conversion.toByteArray(Conversion.toCharArray(byteArray)))); } boolean equalsByteArray(byte[] b) { if (b == null) return byteArray == null; if (byteArray == null) return false; if (byteArray.length != b.length) return false; for (int i = 0; i < byteArray.length; i++) { if (byteArray[i] != b[i]) return false; } return true; } private byte[] toByteArray(int[] ints) { byte[] result = new byte[ints.length]; for (int i = 0; i < ints.length; i++) result[i] = (byte) ints[i]; return result; } }