/*
* Copyright (c) 2002-2012 Alibaba Group Holding Limited.
* All rights reserved.
*
* 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 com.alibaba.citrus.springext.export;
import static org.junit.Assert.*;
import java.io.IOException;
import com.alibaba.citrus.springext.impl.ConfigurationPointsImpl;
import com.alibaba.citrus.test.TestEnvStatic;
import org.junit.Before;
import org.junit.Test;
public class SchemaExporterTests {
protected SchemaExporter exporter;
protected ConfigurationPointsImpl cps;
static {
TestEnvStatic.init();
}
@Before
public void init() {
cps = new ConfigurationPointsImpl((ClassLoader) null, "TEST-INF/test9/cps");
exporter = createExporter();
}
protected SchemaExporter createExporter() {
return new SchemaExporter(cps);
}
@Test
public void test9_tree() throws IOException {
String tree = exporter.getRootEntry().tree();
System.out.println("--");
System.out.println(tree);
String result = "\n";
result += "+---my-plugins.xsd\n";
result += "+---my-services.xsd\n";
result += "+---my-services-1.0.xsd\n";
result += "+---my-services-2.0.xsd\n";
result += "\\---my/\n";
result += " +---plugins/\n";
result += " | \\---plugin1.xsd\n";
result += " \\---services/\n";
result += " +---service1.xsd\n";
result += " +---service1-1.0.xsd\n";
result += " +---service2.xsd\n";
result += " +---service2-2.0.xsd\n";
result += " \\---service3.xsd\n";
assertEquals(result, tree);
tree = exporter.getEntry("my/plugins/").tree();
System.out.println("--");
System.out.println(tree);
result = "plugins/\n";
result += "\\---plugin1.xsd\n";
assertEquals(result, tree);
}
@Test
public void test9_getEntry() {
SchemaExporter.Entry entry;
entry = exporter.getEntry("my/plugins/");
assertEquals("my/plugins/", entry.getPath());
assertEquals("plugins/", entry.getName());
assertTrue(entry.isDirectory());
assertFalse(entry.isRoot());
assertEquals(1, entry.getSubEntries().size());
entry = exporter.getEntry("my/services/service1.xsd");
assertEquals("my/services/service1.xsd", entry.getPath());
assertEquals("service1.xsd", entry.getName());
assertFalse(entry.isDirectory());
assertFalse(entry.isRoot());
assertEquals(0, entry.getSubEntries().size());
}
@Test
public void test9_containsSchemaWithTargetNamespace() {
SchemaExporter.Entry entry;
entry = exporter.getRootEntry();
assertTrue(entry.containsSchemaWithTargetNamespace());
entry = exporter.getEntry("my-plugins.xsd");
assertTrue(entry.containsSchemaWithTargetNamespace());
entry = exporter.getEntry("my/plugins/");
assertFalse(entry.containsSchemaWithTargetNamespace());
entry = exporter.getEntry("my/services/service1.xsd");
assertFalse(entry.containsSchemaWithTargetNamespace());
}
}