Package org.gephi.data.attributes

Source Code of org.gephi.data.attributes.AttributeClassTest

/*
Copyright 2008-2010 Gephi
Authors : Mathieu Bastian <mathieu.bastian@gephi.org>
Website : http://www.gephi.org

This file is part of Gephi.

Gephi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

Gephi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with Gephi.  If not, see <http://www.gnu.org/licenses/>.
*/
package org.gephi.data.attributes;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.gephi.data.attributes.api.AttributeOrigin;
import org.gephi.data.attributes.api.AttributeRow;
import org.gephi.data.attributes.api.AttributeType;
import org.gephi.data.attributes.api.AttributeValue;
import org.gephi.data.attributes.model.TemporaryAttributeModel;
import org.gephi.data.attributes.type.StringList;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
*
* @author Mathieu
*/
public class AttributeClassTest {

    private AbstractAttributeModel manager;
    private AttributeTableImpl nodeClass;
    private AttributeFactoryImpl factory;
    //Test map
    private Map<String, AttributeColumnImpl> columnMap;
    private List<AttributeRowImpl> rows;

    public AttributeClassTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
        manager = new TemporaryAttributeModel();
        nodeClass = manager.getNodeTable();
        factory = new AttributeFactoryImpl(manager);
        columnMap = new HashMap<String, AttributeColumnImpl>();
        rows = new ArrayList<AttributeRowImpl>();

        AttributeColumnImpl co1 = nodeClass.addColumn("col1", "Column 1", AttributeType.STRING, AttributeOrigin.DATA, "nil");
        AttributeColumnImpl co2 = nodeClass.addColumn("col2", "Column 2", AttributeType.INT, AttributeOrigin.PROPERTY, 0);
        AttributeColumnImpl co3 = nodeClass.addColumn("col3", "Column 3", AttributeType.LIST_STRING, AttributeOrigin.DATA, new StringList("nothing", ","));
        AttributeColumnImpl co4 = nodeClass.addColumn("col4", "Column 4", AttributeType.STRING, AttributeOrigin.COMPUTED, "zero");
        AttributeColumnImpl co5 = nodeClass.addColumn("col5", "Column 5", AttributeType.BOOLEAN, AttributeOrigin.DATA, true);
        AttributeColumnImpl co6 = nodeClass.addColumn("col6", "Column 6", AttributeType.STRING, AttributeOrigin.DATA, "default");

        columnMap.put("col1", co1);
        columnMap.put("col2", co2);
        columnMap.put("col3", co3);
        columnMap.put("col4", co4);
        columnMap.put("col5", co5);
        columnMap.put("col6", co6);

        //Rows
        for (int i = 0; i < 10; i++) {
            AttributeRowImpl r = factory.newNodeRow(null);
            r.setValue(co1, "col1value " + i);
            r.setValue("col2", i);
            r.setValue("Column 3", null);
            r.setValue(3, "col4value " + i);
            r.setValue(factory.newValue(co5, false));
            rows.add(r);
        }

    }

    @After
    public void tearDown() {
        manager = null;
    }

    @Test
    public void testGetColumn() {
        assertSame(columnMap.get("col1"), nodeClass.getColumn("col1"));
        assertSame(columnMap.get("col1"), nodeClass.getColumn("Column 1"));
        assertSame(columnMap.get("col1"), nodeClass.getColumn(0));
        assertTrue(nodeClass.hasColumn("col1"));
        assertTrue(nodeClass.hasColumn("Column 1"));
    }

    @Test
    public void testValues() {
        int i = 0;

        AttributeRow row = rows.get(0);
        assertEquals("col1value 0", row.getValue(columnMap.get("col1")));
        assertEquals(0, row.getValue(columnMap.get("col2")));
        assertNull(row.getValue(columnMap.get("col3")));
        assertEquals("col4value 0", row.getValue(columnMap.get("col4")));
        assertEquals(false, row.getValue(columnMap.get("col5")));
        assertEquals(columnMap.get("col6").getDefaultValue(), row.getValue(columnMap.get("col6")));

        showValues(row);
    }

    @Test
    public void testAddColumn() {
        AttributeColumnImpl co7 = nodeClass.addColumn("col7", "Column 7", AttributeType.STRING, AttributeOrigin.DATA, "def");
        columnMap.put("col7", co7);

        //Test GetColumn
        assertSame(co7, nodeClass.getColumn("col7"));

        //Test value
        AttributeRow row = rows.get(0);
        assertEquals(columnMap.get("col7").getDefaultValue(), row.getValue(columnMap.get("col7")));
        row.setValue(co7, "test");
        assertEquals("test", row.getValue(columnMap.get("col7")));

        showValues(row);
    }

    @Test
    public void testDeleteColumn() {
        nodeClass.removeColumn(columnMap.get("col4"));

        //Test GetColumn
        assertNull(nodeClass.getColumn("col4"));

        //Test value
        AttributeRow row = rows.get(0);
        assertNull(row.getValue(columnMap.get("col4")));

        showValues(row);
    }

    public void showValues(AttributeRow row) {
        System.out.print("Values: ");
        for (AttributeValue val : row.getValues()) {
            System.out.print("#" + val.getValue() + " ");
        }
        System.out.println();
    }
}
TOP

Related Classes of org.gephi.data.attributes.AttributeClassTest

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.