/* * Copyright 2005-2011 the original author or authors. * * 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. */ package org.wamblee.xmlrouter.impl; import static junit.framework.Assert.*; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.xml.transform.dom.DOMSource; import org.junit.Test; import org.wamblee.xmlrouter.common.Id; import org.wamblee.xmlrouter.config.Transformation; public class TransformationPathsTest { public static class MyTransformation implements Transformation { private String from; private String to; public MyTransformation(String aFrom, String aTo) { from = aFrom; to = aTo; } @Override public Id getId() { return new Id("myname"); } @Override public String getFromType() { return from; } @Override public String getToType() { return to; } @Override public DOMSource transform(DOMSource aDocument) { return null; } @Override public String toString() { return from + "->" + to; } } private TransformationPaths transformations; private List createTransformations(long aStartId, Transformation... aTransformations) { List res = new ArrayList(); for (Transformation t : aTransformations) { res.add(t); } return res; } @Test public void testOneTransformation() { transformations = new TransformationPaths(createTransformations(10L, new MyTransformation("A", "B"))); System.out.println(transformations.toString()); TransformationPath path = transformations.getPath("A", "B"); assertEquals(1, path.size()); assertNull(transformations.getPath("B", "A")); assertEquals(0, transformations.getPath("A", "A").size()); assertEquals(0, transformations.getPath("B", "B").size()); Collection possibleTargets = transformations .getPossibleTargetTypes("A"); assertEquals(2, possibleTargets.size()); assertTrue(possibleTargets.contains("A")); assertTrue(possibleTargets.contains("B")); } @Test public void testMultipleTransformations() { transformations = new TransformationPaths(createTransformations(10L, new MyTransformation("A", "B"), new MyTransformation("B", "C"), new MyTransformation("C", "A"))); System.out.println(transformations); assertEquals(2, transformations.getPath("C", "B").size()); transformations = new TransformationPaths(createTransformations(10L, new MyTransformation("B", "C"), new MyTransformation("C", "A"))); assertNull(transformations.getPath("C", "B")); } @Test public void testUnknownDestination() { transformations = new TransformationPaths(createTransformations(10L, new MyTransformation("A", "B"))); assertNull(transformations.getPath("A", "D")); } @Test public void testWithoutTransformations() { transformations = new TransformationPaths( new ArrayList()); Collection res = transformations.getPossibleTargetTypes("a"); assertEquals(1, res.size()); TransformationPath path = transformations.getPath("A", "A"); assertNotNull(path); assertEquals(0, path.size()); assertNull(transformations.getPath("B", "C")); } }