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