Alternative zu StringBufferInputStream gesucht



  • Hallo zusammen,

    zwecks Unit Testing muss ich auf einfache Weise und ohne echte Dateien irgendwie XML Daten erzeugen. Momentan kann ich das mit StringBufferInputStream sehr bequem:

    public void testIsCondition() {
    		Document document = null;
    // aktuell die wohl bequemste Möglichkeit aus einem String ein passendes Objekt für eine parse() Methode von DocumentBuilder zu erzeugen
    		StringBufferInputStream source = new StringBufferInputStream(
    			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
    			"<root><one><oneone>1.1</oneone></one></root>"
    			);
    
    		DocumentBuilderFactory factory	= DocumentBuilderFactory.newInstance();
    		DocumentBuilder docbuilder		= factory.newDocumentBuilder();
    // Problem: Passende Quelle für eine parse() Variante erzeugen
    		document = docbuilder.parse(source);
    
    		NodeList nodes = document.getChildNodes();
    		Node node = null;
    		int length = nodes.getLength();
    		StringBuffer name = new StringBuffer();
    		for (int i = 0; i < length; i++) {
    			node = nodes.item(i);
    			name.delete(0, name.length());
    			name.append(node.getNodeName());
    			assertFalse(null, XxHelper.isCondition(node));
    		}
    	}
    

    Leider ist StringBufferInputStream als @Deprecated gekennzeichnet. Hat jemand eine Alternative für mein Vorhaben?



  • Hab ne Möglichkeit gefunden:

    StringReader source = new StringReader(
    			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
    			"<root><one><oneone>1.1</oneone></one></root>"
    			);
            DocumentBuilderFactory factory    = DocumentBuilderFactory.newInstance();
            DocumentBuilder docbuilder        = factory.newDocumentBuilder();
    // Problem: Passende Quelle für eine parse() Variante erzeugen
            document = docbuilder.parse(new InputSource(new BufferedReader(source)));
    

Log in to reply