workcraft/workcraft

View on GitHub
workcraft/WorkcraftCore/test-src/org/workcraft/dom/hierarchy/HierarchicalUniqueNameReferenceManagerTest.java

Summary

Maintainability
A
2 hrs
Test Coverage
package org.workcraft.dom.hierarchy;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.workcraft.types.Pair;

import java.util.HashMap;
import java.util.Map.Entry;

class HierarchicalUniqueNameReferenceManagerTest {

    private static HashMap<String, Pair<String, String>> headTails = new HashMap<>() {
        private static final long serialVersionUID = -2931077011392124649L;
        {
            put("abc", Pair.of("abc", ""));
            put("abc.def", Pair.of("abc.", "def"));
            put("abc.def.ghi", Pair.of("abc.", "def.ghi"));
            put("abc/123.def.ghi", Pair.of("abc/123.", "def.ghi"));
            put("a.b.c+/123", Pair.of("a.", "b.c+/123"));
        }
    };

    @Test
    void testGetReferenceHead() {
        for (Entry<String, Pair<String, String>> en: headTails.entrySet()) {
            String reference = en.getKey();
            String head = en.getValue().getFirst();
            String answer = NamespaceHelper.getReferenceHead(reference);
            Assertions.assertEquals(head, answer);
        }
    }

    @Test
    void testGetReferenceTail() {
        for (Entry<String, Pair<String, String>> en: headTails.entrySet()) {
            String reference = en.getKey();
            String tail = en.getValue().getSecond();
            String answer = NamespaceHelper.getReferenceTail(reference);
            Assertions.assertEquals(tail, answer);
        }
    }

    private static HashMap<String, String> referencePaths = new HashMap<>() {
        private static final long serialVersionUID = -2931077011392124649L;
        {
            put("abc", "");
            put("abc.def", "abc.");
            put("abc.def.ghi", "abc.def.");
            put("abc.def.ghi/123", "abc.def.");
            put("abc.def.ghi+", "abc.def.");
            put("abc.def.ghi+/123", "abc.def.");
        }
    };

    @Test
    void testReferencePaths() {
        for (Entry<String, String> en: referencePaths.entrySet()) {
            String reference = en.getKey();
            String path = en.getValue();
            String answer = NamespaceHelper.getParentReference(reference);
            Assertions.assertEquals(path, answer);
        }
    }

}