GoogleBaseGeneratorTest.java
/*
* GoogleBaseGeneratorTest.java
* JUnit based test
*
* Created on November 17, 2005, 3:40 PM
*
* 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.rometools.modules.base.io;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.junit.Assert;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.rometools.modules.AbstractTestCase;
import com.rometools.modules.base.GoogleBase;
import com.rometools.modules.base.GoogleBaseImpl;
import com.rometools.modules.base.Product;
import com.rometools.modules.base.Vehicle;
import com.rometools.rome.feed.synd.SyndContent;
import com.rometools.rome.feed.synd.SyndContentImpl;
import com.rometools.rome.feed.synd.SyndEntry;
import com.rometools.rome.feed.synd.SyndEntryImpl;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.feed.synd.SyndFeedImpl;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.SyndFeedOutput;
public class GoogleBaseGeneratorTest extends AbstractTestCase {
private static final Logger LOG = LoggerFactory.getLogger(GoogleBaseGeneratorTest.class);
public GoogleBaseGeneratorTest(final String testName) {
super(testName);
}
public static Test suite() {
final TestSuite suite = new TestSuite(GoogleBaseGeneratorTest.class);
return suite;
}
/**
* Test of generate method, of class com.totsp.xml.syndication.base.io.GoogleBaseGenerator.
*/
public void testGenerate() throws Exception {
LOG.debug("testGenerate");
final SyndFeedInput input = new SyndFeedInput();
final SyndFeedOutput output = new SyndFeedOutput();
final File testDir = new File(super.getTestFile("xml"));
final File[] testFiles = testDir.listFiles();
for (int h = 0; h < testFiles.length; h++) {
if (!testFiles[h].getName().endsWith(".xml")) {
continue;
}
LOG.debug(testFiles[h].getName());
final SyndFeed feed = input.build(testFiles[h]);
try {
output.output(feed, new File("target/" + testFiles[h].getName()));
} catch (final Exception e) {
throw new RuntimeException(testFiles[h].getAbsolutePath(), e);
}
final SyndFeed feed2 = input.build(new File("target/" + testFiles[h].getName()));
for (int i = 0; i < feed.getEntries().size(); i++) {
final SyndEntry entry = feed.getEntries().get(i);
final SyndEntry entry2 = feed2.getEntries().get(i);
final GoogleBase base = (GoogleBase) entry.getModule(GoogleBase.URI);
final GoogleBase base2 = (GoogleBase) entry2.getModule(GoogleBase.URI);
Assert.assertEquals(testFiles[h].getName(), base, base2);
}
}
}
public void testMehta() throws Exception {
final SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("atom_1.0");
feed.setTitle("Sample Feed (created with Rome)");
feed.setLink("http://rome.dev.java.net");
feed.setDescription("This feed has been created using Rome (Java syndication utilities");
final List<SyndEntry> entries = new ArrayList<SyndEntry>();
SyndEntry entry;
SyndContent description;
entry = new SyndEntryImpl();
entry.setTitle("Rome v1.0");
entry.setLink("http://wiki.java.net/bin/view/Javawsxml/Rome01 ");
description = new SyndContentImpl();
description.setType("text/plain");
description.setValue("Initial release of Rome");
entry.setDescription(description);
final Vehicle vehicle = new GoogleBaseImpl();
vehicle.setMake("Honda");
vehicle.setModel("Insight");
final Product product = new GoogleBaseImpl();
product.setCondition("New");
product.setDeliveryNotes("Insight");
entries.add(entry);
feed.setEntries(entries);
final SyndFeedOutput output = new SyndFeedOutput();
LOG.debug(output.outputString(feed));
}
}