Package lv.odylab.evemanage.client.presenter.tab.calculator

Source Code of lv.odylab.evemanage.client.presenter.tab.calculator.CalculationTreeTest

package lv.odylab.evemanage.client.presenter.tab.calculator;

import lv.odylab.evemanage.client.rpc.PathExpression;
import lv.odylab.evemanage.client.rpc.dto.calculation.CalculationDto;
import lv.odylab.evemanage.client.rpc.dto.calculation.CalculationItemDto;
import org.junit.Before;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;

public class CalculationTreeTest {
    private CalculationTree calculationTree;

    @Before
    public void setUp() {
        calculationTree = new CalculationTree();
    }

    @Test
    public void testBuild() {
        CalculationDto calculation = new CalculationDto();
        CalculationItemDto calculationItem1 = new CalculationItemDto();
        calculationItem1.setPathExpression(new PathExpression(new Long[]{1L, 2L, 3L}));
        CalculationItemDto calculationItem2 = new CalculationItemDto();
        calculationItem2.setPathExpression(new PathExpression(new Long[]{1L, 2L, 4L}));
        List<CalculationItemDto> calculationItems = new ArrayList<CalculationItemDto>();
        calculationItems.add(calculationItem1);
        calculationItems.add(calculationItem2);
        calculation.setItems(calculationItems);
        calculationTree.build(calculation);

        assertNotNull(calculationTree.getNodeByPathNodes(new Long[]{1L, 2L, 3L}));
        assertNotNull(calculationTree.getNodeByPathNodes(new Long[]{1L, 2L, 4L}));
    }

    @Test
    public void testCreateNode_FirstNodeMustBeIgnored() {
        CalculationItemDto calculationItem = new CalculationItemDto();
        calculationItem.setPathExpression(new PathExpression(new Long[]{1L, 2L, 3L}));
        calculationTree.createNode(calculationItem);

        Map<Long, CalculationTreeNode> nodeMap = calculationTree.getNodeMap();
        assertNull(nodeMap.get(1L));
        CalculationTreeNode node2 = nodeMap.get(2L);
        assertNotNull(node2);
        nodeMap = node2.getNodeMap();
        CalculationTreeNode node3 = nodeMap.get(3L);
        assertNotNull(node3);
    }

    @Test
    public void testCreateNode_AddingChildren() {
        CalculationItemDto calculationItem1 = new CalculationItemDto();
        calculationItem1.setPathExpression(new PathExpression(new Long[]{1L, 2L, 3L}));
        calculationTree.createNode(calculationItem1);
        CalculationItemDto calculationItem2 = new CalculationItemDto();
        calculationItem2.setPathExpression(new PathExpression(new Long[]{1L, 2L, 4L}));
        calculationTree.createNode(calculationItem2);

        Map<Long, CalculationTreeNode> nodeMap = calculationTree.getNodeMap().get(2L).getNodeMap();
        CalculationTreeNode node3 = nodeMap.get(3L);
        CalculationTreeNode node4 = nodeMap.get(4L);
        assertNotNull(node3);
        assertNotNull(node4);
    }

    @Test
    public void testCreateNode_AddingManyChildren() {
        CalculationItemDto calculationItem1 = new CalculationItemDto();
        calculationItem1.setPathExpression(new PathExpression(new Long[]{1L, 2L, 3L}));
        calculationTree.createNode(calculationItem1);
        CalculationItemDto calculationItem2 = new CalculationItemDto();
        calculationItem2.setPathExpression(new PathExpression(new Long[]{1L, 2L, 4L}));
        calculationTree.createNode(calculationItem2);
        CalculationItemDto calculationItem3 = new CalculationItemDto();
        calculationItem3.setPathExpression(new PathExpression(new Long[]{1L, 5L, 6L}));
        calculationTree.createNode(calculationItem3);
        CalculationItemDto calculationItem4 = new CalculationItemDto();
        calculationItem4.setPathExpression(new PathExpression(new Long[]{1L, 5L, 7L}));
        calculationTree.createNode(calculationItem4);

        Map<Long, CalculationTreeNode> nodeMap = calculationTree.getNodeMap().get(2L).getNodeMap();
        CalculationTreeNode node3 = nodeMap.get(3L);
        CalculationTreeNode node4 = nodeMap.get(4L);
        nodeMap = calculationTree.getNodeMap().get(5L).getNodeMap();
        CalculationTreeNode node6 = nodeMap.get(6L);
        CalculationTreeNode node7 = nodeMap.get(7L);
        assertNotNull(node3);
        assertNotNull(node4);
        assertNotNull(node6);
        assertNotNull(node7);
    }

    @Test
    public void testGetNodeByPathNodes() {
        CalculationItemDto calculationItem = new CalculationItemDto();
        calculationItem.setPathExpression(new PathExpression(new Long[]{1L, 2L, 3L}));
        calculationTree.createNode(calculationItem);

        assertNotNull(calculationTree.getNodeByPathNodes(new Long[]{1L, 2L, 3L}));
    }

    @Test
    public void testGetNodeByPathNodes_Many() {
        CalculationItemDto calculationItem1 = new CalculationItemDto();
        calculationItem1.setPathExpression(new PathExpression(new Long[]{1L, 2L, 3L}));
        calculationTree.createNode(calculationItem1);
        CalculationItemDto calculationItem2 = new CalculationItemDto();
        calculationItem2.setPathExpression(new PathExpression(new Long[]{1L, 2L, 4L}));
        calculationTree.createNode(calculationItem2);
        CalculationItemDto calculationItem3 = new CalculationItemDto();
        calculationItem3.setPathExpression(new PathExpression(new Long[]{1L, 5L, 6L}));
        calculationTree.createNode(calculationItem3);
        CalculationItemDto calculationItem4 = new CalculationItemDto();
        calculationItem4.setPathExpression(new PathExpression(new Long[]{1L, 5L, 7L}));
        calculationTree.createNode(calculationItem4);

        assertNotNull(calculationTree.getNodeByPathNodes(new Long[]{1L, 2L, 3L}));
        assertNotNull(calculationTree.getNodeByPathNodes(new Long[]{1L, 2L, 4L}));
        assertNotNull(calculationTree.getNodeByPathNodes(new Long[]{1L, 5L, 6L}));
        assertNotNull(calculationTree.getNodeByPathNodes(new Long[]{1L, 5L, 7L}));
    }
}
TOP

Related Classes of lv.odylab.evemanage.client.presenter.tab.calculator.CalculationTreeTest

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.