📄 gomfeedimpltest.java
字号:
package org.apache.lucene.gdata.gom.core;/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */import java.io.StringWriter;import java.util.LinkedList;import java.util.List;import javax.xml.namespace.QName;import javax.xml.stream.FactoryConfigurationError;import javax.xml.stream.XMLStreamException;import org.apache.lucene.gdata.gom.GOMAuthor;import org.apache.lucene.gdata.gom.GOMCategory;import org.apache.lucene.gdata.gom.GOMContributor;import org.apache.lucene.gdata.gom.GOMElement;import org.apache.lucene.gdata.gom.GOMEntry;import org.apache.lucene.gdata.gom.GOMExtension;import org.apache.lucene.gdata.gom.GOMFeed;import org.apache.lucene.gdata.gom.GOMGenerator;import org.apache.lucene.gdata.gom.GOMIcon;import org.apache.lucene.gdata.gom.GOMId;import org.apache.lucene.gdata.gom.GOMLink;import org.apache.lucene.gdata.gom.GOMLogo;import org.apache.lucene.gdata.gom.GOMNamespace;import org.apache.lucene.gdata.gom.GOMRights;import org.apache.lucene.gdata.gom.GOMSubtitle;import org.apache.lucene.gdata.gom.GOMTitle;import org.apache.lucene.gdata.gom.GOMUpdated;import org.apache.lucene.gdata.gom.core.extension.GOMExtensionFactory;import org.apache.lucene.gdata.gom.writer.GOMStaxWriter;import org.apache.lucene.gdata.gom.writer.GOMOutputWriter;import junit.framework.TestCase;public class GOMFeedImplTest extends TestCase { static final String TEST_LOCAL_NAME = "testelement"; GOMFeedImpl impl; protected void setUp() throws Exception { this.impl = new GOMFeedImpl(); } public void testSetNamespace() { assertEquals(0, this.impl.getNamespaces().size()); assertNotNull(this.impl.getDefaultNamespace()); this.impl.addNamespace(GOMNamespace.ATOM_NAMESPACE); assertSame(GOMNamespace.ATOM_NAMESPACE, this.impl.getDefaultNamespace()); this.impl.addNamespace(GOMNamespace.OPENSEARCH_NAMESPACE); assertEquals(1, this.impl.getNamespaces().size()); assertSame(GOMNamespace.OPENSEARCH_NAMESPACE, this.impl.getNamespaces() .get(0)); // detect defaul ns this.impl.addNamespace(new GOMNamespace(GOMNamespace.ATOM_NS_URI, "")); assertEquals(1, this.impl.getNamespaces().size()); } /* * Test method for * 'org.apache.lucene.gdata.gom.core.GOMFeedImpl.getChildParser(QName)' */ public void testGetChildParser() { { // atomAuthor* AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "author")); assertNotNull(parser); assertTrue(parser instanceof GOMAuthor); assertEquals(1, this.impl.getAuthors().size()); this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "author")); assertEquals(2, this.impl.getAuthors().size()); } { // atomCategory* AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "category")); assertNotNull(parser); assertTrue(parser instanceof GOMCategory); assertEquals(1, this.impl.getCategories().size()); this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "category")); assertEquals(2, this.impl.getCategories().size()); } { // atomContributor* AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "contributor")); assertNotNull(parser); assertTrue(parser instanceof GOMContributor); assertEquals(1, this.impl.getContributor().size()); this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "contributor")); assertEquals(2, this.impl.getContributor().size()); } { // atomGenerator? AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "generator")); assertNotNull(parser); assertTrue(parser instanceof GOMGenerator); assertSame(parser, this.impl.getGenerator()); try { this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "generator")); fail("one or zero"); } catch (GDataParseException e) { // } } { // atomIcon? AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "icon")); assertNotNull(parser); assertTrue(parser instanceof GOMIcon); assertSame(parser, this.impl.getIcon()); try { this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "icon")); fail("one or zero"); } catch (GDataParseException e) { // } } { // atomId AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "id")); assertNotNull(parser); assertTrue(parser instanceof GOMId); assertSame(parser, this.impl.getId()); try { this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "id")); fail("exactly one time "); } catch (GDataParseException e) { // } } { // atomLink* AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "link")); assertNotNull(parser); assertTrue(parser instanceof GOMLink); assertEquals(1, this.impl.getLinks().size()); this.impl .getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "link")); assertEquals(2, this.impl.getLinks().size()); } { // atomLogo? AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "logo")); assertNotNull(parser); assertTrue(parser instanceof GOMLogo); assertSame(parser, this.impl.getLogo()); try { this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "logo")); fail("zero or one"); } catch (GDataParseException e) { // } } { // atomRights? AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "rights")); assertNotNull(parser); assertTrue(parser instanceof GOMRights); assertSame(parser, this.impl.getRights()); try { this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "rights")); fail("zero or one"); } catch (GDataParseException e) { // } } { // atomSubtitle? AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "subtitle")); assertNotNull(parser); assertTrue(parser instanceof GOMSubtitle); assertSame(parser, this.impl.getSubtitle()); try { this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "subtitle")); fail("zero or one"); } catch (GDataParseException e) { // } } { // atomTitle AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "title")); assertNotNull(parser); assertTrue(parser instanceof GOMTitle); assertSame(parser, this.impl.getTitle()); try { this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "title")); fail("exactly one time "); } catch (GDataParseException e) { // } } { // atomUpdated AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "updated")); assertNotNull(parser); assertTrue(parser instanceof GOMUpdated); assertSame(parser, this.impl.getUpdated()); try { this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "updated")); fail("exactly one time "); } catch (GDataParseException e) { // } } { // atomEntry* AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.ATOM_NS_URI, "entry")); assertNotNull(parser); assertTrue(parser instanceof GOMEntry); assertEquals(1, this.impl.getEntries().size()); this.impl.getChildParser(new QName(GOMNamespace.ATOM_NS_URI, "entry")); assertEquals(2, this.impl.getEntries().size()); } // openSearch { // startIndex AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.OPENSEARCH_NS_URI, "startIndex")); assertNotNull(parser); } { // startIndex AtomParser parser = this.impl.getChildParser(new QName( GOMNamespace.OPENSEARCH_NS_URI, "itemsPerPage")); assertNotNull(parser); } } /* * Test method for * 'org.apache.lucene.gdata.gom.core.GOMFeedImpl.processElementValue(String)' */ public void testProcessElementValue() { try { this.impl.processElementValue("some"); fail("no element text"); } catch (GDataParseException e) { // } } /* * Test method for * 'org.apache.lucene.gdata.gom.core.GOMFeedImpl.processEndElement()' * * atomFeed = element atom:feed { atomCommonAttributes, (atomAuthor* & * atomCategory* & atomContributor* & atomGenerator? & atomIcon? & atomId & * atomLink* & atomLogo? & atomRights? & atomSubtitle? & atomTitle & * atomUpdated & extensionElement*), atomEntry* } */ public void testProcessEndElement() { this.impl.addAuthor(new GOMAuthorImpl()); this.impl.setId(new GOMIdImpl()); this.impl.setUpdated(new GOMUpdatedImpl()); this.impl.setTitle(new GOMTitleImpl()); this.impl.processEndElement(); { // author missing this.impl.getAuthors().clear(); try { this.impl.processEndElement(); fail("missing elements"); } catch (GDataParseException e) { // } this.impl.addAuthor(new GOMAuthorImpl()); } { // id missing this.impl.setId(null); try { this.impl.processEndElement(); fail("missing elements"); } catch (GDataParseException e) { // } this.impl.setId(new GOMIdImpl()); } { // title missing this.impl.setTitle(null); try { this.impl.processEndElement();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -