test/jdk/com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
author xyin
Tue, 13 Feb 2018 12:26:22 +0800
changeset 48852 478e198da84b
child 49127 73385a708426
permissions -rw-r--r--
8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java Reviewed-by: vtewari, rriggs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48852
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
     1
/*
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
     2
 * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
     4
 *
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
     7
 * published by the Free Software Foundation.
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
     8
 *
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    13
 * accompanied this code).
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    14
 *
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    18
 *
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    21
 * questions.
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    22
 */
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    23
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    24
/*
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    25
 * @test
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    26
 * @bug 8196770
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    27
 * @summary Verify capability to add a new entry to the directory using the
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    28
 *          ADD operation.
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    29
 * @modules java.xml.bind
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    30
 *          java.naming/com.sun.jndi.ldap
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    31
 * @library ../../lib/ /javax/naming/module/src/test/test/
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    32
 * @build LDAPServer LDAPTestUtils
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    33
 * @run main AddNewEntry
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    34
 */
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    35
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    36
import javax.naming.NamingEnumeration;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    37
import javax.naming.directory.Attribute;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    38
import javax.naming.directory.Attributes;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    39
import javax.naming.directory.BasicAttribute;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    40
import javax.naming.directory.BasicAttributes;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    41
import javax.naming.directory.DirContext;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    42
import javax.naming.directory.InitialDirContext;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    43
import javax.naming.directory.SearchControls;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    44
import java.net.ServerSocket;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    45
import java.util.Hashtable;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    46
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    47
public class AddNewEntry {
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    48
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    49
    public static void main(String[] args) throws Exception {
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    50
        ServerSocket serverSocket = new ServerSocket(0);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    51
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    52
        Hashtable<Object, Object> env;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    53
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    54
        // initialize test
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    55
        env = LDAPTestUtils
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    56
                .initEnv(serverSocket, AddNewEntry.class.getName(), args, true);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    57
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    58
        /* Build attribute set */
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    59
        String[] ids = { "objectClass", "sn", "cn", "telephoneNumber", "mail",
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    60
                "description", "uid" };
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    61
        Attribute objectClass = new BasicAttribute(ids[0]);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    62
        objectClass.add("top");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    63
        objectClass.add("person");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    64
        objectClass.add("organizationalPerson");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    65
        objectClass.add("inetOrgPerson");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    66
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    67
        Attribute sn = new BasicAttribute(ids[1], "Powers");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    68
        Attribute cn = new BasicAttribute(ids[2],
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    69
                "Austin \\\"Danger\\\" Powers");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    70
        Attribute telephoneNumber = new BasicAttribute(ids[3], "+44 582 10101");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    71
        Attribute mail = new BasicAttribute(ids[4], "secret_agent_man@imc.org");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    72
        Attribute description = new BasicAttribute(ids[5], "Yea Baby!!");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    73
        description.add("Behave!");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    74
        Attribute uid = new BasicAttribute(ids[6], "secret_agent_man");
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    75
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    76
        Attributes attrs = new BasicAttributes();
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    77
        attrs.put(objectClass);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    78
        attrs.put(sn);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    79
        attrs.put(cn);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    80
        attrs.put(telephoneNumber);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    81
        attrs.put(mail);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    82
        attrs.put(description);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    83
        attrs.put(uid);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    84
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    85
        DirContext ctx = null;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    86
        String[] bases = new String[] { (String) env.get("client"),
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    87
                (String) env.get("vendor"), "Add" };
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    88
        String baseDN = LDAPTestUtils.buildDN(bases, (String) env.get("root"));
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    89
        String entryDN = "cn=Austin Powers," + baseDN;
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    90
        String expect = ""; // relative name
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    91
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    92
        try {
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    93
            // connect to server
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    94
            ctx = new InitialDirContext(env);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    95
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    96
            // add entry
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    97
            ctx.createSubcontext(entryDN, attrs);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    98
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
    99
            // specify base search
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   100
            SearchControls constraints = new SearchControls();
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   101
            constraints.setSearchScope(SearchControls.OBJECT_SCOPE);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   102
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   103
            NamingEnumeration results = ctx
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   104
                    .search(entryDN, "(objectclass=*)", constraints);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   105
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   106
            int found = LDAPTestUtils.checkResult(results, expect);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   107
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   108
            if (found != 1) {
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   109
                throw new RuntimeException(
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   110
                        "Check result failed, expect found 1 but actual is "
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   111
                                + found);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   112
            }
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   113
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   114
        } finally {
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   115
            LDAPTestUtils.cleanupSubcontext(ctx, entryDN);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   116
            LDAPTestUtils.cleanup(ctx);
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   117
        }
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   118
    }
478e198da84b 8196770: Add JNDI test com/sun/jndi/ldap/blits/AddTests/AddNewEntry.java
xyin
parents:
diff changeset
   119
}