/** * Copyright (C) 2008 Progress Software, Inc. All rights reserved. * http://fusesource.com * * The software in this package is published under the terms of the AGPL license * a copy of which has been included with this distribution in the license.txt file. */ package org.fusesource.cloudmix.agent; import java.net.URL; import java.util.Collection; import java.util.List; import java.util.Properties; import junit.framework.TestCase; public class FeatureListTest extends TestCase { public void testFeatureList1() throws Exception { URL url = this.getClass().getResource("/features_1.xml"); FeatureList flist = new FeatureList(url, null); //assertNotNull(flist.toServiceMix4Doc()); assertEquals(1, flist.getNumFeatures()); assertNull(flist.getFeature("unknown")); Feature f = flist.getFeature("f1"); assertNotNull(f); assertEquals("f1", f.getName()); assertSame(flist, f.getFeatureList()); List<Bundle> bundles = f.getBundles(); assertEquals(1, bundles.size()); Bundle b = bundles.get(0); assertEquals("r_1.txt", b.getName()); assertEquals("osgi", b.getType()); assertEquals("http://example.com/r1.txt", b.getUri()); Collection<String> names = f.getPropertyNames(); assertNotNull(names); assertEquals(2, names.size()); assertTrue(names.contains("ports")); assertTrue(names.contains("misc")); assertFalse(names.contains("unknown")); assertNull(f.getProperties("unknown")); Properties props = f.getProperties("ports"); assertNotNull(props); assertEquals(2, props.size()); assertEquals("1234", props.get("fooPort")); assertEquals("4321", props.get("barPort")); props = f.getProperties("misc"); assertNotNull(props); assertEquals(2, props.size()); assertEquals("Funky", props.get("name")); assertEquals("Monkey", props.get("desc")); } public void testFeatureList2() throws Exception { String url = this.getClass().getResource("/features_2.xml").toString(); FeatureList flist = new FeatureList(url, null); assertEquals(1, flist.getNumFeatures()); assertNull(flist.getFeature("unknown")); Feature f = flist.getFeature("f2"); assertNotNull(f); assertEquals("f2", f.getName()); assertSame(flist, f.getFeatureList()); List<Bundle> bundles = f.getBundles(); assertEquals(3, bundles.size()); Bundle b = bundles.get(0); assertEquals("r2.txt", b.getName()); assertEquals("war", b.getType()); assertEquals("http://example.com/r2.txt", b.getUri()); b = bundles.get(1); assertEquals("", b.getName()); assertEquals("", b.getType()); assertEquals("http://example.com/r3.txt", b.getUri()); b = bundles.get(2); assertEquals("", b.getName()); assertEquals("", b.getType()); assertEquals("http://example.com/r4.txt", b.getUri()); Collection<String> names = f.getPropertyNames(); assertNotNull(names); assertEquals(0, names.size()); } /* private void assertSameFeatures(FeatureList flist1, FeatureList flist2) { // TODO: need to complete this test. assertEquals(flist1.getNumFeatures(), flist2.getNumFeatures()); }*/ }