| /* |
| * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // Oracle - initial API and implementation from Oracle TopLink |
| package org.eclipse.persistence.testing.sdo.model.type; |
| |
| import commonj.sdo.DataObject; |
| import junit.textui.TestRunner; |
| import org.eclipse.persistence.sdo.helper.extension.SDOUtil; |
| import org.eclipse.persistence.sdo.SDOConstants; |
| |
| import org.eclipse.persistence.testing.sdo.SDOTestCase; |
| |
| public class DefaultPackageFromTypeGenerationTestCases extends SDOTestCase { |
| public DefaultPackageFromTypeGenerationTestCases(String name) { |
| super(name); |
| } |
| |
| private String getPackageName(String inputString) { |
| String packageName = SDOUtil.getPackageNameFromURI(inputString); |
| return packageName; |
| } |
| |
| public void testPackageNameFromURI_001() { |
| assertEquals(SDOConstants.JAVA_TYPEGENERATION_DEFAULT_PACKAGE_NAME,// Expected package name |
| getPackageName(null)); // Input target namespace |
| } |
| |
| public void testPackageNameFromURI_002() { |
| assertEquals(SDOConstants.JAVA_TYPEGENERATION_DEFAULT_PACKAGE_NAME,// |
| getPackageName(SDOConstants.EMPTY_STRING)); |
| } |
| |
| public void testPackageNameFromURI_003() { |
| // Essentially empty string |
| assertEquals(SDOConstants.JAVA_TYPEGENERATION_DEFAULT_PACKAGE_NAME,// |
| getPackageName("/")); |
| } |
| |
| public void testPackageNameFromURI_004() { |
| assertEquals(SDOConstants.JAVA_TYPEGENERATION_DEFAULT_PACKAGE_NAME,// |
| getPackageName("http://")); |
| } |
| |
| public void testPackageNameFromURI_005() { |
| assertEquals("com.topleveldomain.layer.app.file",// |
| getPackageName("http://app.layer.topleveldomain.com/file.xsd")); |
| } |
| |
| public void testPackageNameFromURI_006() { |
| // html - 4 char |
| assertEquals("com.topleveldomain.layer.app.file",// |
| getPackageName("http://app.layer.topleveldomain.com/file.html")); |
| } |
| |
| public void testPackageNameFromURI_007() { |
| // html - 3 char |
| assertEquals("com.topleveldomain.layer.app.file",// |
| getPackageName("http://app.layer.topleveldomain.com/file.htm")); |
| } |
| |
| public void testPackageNameFromURI_008() { |
| assertEquals("com.topleveldomain.layer.app.file_xsd_action_xsd",// |
| getPackageName("http://app.layer.topleveldomain.com/file.xsd?action=xsd")); |
| } |
| |
| public void testPackageNameFromURI_009() { |
| assertEquals("com.topleveldomain1.layer.app.file_xsd_action_xsd_param2_2nd",// |
| getPackageName("http://app.layer.topleveldomain1.com/file.xsd?action=xsd¶m2=2nd")); |
| } |
| |
| public void testPackageNameFromURI_010() { |
| // urn |
| assertEquals("com.topleveldomain2.layer.app.file_xsd_action_xsd_param2_2nd",// |
| getPackageName("urn://app.layer.topleveldomain2.com/file.xsd?action=xsd¶m2=2nd")); |
| } |
| |
| public void testPackageNameFromURI_011() { |
| assertEquals("com.topleveldomain3.layer.app.file_xsd_action_xsd_param2_2nd",// |
| getPackageName("://app.layer.topleveldomain3.com/file.xsd?action=xsd¶m2=2nd")); |
| } |
| |
| public void testPackageNameFromURI_012() { |
| assertEquals("com.topleveldomain4.layer.app.file_xsd_action_xsd_param2_2nd",// |
| getPackageName("//app.layer.topleveldomain4.com/file.xsd?action=xsd¶m2=2nd")); |
| } |
| |
| public void testPackageNameFromURI_013() { |
| assertEquals("com.topleveldomain5.layer.app.file_xsd_action_xsd_param2_2nd",// |
| getPackageName("app.layer.topleveldomain5.com/file.xsd?action=xsd¶m2=2nd")); |
| } |
| |
| public void testPackageNameFromURI_014() { |
| assertEquals("_",// |
| getPackageName(" ")); |
| } |
| |
| public void testPackageNameFromURI_015() { |
| assertEquals("_", // |
| getPackageName("&")); |
| } |
| |
| public void testPackageNameFromURI_016() { |
| // Single slash |
| assertEquals("eclipse.apps.fnd.security.model.applicationmodule.common.types",// |
| getPackageName("/eclipse/apps/fnd/security/model/applicationModule/common/types/")); |
| } |
| |
| public void testPackageNameFromURI_017() { |
| // Verify that the hostname is not truncated (treated as a disposable file ext as defined in the JAXB 2.0 spec D.5.1 step 2 |
| assertEquals("org.eclipse",// |
| getPackageName("http://eclipse.org/")); |
| } |
| |
| public void testPackageNameFromURI_018() { |
| // Test ports and dynamic urls - the 1.233 will be treated as a file ext - we dont need the uri to actually resolve |
| assertEquals("_233.org_action_welcome_value_1.eclipse",// |
| getPackageName("http://eclipse.org?action=welcome&value=1.233")); |
| } |
| |
| public void testPackageNameFromURI_019() { |
| // Test query strings |
| assertEquals("org_.eclipse",// |
| getPackageName("http://eclipse.org?")); |
| } |
| |
| public void testPackageNameFromURI_020() { |
| // Test invalid URI's but ones that nevertheless require a package name |
| assertEquals("ftp.eclipse",// |
| getPackageName("ftp://eclipse.org")); |
| } |
| |
| public void testPackageNameFromURI_021() { |
| assertEquals("mailto.eclipse",// |
| getPackageName("mailto://eclipse.org")); |
| } |
| |
| public void testPackageNameFromURI_022() { |
| assertEquals("news.eclipse",// |
| getPackageName("news://eclipse.org")); |
| } |
| |
| public void testPackageNameFromURI_023() { |
| // Test escape sequences and java reserved words _00 |
| assertEquals("gopher.eclipse_org._00.weather.north_america",// |
| getPackageName("gopher://eclipse.org/00/Weather/North%20America.htm")); |
| } |
| |
| public void testPackageNameFromURI_024() { |
| assertEquals("gopher.class_package_int_super_com._00.weather.north_america",// |
| getPackageName("gopher://class.package.int.super.com/00/Weather/North%20America.htm")); |
| } |
| |
| public void testPackageNameFromURI_025() { |
| // Test reserved package names in JLS 7.7 have an underscore appended - but we are allowing them here |
| assertEquals("java.util.arraylist",// |
| getPackageName("http://ArrayList.util.java")); |
| } |
| |
| public void testPackageNameFromURI_026() { |
| assertEquals("else.float.abstract.class",// |
| getPackageName("http://class.abstract.float.else")); |
| } |
| |
| public void testPackageNameFromURI_027() { |
| assertEquals("veronica.eclipse",// |
| getPackageName("veronica://eclipse.org")); |
| } |
| |
| public void testPackageNameFromURI_028() { |
| assertEquals("archie.eclipse",// |
| getPackageName("archie://eclipse.org")); |
| } |
| |
| public void testPackageNameFromURI_029() { |
| assertEquals("telnet.eclipse_org",// |
| getPackageName("telnet://eclipse.org/")); |
| } |
| |
| public void testPackageNameFromURI_030() { |
| // trailing slash will retain "org" |
| assertEquals("org.eclipse",// |
| getPackageName("http://eclipse.org")); |
| } |
| |
| public void testPackageNameFromURI_031() { |
| // test item 6 in the spec "www" must be dropped but not com |
| assertEquals("com.topleveldomain.layer.app",// |
| getPackageName("http://www.app.layer.topleveldomain.com")); |
| } |
| |
| public void testPackageNameFromURI_032() { |
| // should be oracle.com |
| assertEquals("org.eclipse",// |
| getPackageName("http://www.eclipse.org")); |
| } |
| |
| public void testPackageNameFromURI_033() { |
| // ftp |
| assertEquals("ftp.app_layer_topleveldomain_com.file",// |
| getPackageName("ftp://app.layer.topleveldomain.com/file.htm")); |
| } |
| |
| public void testPackageNameFromURI_034() { |
| assertEquals("file.app_layer_topleveldomain_com.file_xsd_action_xsd_param2_2nd",// |
| getPackageName("file://app.layer.topleveldomain.com/file.xsd?action=xsd¶m2=2nd")); |
| } |
| |
| public void testPackageNameFromURI_035() { |
| // Test metacharacter package separator handling |
| assertEquals(SDOConstants.JAVA_TYPEGENERATION_DEFAULT_PACKAGE_NAME,// was _ |
| getPackageName(".")); |
| } |
| |
| public void testPackageNameFromURI_036() { |
| // Test metacharacter package separator handling |
| assertEquals(SDOConstants.JAVA_TYPEGENERATION_DEFAULT_PACKAGE_NAME,// |
| getPackageName("/.")); |
| } |
| |
| public void testPackageNameFromURI_037() { |
| // Test metacharacter package separator handling |
| assertEquals(SDOConstants.JAVA_TYPEGENERATION_DEFAULT_PACKAGE_NAME,// |
| getPackageName("..")); |
| } |
| public void testPackageNameFromUriWithDotsButNoScheme() { |
| assertEquals("uri2.my", getPackageName("my.uri2")); |
| |
| assertEquals("uri.my", getPackageName("my.uri")); |
| |
| assertEquals("uri.my.test.file", getPackageName("my.uri/test/file.xsd")); |
| } |
| |
| public void testPackageNameFromUriWithDotsAndScheme() { |
| assertEquals("uri2.my", getPackageName("http://my.uri2")); |
| |
| assertEquals("uri.my", getPackageName("http://my.uri")); |
| |
| assertEquals("uri.my.file", getPackageName("http://my.uri/file.xsd")); |
| } |
| |
| public void testPackageNameFromUriWithDotsAndInvalidScheme() { |
| assertEquals("abc.my", getPackageName("abc://my.uri")); |
| } |
| |
| public static void main(String[] args) { |
| String[] arguments = { "-c", "org.eclipse.persistence.testing.sdo.model.type.DefaultPackageFromTypeGenerationTestCases" }; |
| TestRunner.main(arguments); |
| } |
| |
| } |