diff --git a/test/uws/service/backup/TestDefaultUWSBackupManager.java b/test/uws/service/backup/TestDefaultUWSBackupManager.java new file mode 100644 index 0000000000000000000000000000000000000000..70ecc48a297668821b779751d9715e265eaa4f08 --- /dev/null +++ b/test/uws/service/backup/TestDefaultUWSBackupManager.java @@ -0,0 +1,65 @@ +package uws.service.backup; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import org.junit.Test; + +import uws.job.jobInfo.JobInfo; +import uws.job.jobInfo.SingleValueJobInfo; + +public class TestDefaultUWSBackupManager { + + @Test + public void testBase64(){ + final DefaultUWSBackupManager backupManager = new DefaultUWSBackupManager(null); + + // Encoding an empty bytes array => Empty string! + assertEquals(0, backupManager.toBase64(new byte[0]).length()); + + // Decoding an empty string => Empty bytes array! + assertEquals(0, backupManager.fromBase64("").length); + + // Test encoding a simple string: + final String strToEncode = "Blabla to encore!!!"; + final String expectedEncoding = "QmxhYmxhIHRvIGVuY29yZSEhIQ=="; + final String encodedStr = backupManager.toBase64(strToEncode.getBytes()); + assertEquals(expectedEncoding, encodedStr); + + // Test decoding this string: + assertEquals(strToEncode, new String(backupManager.fromBase64(encodedStr))); + + } + + @Test + public void testBackupAndRestoreJobInfo(){ + final DefaultUWSBackupManager backupManager = new DefaultUWSBackupManager(null); + + // Test encoding a simple JobInfo: + final SingleValueJobInfo jobInfo = new SingleValueJobInfo("ASuperName", "A super blabla to encode..."); + final String expectedJSON = "rO0ABXNyACJ1d3Muam9iLmpvYkluZm8uU2luZ2xlVmFsdWVKb2JJbmZvAAAAAAAAAAECAANMAARuYW1ldAASTGphdmEvbGFuZy9TdHJpbmc7TAAFdmFsdWVxAH4AAUwAEXhtbFJlcHJlc2VudGF0aW9ucQB+AAF4cHQACkFTdXBlck5hbWV0ABtBIHN1cGVyIGJsYWJsYSB0byBlbmNvZGUuLi50ADQ8QVN1cGVyTmFtZT5BIHN1cGVyIGJsYWJsYSB0byBlbmNvZGUuLi48L0FTdXBlck5hbWU+"; + String encodedJobInfo = null; + try{ + encodedJobInfo = (String)backupManager.getJSONJobInfo(jobInfo); + assertEquals(expectedJSON, encodedJobInfo); + }catch(Exception ex){ + ex.printStackTrace(); + fail("Unexpected exception while encoding a JobInfo into a base-64 string! (see console for more details)"); + } + + // Test decoding this JobInfo: + JobInfo decodedJobInfo; + try{ + decodedJobInfo = backupManager.restoreJobInfo(encodedJobInfo); + assertNotNull(decodedJobInfo); + assertEquals(SingleValueJobInfo.class, decodedJobInfo.getClass()); + assertEquals(jobInfo.getName(), ((SingleValueJobInfo)decodedJobInfo).getName()); + assertEquals(jobInfo.getValue(), ((SingleValueJobInfo)decodedJobInfo).getValue()); + }catch(Exception ex){ + ex.printStackTrace(); + fail("Unexpected exception while decoding a JobInfo from a base-64 string! (see console for more details)"); + } + } + +}