/*************************************************************************
* *
* CESeCore: CE Security Core *
* *
* This software is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2.1 of the License, or any later version. *
* *
* See terms of license at gnu.org. *
* *
*************************************************************************/
package org.cesecore.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
import org.apache.log4j.Logger;
import org.cesecore.certificates.certificateprofile.CertificatePolicy;
import org.junit.Test;
/**
*
* @version $Id: SecureXMLDecoderTest.java 26353 2017-08-17 14:57:40Z mikekushner $
*/
public class SecureXMLDecoderTest {
private static final Logger log = Logger.getLogger(SecureXMLDecoderTest.class);
@Test
public void testElementaryTypes() throws IOException {
log.trace(">testElementaryTypes");
decodeCompare("");
decodeCompare("\n");
decodeCompare("\n\n");
decodeCompare("\nA\n");
decodeCompare("\n&\n");
decodeCompare("\n-12345\n");
decodeCompare("\n-12.34\n");
decodeCompare("\nhello\n");
decodeCompare("\ntrue\n");
decodeCompare("\n\n");
decodeCompare("\n\n");
log.trace("testBasicCollections");
// Empty list
decodeCompare("\n\n");
// List of two integers
decodeCompare("\n\n");
// Map from int to string
decodeCompare("\n\n\n");
log.trace("testMultipleObjects");
decodeCompare("\n-12345\nABC\n");
log.trace(">testMultipleObjects");
}
private static enum MockEnum {
FOO;
}
/**
* Tests encoding and decoding an enum
*/
@Test
public void testEnum() throws IOException {
final Map