001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package org.apache.commons.betwixt.schema;
019:
020: import java.math.BigDecimal;
021: import java.math.BigInteger;
022:
023: import junit.framework.TestCase;
024:
025: /**
026: * Tests for <code>DataTypeMapper</code>
027: * both usages and implementations.
028: * @author <a href='http://jakarta.apache.org/'>Jakarta Commons Team</a>
029: * @version $Revision: 438373 $
030: */
031: public class TestDataTypeMapper extends TestCase {
032:
033: public TestDataTypeMapper(String testName) {
034: super (testName);
035: }
036:
037: public void testDefaultDataTypeMapping() throws Exception {
038: DefaultDataTypeMapper mapper = new DefaultDataTypeMapper();
039: assertEquals("java.lang.String", "xsd:string", mapper
040: .toXMLSchemaDataType(String.class));
041: assertEquals("java.math.BigInteger", "xsd:integer", mapper
042: .toXMLSchemaDataType(BigInteger.class));
043: assertEquals("java.math.BigDecimal", "xsd:decimal", mapper
044: .toXMLSchemaDataType(BigDecimal.class));
045: assertEquals("Integer", "xsd:int", mapper
046: .toXMLSchemaDataType(Integer.TYPE));
047: assertEquals("int", "xsd:int", mapper
048: .toXMLSchemaDataType(Integer.class));
049: assertEquals("Long", "xsd:long", mapper
050: .toXMLSchemaDataType(Long.TYPE));
051: assertEquals("long", "xsd:long", mapper
052: .toXMLSchemaDataType(Long.class));
053: assertEquals("Short", "xsd:short", mapper
054: .toXMLSchemaDataType(Short.TYPE));
055: assertEquals("short", "xsd:short", mapper
056: .toXMLSchemaDataType(Short.class));
057: assertEquals("Float", "xsd:float", mapper
058: .toXMLSchemaDataType(Float.TYPE));
059: assertEquals("float", "xsd:float", mapper
060: .toXMLSchemaDataType(Float.class));
061: assertEquals("Double", "xsd:double", mapper
062: .toXMLSchemaDataType(Double.TYPE));
063: assertEquals("double", "xsd:double", mapper
064: .toXMLSchemaDataType(Double.class));
065: assertEquals("Boolean", "xsd:boolean", mapper
066: .toXMLSchemaDataType(Boolean.TYPE));
067: assertEquals("boolean", "xsd:boolean", mapper
068: .toXMLSchemaDataType(Boolean.class));
069: assertEquals("Byte", "xsd:byte", mapper
070: .toXMLSchemaDataType(Byte.TYPE));
071: assertEquals("byte", "xsd:byte", mapper
072: .toXMLSchemaDataType(byte.class));
073: assertEquals("java.util.Date", "xsd:dateTime", mapper
074: .toXMLSchemaDataType(java.util.Date.class));
075: assertEquals("java.sql.Date", "xsd:date", mapper
076: .toXMLSchemaDataType(java.sql.Date.class));
077: assertEquals("java.sql.Time", "xsd:time", mapper
078: .toXMLSchemaDataType(java.sql.Time.class));
079: }
080:
081: public void testDefaultDataTypeTransciption() throws Exception {
082: Schema expected = new Schema();
083:
084: GlobalComplexType allSimplesBeanType = new GlobalComplexType();
085: allSimplesBeanType
086: .setName("org.apache.commons.betwixt.schema.AllSimplesBean");
087: allSimplesBeanType.addElement(new SimpleLocalElement("string",
088: "xsd:string"));
089: allSimplesBeanType.addElement(new SimpleLocalElement(
090: "bigInteger", "xsd:integer"));
091: allSimplesBeanType.addElement(new SimpleLocalElement(
092: "primitiveInt", "xsd:int"));
093: allSimplesBeanType.addElement(new SimpleLocalElement(
094: "objectInt", "xsd:int"));
095: allSimplesBeanType.addElement(new SimpleLocalElement(
096: "primitiveLong", "xsd:long"));
097: allSimplesBeanType.addElement(new SimpleLocalElement(
098: "objectLong", "xsd:long"));
099: allSimplesBeanType.addElement(new SimpleLocalElement(
100: "primitiveShort", "xsd:short"));
101: allSimplesBeanType.addElement(new SimpleLocalElement(
102: "objectShort", "xsd:short"));
103: allSimplesBeanType.addElement(new SimpleLocalElement(
104: "bigDecimal", "xsd:decimal"));
105: allSimplesBeanType.addElement(new SimpleLocalElement(
106: "primitiveFloat", "xsd:float"));
107: allSimplesBeanType.addElement(new SimpleLocalElement(
108: "objectFloat", "xsd:float"));
109: allSimplesBeanType.addElement(new SimpleLocalElement(
110: "primitiveDouble", "xsd:double"));
111: allSimplesBeanType.addElement(new SimpleLocalElement(
112: "objectDouble", "xsd:double"));
113: allSimplesBeanType.addElement(new SimpleLocalElement(
114: "primitiveBoolean", "xsd:boolean"));
115: allSimplesBeanType.addElement(new SimpleLocalElement(
116: "objectBoolean", "xsd:boolean"));
117: allSimplesBeanType.addElement(new SimpleLocalElement(
118: "primitiveByte", "xsd:byte"));
119: allSimplesBeanType.addElement(new SimpleLocalElement(
120: "objectByte", "xsd:byte"));
121: allSimplesBeanType.addElement(new SimpleLocalElement(
122: "utilDate", "xsd:dateTime"));
123: allSimplesBeanType.addElement(new SimpleLocalElement("sqlDate",
124: "xsd:date"));
125: allSimplesBeanType.addElement(new SimpleLocalElement("sqlTime",
126: "xsd:time"));
127:
128: GlobalElement root = new GlobalElement("AllSimplesBean",
129: "org.apache.commons.betwixt.schema.AllSimplesBean");
130: expected.addComplexType(allSimplesBeanType);
131: expected.addElement(root);
132:
133: SchemaTranscriber transcriber = new SchemaTranscriber();
134: transcriber.getXMLIntrospector().getConfiguration()
135: .setAttributesForPrimitives(false);
136: Schema out = transcriber.generate(AllSimplesBean.class);
137:
138: assertEquals("AllSimplesBean schema", expected, out);
139: }
140: }
|