/* * 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.Collection; import javax.xml.transform.dom.DOMSource; import org.junit.Before; import org.junit.Test; import org.wamblee.xmlrouter.common.Id; import org.wamblee.xmlrouter.config.Transformation; public class TransformationsTest { public static class MyTransformation implements Transformation { private String from; private String to; public MyTransformation(String aFrom, String aTo) { from = aFrom; to = aTo; } @Override public String getName() { return "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 Transformations transformations; @Before public void setUp() { transformations = new Transformations(); } @Test public void testOneTransformation() { Id seqno = transformations .addTransformation(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() { Id seqno1 = transformations .addTransformation(new MyTransformation("A", "B")); Id seqno2 = transformations .addTransformation(new MyTransformation("B", "C")); Id seqno3 = transformations .addTransformation(new MyTransformation("C", "A")); System.out.println(transformations); assertEquals(2, transformations.getPath("C", "B").size()); assertFalse(seqno1.equals(seqno2)); assertFalse(seqno2.equals(seqno3)); assertFalse(seqno1.equals(seqno3)); transformations.removeTransformation(seqno1); assertNull(transformations.getPath("C", "B")); } @Test public void testUnknownDestination() { transformations.addTransformation(new MyTransformation("A", "B")); assertNull(transformations.getPath("A", "D")); } @Test public void testWithoutTransformations() { 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")); } }