diff --git a/src/test/java/com/github/olivergondza/saxeed/NamespaceTest.java b/src/test/java/com/github/olivergondza/saxeed/NamespaceTest.java index f5975fc..ea9771a 100644 --- a/src/test/java/com/github/olivergondza/saxeed/NamespaceTest.java +++ b/src/test/java/com/github/olivergondza/saxeed/NamespaceTest.java @@ -3,9 +3,12 @@ import com.github.olivergondza.saxeed.ex.FailedTransforming; import org.junit.jupiter.api.Test; +import java.nio.file.Path; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Set; import java.util.function.Consumer; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -315,4 +318,29 @@ void nsSubscribe() { "plain>default>A:a>d>", "d(DEFAULT)" ), namespaced.visited); } + + @Test + void processRealistic() { + Subscribed subs = Subscribed.to().namespaceUris("http://www.w3.org/2001/XMLSchema").build(); + + class Visitor implements UpdatingVisitor { + public final Set qualifiedNames = new HashSet<>(); + + @Override + public void startTag(Tag.Start tag) throws FailedTransforming { + qualifiedNames.add(tag.getName().getQualifiedName()); + } + } + Visitor visitor = new Visitor(); + TransformationBuilder tb = new TransformationBuilder().add(subs, visitor); + new Saxeed() + .setInput(Path.of("src/test/resources/schema.xsd")) + .addTransformation(tb) + .transform() + ; + + assertEquals(Set.of( + "xs:schema", "xs:element", "xs:complexType", "xs:sequence", "xs:attribute" + ), visitor.qualifiedNames); + } } diff --git a/src/test/resources/schema.xsd b/src/test/resources/schema.xsd new file mode 100644 index 0000000..e3530e3 --- /dev/null +++ b/src/test/resources/schema.xsd @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +