| /* 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 tools.inst2xsd.checkin; |
| |
| import org.junit.Test; |
| import tools.inst2xsd.common.Inst2XsdTestBase; |
| |
| public class Inst2XsdTypeTest extends Inst2XsdTestBase { |
| |
| // List of precedence for smart simple primitive type determination |
| // byte, short, int, long, integer, float, double, decimal, |
| // boolean |
| // date, dateTime, time, gDuration, |
| // QName ?, |
| // anyUri ? - triggered only for http:// or www. constructs, |
| // list types ? |
| // string |
| @Test |
| public void test_string() throws Exception { |
| runTypeChecking(getTypeXml("a"), "string"); |
| runTypeChecking(getTypeXml("a2a"), "string"); |
| runTypeChecking(getTypeXml("a b c\n hello\t from\n\txmlbeans"), "string"); |
| } |
| |
| @Test |
| public void test_byte() throws Exception { |
| runTypeChecking(getTypeXml("123"), "byte"); |
| runTypeChecking(getTypeXml("+100"), "byte"); |
| runTypeChecking(getTypeXml("-1"), "byte"); |
| runTypeChecking(getTypeXml("0"), "byte"); |
| runTypeChecking(getTypeXml("127"), "byte"); |
| runTypeChecking(getTypeXml("-128"), "byte"); |
| } |
| |
| @Test |
| public void test_short() throws Exception { |
| runTypeChecking(getTypeXml("-129"), "short"); |
| runTypeChecking(getTypeXml("128"), "short"); |
| runTypeChecking(getTypeXml("3000"), "short"); |
| runTypeChecking(getTypeXml("-3000"), "short"); |
| runTypeChecking(getTypeXml("-32768"), "short"); |
| runTypeChecking(getTypeXml("32767"), "short"); |
| } |
| |
| @Test |
| public void test_int() throws Exception { |
| runTypeChecking(getTypeXml("39000"), "int"); |
| runTypeChecking(getTypeXml("32768"), "int"); |
| runTypeChecking(getTypeXml("-32769"), "int"); |
| runTypeChecking(getTypeXml("-39000"), "int"); |
| runTypeChecking(getTypeXml("126789675"), "int"); |
| runTypeChecking(getTypeXml("2147483647"), "int"); |
| runTypeChecking(getTypeXml("-2147483648"), "int"); |
| } |
| |
| @Test |
| public void test_long() throws Exception { |
| runTypeChecking(getTypeXml("2147483648"), "long"); |
| runTypeChecking(getTypeXml("-2147483649"), "long"); |
| runTypeChecking(getTypeXml("-2150000000"), "long"); |
| runTypeChecking(getTypeXml("2150000000"), "long"); |
| runTypeChecking(getTypeXml("-9223372036854775808"), "long"); |
| runTypeChecking(getTypeXml("9223372036854775807"), "long"); |
| } |
| |
| @Test |
| public void test_integer() throws Exception { |
| runTypeChecking(getTypeXml("9300000000000000000"), "integer"); |
| runTypeChecking(getTypeXml("-9300000000000000000"), "integer"); |
| runTypeChecking(getTypeXml("-9223372036854775809"), "integer"); |
| runTypeChecking(getTypeXml("9223372036854775808"), "integer"); |
| } |
| |
| @Test |
| public void test_float() throws Exception { |
| runTypeChecking(getTypeXml("12.78e-2"), "float"); |
| runTypeChecking(getTypeXml("1267.43233E12"), "float"); |
| runTypeChecking(getTypeXml("-1E4"), "float"); |
| runTypeChecking(getTypeXml("INF"), "float"); |
| runTypeChecking(getTypeXml("-INF"), "float"); |
| runTypeChecking(getTypeXml("NaN"), "float"); |
| runTypeChecking(getTypeXml("-1.23"), "float"); |
| runTypeChecking(getTypeXml("12678967.543233"), "float"); |
| runTypeChecking(getTypeXml("+100000.00"), "float"); |
| } |
| |
| //TODO: NOT COMPLETELY SURE HOW TO GET THESE WITHOUT |
| //CAUSING AN Number EXCEPTION |
| //public void test_double() throws Exception { |
| // runTypeChecking(getTypeXml(""), "double"); |
| //} |
| |
| //public void test_decimal() throws Exception { |
| // runTypeChecking(getTypeXml(""), "decimal"); |
| //} |
| //Value will become number |
| // public void test_gYear() throws Exception { |
| //runTypeChecking(getTypeXml("1999"), "gYear"); |
| //} |
| |
| @Test |
| public void test_date() throws Exception { |
| runTypeChecking(getTypeXml("1999-05-31"), "date"); |
| } |
| |
| @Test |
| public void test_dateTime() throws Exception { |
| runTypeChecking(getTypeXml("1999-05-31T13:20:00-05:00"), "dateTime"); |
| runTypeChecking(getTypeXml("2000-03-04T20:00:00Z"), "dateTime"); |
| runTypeChecking(getTypeXml("2000-03-04T23:00:00+03:00"), "dateTime"); |
| } |
| |
| @Test |
| public void test_time() throws Exception { |
| runTypeChecking(getTypeXml("13:20:00-05:00"), "time"); |
| runTypeChecking(getTypeXml("00:00:00"), "time"); |
| runTypeChecking(getTypeXml("13:20:00Z"), "time"); |
| } |
| |
| @Test |
| public void test_CDATA() throws Exception { |
| runTypeChecking(getTypeXml("<![CDATA[ " + |
| "function matchwo(a, b) {" + |
| "if (a < b && a < 0) " + |
| " then { " + |
| " return 1 " + |
| " } else { " + |
| " return 0 " + |
| " } " + |
| "} ]]>"), "string"); |
| } |
| |
| //public void test_() throws Exception { |
| // runTypeChecking(getTypeXml(""), ""); |
| //} |
| |
| } |