1 package org.wamblee.system;
3 import java.io.Serializable;
5 import junit.framework.TestCase;
7 public class DefaultInterfaceDescriptorTest extends TestCase {
9 public void testOneRequiredOneProvidedMatch() {
10 ProvidedInterfaceDescriptor provided = new AbstractProvidedInterfaceDescriptor("name", String.class);
11 RequiredInterfaceDescriptor required = new DefaultRequiredInterfaceDescriptor("name", String.class);
12 assertTrue(required.implementedBy(provided));
15 public void testOneRequiredOneProvidedMatchSubClass() {
16 ProvidedInterfaceDescriptor provided = new AbstractProvidedInterfaceDescriptor("name", Integer.class);
17 RequiredInterfaceDescriptor required = new DefaultRequiredInterfaceDescriptor("name", Number.class);
18 assertTrue(required.implementedBy(provided));
21 public void testOneRequiredOneProvidedNoMatch() {
22 ProvidedInterfaceDescriptor provided = new AbstractProvidedInterfaceDescriptor("name", String.class);
23 RequiredInterfaceDescriptor required = new DefaultRequiredInterfaceDescriptor("name", Number.class);
24 assertFalse(required.implementedBy(provided));
27 public void testOneRequiredMultipleProvidedMatch() {
28 ProvidedInterfaceDescriptor provided = new AbstractProvidedInterfaceDescriptor("name",
29 new Class[] { String.class, Integer.class} );
30 RequiredInterfaceDescriptor required = new DefaultRequiredInterfaceDescriptor("name", String.class);
31 assertTrue(required.implementedBy(provided));
34 private static class MyMultiple implements Runnable, Serializable {
41 public void testMultipleRequiredOneProvidedMatch() {
42 ProvidedInterfaceDescriptor provided = new AbstractProvidedInterfaceDescriptor("name",
44 RequiredInterfaceDescriptor required = new DefaultRequiredInterfaceDescriptor("name",
45 new Class[] {Runnable.class, Serializable.class} );
46 assertTrue(required.implementedBy(provided));
49 public void testMultipleRequiredOneProvidedNoMatch() {
50 ProvidedInterfaceDescriptor provided = new AbstractProvidedInterfaceDescriptor("name",
52 RequiredInterfaceDescriptor required = new DefaultRequiredInterfaceDescriptor("name",
53 new Class[] { String.class, Runnable.class} );
54 assertFalse(required.implementedBy(provided));
57 public void testMultipleRequiredMultipleProvidedMatch() {
58 ProvidedInterfaceDescriptor provided = new AbstractProvidedInterfaceDescriptor("name",
59 new Class[] { Runnable.class, Serializable.class, String.class} );
60 RequiredInterfaceDescriptor required = new DefaultRequiredInterfaceDescriptor("name",
61 new Class[] {Runnable.class, Serializable.class} );
62 assertTrue(required.implementedBy(provided));