Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@www.apache.org Received: (qmail 59457 invoked from network); 31 Mar 2004 19:55:40 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 31 Mar 2004 19:55:40 -0000 Received: (qmail 98617 invoked by uid 500); 31 Mar 2004 19:55:26 -0000 Delivered-To: apmail-jakarta-commons-dev-archive@jakarta.apache.org Received: (qmail 98569 invoked by uid 500); 31 Mar 2004 19:55:26 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 98556 invoked by uid 500); 31 Mar 2004 19:55:26 -0000 Received: (qmail 98553 invoked from network); 31 Mar 2004 19:55:26 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 31 Mar 2004 19:55:26 -0000 Received: (qmail 59426 invoked by uid 1289); 31 Mar 2004 19:55:35 -0000 Date: 31 Mar 2004 19:55:35 -0000 Message-ID: <20040331195535.59425.qmail@minotaur.apache.org> From: rdonkin@apache.org To: jakarta-commons-cvs@apache.org Subject: cvs commit: jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/io TestAbstractBeanWriter.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N rdonkin 2004/03/31 11:55:35 Added: betwixt/src/test/org/apache/commons/betwixt/io TestAbstractBeanWriter.java Log: Tests for modified writing API Revision Changes Path 1.1 jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/io/TestAbstractBeanWriter.java Index: TestAbstractBeanWriter.java =================================================================== /* * Copyright 2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.betwixt.io; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.commons.betwixt.AbstractTestCase; import org.apache.commons.betwixt.ElementDescriptor; import org.apache.commons.betwixt.XMLBeanInfo; import org.apache.commons.collections.CollectionUtils; import org.xml.sax.Attributes; import org.xml.sax.SAXException; /** * @author Jakarta Commons Team * @version $Revision: 1.1 $ */ public class TestAbstractBeanWriter extends AbstractTestCase { public TestAbstractBeanWriter(String testName) { super(testName); } public void testContextCurrentElement() throws Exception { MovieBean bean = new MovieBean("Excalibur", 1981, new PersonBean("John", "Boorman")); bean.addActor(new PersonBean("Nigel", "Terry")); bean.addActor(new PersonBean("Helen", "Mirren")); bean.addActor(new PersonBean("Nicol", "Williamson")); TestWritingAPI writer = new TestWritingAPI(); writer.getXMLIntrospector().setAttributesForPrimitives(true); XMLBeanInfo movieXmlBeanInfo = writer.getXMLIntrospector().introspect(MovieBean.class); XMLBeanInfo personXmlBeanInfo = writer.getXMLIntrospector().introspect(PersonBean.class); writer.write(bean); List expected = new ArrayList(); ElementDescriptor movieElementdescriptor = movieXmlBeanInfo.getElementDescriptor(); ElementDescriptor nameDescriptor = movieElementdescriptor.getElementDescriptors()[0]; ElementDescriptor yearDescriptor = movieElementdescriptor.getElementDescriptors()[1]; ElementDescriptor directorDescriptor = movieElementdescriptor.getElementDescriptors()[2]; ElementDescriptor actorsDescriptor = movieElementdescriptor.getElementDescriptors()[3]; ElementDescriptor personDescriptor = personXmlBeanInfo.getElementDescriptor(); expected.add( new TestWritingAPI.Record( TestWritingAPI.START_ELEMENT, movieElementdescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.START_ELEMENT, nameDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.BODY_TEXT, nameDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.END_ELEMENT, nameDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.START_ELEMENT, yearDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.BODY_TEXT, yearDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.END_ELEMENT, yearDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.START_ELEMENT, personDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.END_ELEMENT, personDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.START_ELEMENT, actorsDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.START_ELEMENT, personDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.END_ELEMENT, personDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.START_ELEMENT, personDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.END_ELEMENT, personDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.START_ELEMENT, personDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.END_ELEMENT, personDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.END_ELEMENT, actorsDescriptor)); expected.add( new TestWritingAPI.Record( TestWritingAPI.END_ELEMENT, movieElementdescriptor)); assertEquals("Collections same size", expected.size(), writer.recording.size()); assertEquals("Movie element start", expected.get(0), writer.recording.get(0)); assertEquals("Name element start", expected.get(1), writer.recording.get(1)); assertEquals("Name element body", expected.get(2), writer.recording.get(2)); assertEquals("Name element end", expected.get(3), writer.recording.get(3)); assertEquals("Year element start", expected.get(4), writer.recording.get(4)); assertEquals("Year element body", expected.get(5), writer.recording.get(5)); assertEquals("Year element end", expected.get(6), writer.recording.get(6)); assertEquals("Director element start", expected.get(7), writer.recording.get(7)); assertEquals("Director element end", expected.get(8), writer.recording.get(8)); assertEquals("Actors element start", expected.get(9), writer.recording.get(9));; assertEquals("Actor element body", expected.get(10), writer.recording.get(10)); assertEquals("Actor element end", expected.get(11), writer.recording.get(12)); assertEquals("Actor element body", expected.get(12), writer.recording.get(12)); assertEquals("Actor element end", expected.get(13), writer.recording.get(13)); assertEquals("Actor element body", expected.get(14), writer.recording.get(14)); assertEquals("Actor element end", expected.get(15), writer.recording.get(15)); assertEquals("Actors element end", expected.get(16), writer.recording.get(16)); assertEquals("Movie element end", expected.get(17), writer.recording.get(17)); } public static class TestWritingAPI extends AbstractBeanWriter { public static final int START_ELEMENT = 1; public static final int BODY_TEXT = 2; public static final int END_ELEMENT = 3; private List recording = new ArrayList(); protected void bodyText(String text) throws IOException, SAXException { throw new RuntimeException("Deprecated method called"); } protected void bodyText(WriteContext context, String text) throws IOException, SAXException { recording.add(new Record(BODY_TEXT, context.getCurrentDescriptor())); } protected void endElement(String uri, String localName, String qName) throws IOException, SAXException { throw new RuntimeException("Deprecated method called"); } protected void endElement( WriteContext context, String uri, String localName, String qName) throws IOException, SAXException { recording.add(new Record(END_ELEMENT, context.getCurrentDescriptor())); } protected void startElement( String uri, String localName, String qName, Attributes attr) throws IOException, SAXException { throw new RuntimeException("Deprecated method called"); } protected void startElement( WriteContext context, String uri, String localName, String qName, Attributes attr) throws IOException, SAXException { recording.add(new Record(START_ELEMENT, context.getCurrentDescriptor())); } public static class Record { ElementDescriptor currentDescriptor; int type; Record(int type, ElementDescriptor currentDescriptor) { this.currentDescriptor = currentDescriptor; this.type = type; } public int hashCode() { return type; } public String toString() { return "[Record: type=" + type + "; " + currentDescriptor + "]"; } public boolean equals(Object arg) { boolean result = false; if (arg instanceof Record) { Record record = (Record) arg; result = (type == type) && currentDescriptor.equals(record.currentDescriptor); } return result; } } } } --------------------------------------------------------------------- To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: commons-dev-help@jakarta.apache.org