workcraft/workcraft

View on GitHub
workcraft/WorkcraftCore/test-src/org/workcraft/utils/ModelUtilsTests.java

Summary

Maintainability
A
0 mins
Test Coverage
package org.workcraft.utils;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.workcraft.dom.math.MathConnection;
import org.workcraft.dom.math.MathModel;
import org.workcraft.dom.math.MathNode;
import org.workcraft.dom.visual.MockMathModel;
import org.workcraft.exceptions.InvalidConnectionException;

class ModelUtilsTests {

    static class MockNode extends MathNode {
    }

    @Test
    void testGroupWithEmptySelection() throws InvalidConnectionException {
        MathModel model = new MockMathModel();

        MathNode n1 = new MockNode();
        MathNode n2 = new MockNode();
        MathNode n3 = new MockNode();
        MathNode n4 = new MockNode();
        MathNode n5 = new MockNode();

        model.add(n1);
        model.add(n2);
        model.add(n3);
        model.add(n4);
        model.add(n5);

        model.connect(n1, n2);
        MathConnection c23 = model.connect(n2, n3);
        model.connect(n3, n4);
        model.connect(n4, n5);
        model.connect(n4, n1);
        MathConnection c14 = model.connect(n1, n4);

        Assertions.assertFalse(ModelUtils.hasPath(model, n5, n1));
        Assertions.assertTrue(ModelUtils.hasPath(model, n2, n3));
        Assertions.assertTrue(ModelUtils.hasPath(model, n1, n4));

        Assertions.assertFalse(ModelUtils.isTransitive(model, c23));
        Assertions.assertTrue(ModelUtils.isTransitive(model, c14));
    }

}