visualweb.websvcmgr/test/unit/src/org/netbeans/modules/websvc/saas/model/SaasServicesModelTest.java
author Jesse Glick <jglick@netbeans.org>
Wed, 23 Mar 2011 16:50:27 -0400
changeset 3213 c85dcf71e424
permissions -rw-r--r--
Tests at least should compile now.
jglick@3213
     1
/*
jglick@3213
     2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
jglick@3213
     3
 *
jglick@3213
     4
 * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
jglick@3213
     5
 *
jglick@3213
     6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
jglick@3213
     7
 * Other names may be trademarks of their respective owners.
jglick@3213
     8
 *
jglick@3213
     9
 * The contents of this file are subject to the terms of either the GNU
jglick@3213
    10
 * General Public License Version 2 only ("GPL") or the Common
jglick@3213
    11
 * Development and Distribution License("CDDL") (collectively, the
jglick@3213
    12
 * "License"). You may not use this file except in compliance with the
jglick@3213
    13
 * License. You can obtain a copy of the License at
jglick@3213
    14
 * http://www.netbeans.org/cddl-gplv2.html
jglick@3213
    15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
jglick@3213
    16
 * specific language governing permissions and limitations under the
jglick@3213
    17
 * License.  When distributing the software, include this License Header
jglick@3213
    18
 * Notice in each file and include the License file at
jglick@3213
    19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
jglick@3213
    20
 * particular file as subject to the "Classpath" exception as provided
jglick@3213
    21
 * by Oracle in the GPL Version 2 section of the License file that
jglick@3213
    22
 * accompanied this code. If applicable, add the following below the
jglick@3213
    23
 * License Header, with the fields enclosed by brackets [] replaced by
jglick@3213
    24
 * your own identifying information:
jglick@3213
    25
 * "Portions Copyrighted [year] [name of copyright owner]"
jglick@3213
    26
 * 
jglick@3213
    27
 * If you wish your version of this file to be governed by only the CDDL
jglick@3213
    28
 * or only the GPL Version 2, indicate your decision by adding
jglick@3213
    29
 * "[Contributor] elects to include this software in this distribution
jglick@3213
    30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
jglick@3213
    31
 * single choice of license, a recipient has the option to distribute
jglick@3213
    32
 * your version of this file under either the CDDL, the GPL Version 2 or
jglick@3213
    33
 * to extend the choice of license to its licensees as provided above.
jglick@3213
    34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
jglick@3213
    35
 * Version 2 license, then the option applies only if the new code is
jglick@3213
    36
 * made subject to such option by the copyright holder.
jglick@3213
    37
 * 
jglick@3213
    38
 * Contributor(s):
jglick@3213
    39
 * 
jglick@3213
    40
 * Portions Copyrighted 2008 Sun Microsystems, Inc.
jglick@3213
    41
 */
jglick@3213
    42
jglick@3213
    43
package org.netbeans.modules.websvc.saas.model;
jglick@3213
    44
jglick@3213
    45
import org.netbeans.junit.NbTestCase;
jglick@3213
    46
import org.netbeans.modules.websvc.saas.spi.websvcmgr.WsdlData;
jglick@3213
    47
import org.netbeans.modules.websvc.saas.util.SetupUtil;
jglick@3213
    48
import org.openide.filesystems.FileObject;
jglick@3213
    49
import org.openide.filesystems.FileUtil;
jglick@3213
    50
import java.io.OutputStream;
jglick@3213
    51
import org.netbeans.modules.websvc.saas.util.SaasUtil;
jglick@3213
    52
jglick@3213
    53
/**
jglick@3213
    54
 *
jglick@3213
    55
 * @author nam
jglick@3213
    56
 */
jglick@3213
    57
public class SaasServicesModelTest extends NbTestCase {
jglick@3213
    58
    
jglick@3213
    59
    public static void resetSaasServicesModel() {
jglick@3213
    60
        SaasServicesModel.getInstance().reset();
jglick@3213
    61
    }
jglick@3213
    62
    
jglick@3213
    63
    public static void setWsdlData(WsdlSaas saas, WsdlData data) {
jglick@3213
    64
        saas.setWsdlData(data);
jglick@3213
    65
    }
jglick@3213
    66
    
jglick@3213
    67
    public SaasServicesModelTest(String testName) {
jglick@3213
    68
        super(testName);
jglick@3213
    69
    }            
jglick@3213
    70
jglick@3213
    71
    @Override
jglick@3213
    72
    protected void setUp() throws Exception {
jglick@3213
    73
        SetupUtil.commonSetUp(super.getWorkDir());
jglick@3213
    74
    }
jglick@3213
    75
jglick@3213
    76
    @Override
jglick@3213
    77
    protected void tearDown() throws Exception {
jglick@3213
    78
        SetupUtil.commonTearDown();
jglick@3213
    79
    }
jglick@3213
    80
jglick@3213
    81
    public void testLoading() throws Exception {
jglick@3213
    82
jglick@3213
    83
        SaasServicesModel instance = SaasServicesModel.getInstance();
jglick@3213
    84
        assertEquals("Zillow", instance.getGroups().get(1).getName());
jglick@3213
    85
        //No Sub-group for now
jglick@3213
    86
        //SaasGroup group = instance.getGroups().get(0).getChildGroup("Videos");
jglick@3213
    87
        //assertNotNull(group);
jglick@3213
    88
        SaasGroup group = instance.getGroups().get(1);
jglick@3213
    89
        WadlSaas service = (WadlSaas) group.getServices().get(0);
jglick@3213
    90
        assertEquals("Real Estate Service", service.getDisplayName());
jglick@3213
    91
        assertNotNull(service.getWadlModel());
jglick@3213
    92
jglick@3213
    93
        SetupUtil.commonTearDown();
jglick@3213
    94
    }
jglick@3213
    95
    
jglick@3213
    96
    public void testAddGroup() throws Exception {
jglick@3213
    97
jglick@3213
    98
        SaasServicesModel instance = SaasServicesModel.getInstance();
jglick@3213
    99
        instance.createGroup(instance.getRootGroup(), "groupA");
jglick@3213
   100
        SaasGroup added = instance.getRootGroup().getChildGroup("groupA");
jglick@3213
   101
        assertEquals("groupA", added.getName());
jglick@3213
   102
        instance.createGroup(added, "child1");
jglick@3213
   103
        SaasGroup child2 = instance.createGroup(added, "child2");
jglick@3213
   104
        instance.createGroup(child2, "grandChild");
jglick@3213
   105
        
jglick@3213
   106
        instance.reset();
jglick@3213
   107
        instance.initRootGroup();
jglick@3213
   108
        
jglick@3213
   109
        SaasGroup reloaded = instance.getRootGroup().getChildGroup("groupA");
jglick@3213
   110
        assertEquals("groupA", reloaded.getName());
jglick@3213
   111
        assertEquals(2, reloaded.getChildrenGroups().size());
jglick@3213
   112
        assertEquals("child1", reloaded.getChildGroup("child1").getName());
jglick@3213
   113
        assertEquals("grandChild", reloaded.getChildGroup("child2").getChildGroup("grandChild").getName());
jglick@3213
   114
jglick@3213
   115
        SetupUtil.commonTearDown();
jglick@3213
   116
    }
jglick@3213
   117
jglick@3213
   118
    public void testAddToPrePackagedGroup() throws Exception {
jglick@3213
   119
jglick@3213
   120
        System.out.println(getWorkDirPath());
jglick@3213
   121
        SaasServicesModel instance = SaasServicesModel.getInstance();
jglick@3213
   122
        SaasGroup delicious = instance.getTopGroup("Delicious");
jglick@3213
   123
        assertFalse(delicious.isUserDefined());
jglick@3213
   124
        assertNotNull(delicious.getChildService("Bookmarking Service"));
jglick@3213
   125
        instance.createGroup(delicious, "myDelicious");
jglick@3213
   126
        assertTrue(delicious.getChildGroup("myDelicious").isUserDefined());
jglick@3213
   127
        assertNotNull(delicious.getChildService("Bookmarking Service"));
jglick@3213
   128
        
jglick@3213
   129
        instance.reset();
jglick@3213
   130
        instance.initRootGroup();
jglick@3213
   131
        
jglick@3213
   132
        delicious = instance.getTopGroup("Delicious");
jglick@3213
   133
        assertFalse(delicious.isUserDefined());
jglick@3213
   134
        assertNotNull(delicious.getChildGroup("myDelicious"));
jglick@3213
   135
        assertTrue(delicious.getChildGroup("myDelicious").isUserDefined());
jglick@3213
   136
        assertNotNull(delicious.getChildService("Bookmarking Service"));
jglick@3213
   137
jglick@3213
   138
    }
jglick@3213
   139
jglick@3213
   140
    private FileObject setupLocalWadl() throws Exception {
jglick@3213
   141
        FileObject workDir = FileUtil.toFileObject(getWorkDir());
jglick@3213
   142
        FileObject wadl = workDir.getFileObject("application.wadl.xml");
jglick@3213
   143
        if (wadl == null) {
jglick@3213
   144
            wadl = workDir.createData("application.wadl.xml");
jglick@3213
   145
        }
jglick@3213
   146
        OutputStream out = wadl.getOutputStream();
jglick@3213
   147
        try {
jglick@3213
   148
            FileUtil.copy(getClass().getResourceAsStream("application.wadl"), out);
jglick@3213
   149
        } finally {
jglick@3213
   150
            out.close();
jglick@3213
   151
        }
jglick@3213
   152
        return wadl;
jglick@3213
   153
    }
jglick@3213
   154
jglick@3213
   155
    public void testAddWadlService() throws Exception {
jglick@3213
   156
        FileObject wadl = setupLocalWadl();
jglick@3213
   157
        
jglick@3213
   158
        String url = wadl.getURL().toExternalForm();
jglick@3213
   159
        SaasServicesModel instance = SaasServicesModel.getInstance();
jglick@3213
   160
        SaasGroup delicious = instance.getTopGroup("Delicious");
jglick@3213
   161
        SaasGroup myDelicious = instance.createGroup(delicious, "myDelicious");
jglick@3213
   162
        WadlSaas saas = (WadlSaas) instance.createSaasService(myDelicious, url, null);
jglick@3213
   163
        assertEquals(1, saas.getResources().size());
jglick@3213
   164
    }
jglick@3213
   165
jglick@3213
   166
    public void testRemoveGroupWithWadlService() throws Exception {
jglick@3213
   167
        FileObject wadl = setupLocalWadl();
jglick@3213
   168
        
jglick@3213
   169
        String url = wadl.getURL().toExternalForm();
jglick@3213
   170
        SaasServicesModel instance = SaasServicesModel.getInstance();
jglick@3213
   171
        SaasGroup delicious = instance.getTopGroup("Delicious");
jglick@3213
   172
        SaasGroup myDelicious = instance.createGroup(delicious, "myDelicious");
jglick@3213
   173
        instance.createSaasService(myDelicious, url, null);
jglick@3213
   174
        
jglick@3213
   175
        instance.reset();
jglick@3213
   176
        
jglick@3213
   177
        SaasGroup g = instance.getTopGroup("Delicious").getChildGroup("myDelicious");
jglick@3213
   178
        WadlSaas saas = (WadlSaas)g.getServices().get(0);
jglick@3213
   179
        assertEquals(1, saas.getResources().get(0).getMethods().size());
jglick@3213
   180
        assertNotNull(instance.getWebServiceHome().getFileObject(SaasUtil.toValidJavaName(saas.getDisplayName())));
jglick@3213
   181
        
jglick@3213
   182
        instance.removeGroup(g);
jglick@3213
   183
        assertNull(instance.getWebServiceHome().getFileObject(SaasUtil.toValidJavaName(saas.getDisplayName())));
jglick@3213
   184
        assertNull(instance.getTopGroup("Delicious").getChildGroup("myDelicious"));
jglick@3213
   185
    }
jglick@3213
   186
}