Package

Source Code of GroupTest

/*******************************************************************************
* Copyright 2002-2014, OpenNebula Project (OpenNebula.org), C12G Labs
*
* 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.
******************************************************************************/
import static org.junit.Assert.assertTrue;

import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.opennebula.client.Client;
import org.opennebula.client.OneResponse;
import org.opennebula.client.OneSystem;
import org.opennebula.client.group.Group;
import org.opennebula.client.group.GroupPool;
import org.w3c.dom.Node;

public class GroupTest
{

    private static Group        group;
    private static GroupPool    groupPool;

    private static Client       client;

    private static OneResponse  res;

    private static String       group_name = "test_group";

    /**
     * @throws java.lang.Exception
     */
    @BeforeClass
    public static void setUpBeforeClass() throws Exception
    {
        client      = new Client();
        groupPool   = new GroupPool(client);
    }

    /**
     * @throws java.lang.Exception
     */
    @AfterClass
    public static void tearDownAfterClass() throws Exception
    {
    }

    /**
     * @throws java.lang.Exception
     */
    @Before
    public void setUp() throws Exception
    {
        res = Group.allocate(client, group_name);

        int group_id = res.isError() ? -1 : Integer.parseInt(res.getMessage());
        group = new Group(group_id, client);
    }

    /**
     * @throws java.lang.Exception
     */
    @After
    public void tearDown() throws Exception
    {
        group.delete();
    }

    @Test
    public void allocate()
    {
        group.delete();

        res = Group.allocate(client, group_name);
        assertTrue( res.getErrorMessage(), !res.isError() );

        int group_id = res.isError() ? -1 : Integer.parseInt(res.getMessage());
        group = new Group(group_id, client);


        groupPool.info();

        boolean found = false;
        for(Group img : groupPool)
        {
            found = found || img.getName().equals(group_name);
        }

        assertTrue( found );
    }

    @Test
    public void info()
    {
        res = group.info();
        assertTrue( res.getErrorMessage(), !res.isError() );

        assertTrue( group.id() >= 100 );
        assertTrue( group.getName().equals(group_name) );
    }

    @Test
    public void delete()
    {
        res = group.delete();
        assertTrue( res.getErrorMessage(), !res.isError() );

        res = group.info();
        assertTrue( res.isError() );

        res = groupPool.info();
        assertTrue( res.getErrorMessage(), !res.isError() );

        boolean found = false;
        for(Group g : groupPool)
        {
            found = found || g.getName().equals(group_name);
        }

        assertTrue( !found );
    }

    @Test
    public void defaultqutoas()
    {
        OneSystem system = new OneSystem(client);

        res = system.getGroupQuotas();
        assertTrue( res.getErrorMessage(), !res.isError() );

        res = system.setGroupQuotas("VM = [ VMS = 7, MEMORY = 0, CPU = 3, VOLATILE_SIZE = 1 ]");
        assertTrue( res.getErrorMessage(), !res.isError() );

        Node node = system.getGroupQuotasXML();
        XPathFactory factory = XPathFactory.newInstance();
        XPath xpath = factory.newXPath();

        try
        {
            assertTrue( xpath.evaluate("VM_QUOTA/VM/VMS", node).equals("7") );
        } catch (XPathExpressionException e)
        {
            assertTrue(e.getMessage(), false);
        }
    }

//  Commented out, secondary groups do not exist any more
/*
    @Test
    public void userGroupRelations()
    {
        Hashtable<String, User> users   = new Hashtable<String, User>();
        Hashtable<String, Group> groups = new Hashtable<String, Group>();

        // Create all users and groups. Add user_* to corresponding group_*
        String[] names = {"a", "b", "c", "d"};
        for(String name : names)
        {
            res = User.allocate(client, "user_"+name, "password");
            assertTrue( res.getErrorMessage(), !res.isError() );

            users.put(  name,
                        new User(Integer.parseInt(res.getMessage()), client )
                    );

            res = Group.allocate(client, "group_"+name);
            assertTrue( res.getErrorMessage(), !res.isError() );

            groups.put(  name,
                    new Group(Integer.parseInt(res.getMessage()), client )
                );

            users.get(name).addgroup( groups.get(name).id() );
        }

        // Add all users to group_b
        for( User u : users.values() )
        {
            u.addgroup( groups.get("b").id() );
        }

        // Change user_c & _d main group
        users.get("c").chgrp( groups.get("d").id() );
        users.get("d").chgrp( groups.get("c").id() );


        // Check cross-references so far
        for( User u : users.values() )
        {
            assertTrue( !u.info().isError() );
        }

        for( Group g : groups.values() )
        {
            assertTrue( !g.info().isError() );
        }

        assertTrue(  users.get("a").isPartOf( groups.get("a").id() ) );
        assertTrue(  users.get("a").isPartOf( groups.get("b").id() ) );
        assertFalse( users.get("a").isPartOf( groups.get("c").id() ) );
        assertFalse( users.get("a").isPartOf( groups.get("d").id() ) );

        assertFalse( users.get("b").isPartOf( groups.get("a").id() ) );
        assertTrue(  users.get("b").isPartOf( groups.get("b").id() ) );
        assertFalse( users.get("b").isPartOf( groups.get("c").id() ) );
        assertFalse( users.get("b").isPartOf( groups.get("d").id() ) );

        assertFalse( users.get("c").isPartOf( groups.get("a").id() ) );
        assertTrue(  users.get("c").isPartOf( groups.get("b").id() ) );
        assertTrue(  users.get("c").isPartOf( groups.get("c").id() ) );
        assertTrue(  users.get("c").isPartOf( groups.get("d").id() ) );

        assertFalse( users.get("d").isPartOf( groups.get("a").id() ) );
        assertTrue(  users.get("d").isPartOf( groups.get("b").id() ) );
        assertTrue(  users.get("d").isPartOf( groups.get("c").id() ) );
        assertTrue(  users.get("d").isPartOf( groups.get("d").id() ) );

        assertTrue(  groups.get("a").contains( users.get("a").id() ) );
        assertFalse( groups.get("a").contains( users.get("b").id() ) );
        assertFalse( groups.get("a").contains( users.get("c").id() ) );
        assertFalse( groups.get("a").contains( users.get("d").id() ) );

        assertTrue(  groups.get("b").contains( users.get("a").id() ) );
        assertTrue(  groups.get("b").contains( users.get("b").id() ) );
        assertTrue(  groups.get("b").contains( users.get("c").id() ) );
        assertTrue(  groups.get("b").contains( users.get("d").id() ) );

        assertFalse( groups.get("c").contains( users.get("a").id() ) );
        assertFalse( groups.get("c").contains( users.get("b").id() ) );
        assertTrue(  groups.get("c").contains( users.get("c").id() ) );
        assertTrue(  groups.get("c").contains( users.get("d").id() ) );
        assertFalse( groups.get("d").contains( users.get("a").id() ) );
        assertFalse( groups.get("d").contains( users.get("b").id() ) );
        assertTrue(  groups.get("d").contains( users.get("c").id() ) );
        assertTrue(  groups.get("d").contains( users.get("d").id() ) );
    }
*/
TOP

Related Classes of GroupTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.