(no commit message)
[utils] / system / general / src / test / java / org / wamblee / system / DefaultServiceDescriptorTest.java
1 package org.wamblee.system;
2
3 import java.io.Serializable;
4
5 import junit.framework.TestCase;
6
7 public class DefaultServiceDescriptorTest extends TestCase {
8
9         public void testOneRequiredOneProvidedMatch() { 
10                 ProvidedServiceDescriptor provided = new DefaultProvidedServiceDescriptor("name", String.class);
11                 RequiredServiceDescriptor required = new DefaultRequiredServiceDescriptor("name", String.class);
12                 assertTrue(required.implementedBy(provided));
13         }
14         
15         public void testOneRequiredOneProvidedMatchSubClass() { 
16                 ProvidedServiceDescriptor provided = new DefaultProvidedServiceDescriptor("name", Integer.class);
17                 RequiredServiceDescriptor required = new DefaultRequiredServiceDescriptor("name", Number.class);
18                 assertTrue(required.implementedBy(provided));
19         }
20         
21         public void testOneRequiredOneProvidedNoMatch() { 
22                 ProvidedServiceDescriptor provided = new DefaultProvidedServiceDescriptor("name", String.class);
23                 RequiredServiceDescriptor required = new DefaultRequiredServiceDescriptor("name", Number.class);
24                 assertFalse(required.implementedBy(provided));
25         }
26         
27         public void testOneRequiredMultipleProvidedMatch() { 
28                 ProvidedServiceDescriptor provided = new DefaultProvidedServiceDescriptor("name", 
29                                 new Class[] { String.class, Integer.class} );
30                 RequiredServiceDescriptor required = new DefaultRequiredServiceDescriptor("name", String.class);
31                 assertTrue(required.implementedBy(provided));
32         }
33         
34         private static class MyMultiple implements Runnable, Serializable { 
35                 @Override
36                 public void run() {
37                         // Empty        
38                 }
39         }
40         
41         public void testMultipleRequiredOneProvidedMatch() { 
42                 ProvidedServiceDescriptor provided = new DefaultProvidedServiceDescriptor("name", 
43                                 MyMultiple.class );
44                 RequiredServiceDescriptor required = new DefaultRequiredServiceDescriptor("name", 
45                                 new Class[] {Runnable.class, Serializable.class} );
46                 assertTrue(required.implementedBy(provided));
47         }
48         
49         public void testMultipleRequiredOneProvidedNoMatch() { 
50                 ProvidedServiceDescriptor provided = new DefaultProvidedServiceDescriptor("name", 
51                                 MyMultiple.class );
52                 RequiredServiceDescriptor required = new DefaultRequiredServiceDescriptor("name", 
53                                 new Class[] { String.class, Runnable.class} );
54                 assertFalse(required.implementedBy(provided));
55         }
56         
57         public void testMultipleRequiredMultipleProvidedMatch() { 
58                 ProvidedServiceDescriptor provided = new DefaultProvidedServiceDescriptor("name", 
59                                 new Class[] { Runnable.class, Serializable.class, String.class}  );
60                 RequiredServiceDescriptor required = new DefaultRequiredServiceDescriptor("name", 
61                                 new Class[] {Runnable.class, Serializable.class} );
62                 assertTrue(required.implementedBy(provided));
63         }
64         
65         
66 }