KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > avalon > extension > manager > impl > test > ComparatorTestCase


1 /*
2  * Copyright 2004 Apache Software Foundation
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
12  * implied.
13  *
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 package org.apache.avalon.extension.manager.impl.test;
19
20 import java.io.File JavaDoc;
21
22 import junit.framework.TestCase;
23
24 import org.apache.avalon.extension.Extension;
25 import org.apache.avalon.extension.manager.ExtensionManager;
26 import org.apache.avalon.extension.manager.OptionalPackage;
27 import org.apache.avalon.extension.manager.impl.DelegatingExtensionManager;
28
29 /**
30  * A basic test case for comparator.
31  *
32  * @author <a HREF="mailto:dev@avalon.apache.org">Avalon Development Team</a>
33  * @version $Revision: 1.2 $ $Date: 2004/02/24 22:39:31 $
34  */

35 public class ComparatorTestCase
36     extends TestCase
37 {
38     private static final String JavaDoc NAME = "Extension1";
39     private static final String JavaDoc VENDOR1 = "Vendor1";
40     private static final String JavaDoc VENDOR2 = "Vendor2";
41
42     public ComparatorTestCase( final String JavaDoc name )
43     {
44         super( name );
45     }
46
47     public void testAllNull()
48     {
49         runCompareTest( null, null, null, null, VENDOR1, VENDOR2 );
50     }
51
52     public void testSpecNonNullV1()
53     {
54         runCompareTest( "1.0", null, "1.1", null, VENDOR2, VENDOR1 );
55     }
56
57     public void testSpecNonNullV2()
58     {
59         runCompareTest( "1.1", null, "1.0", null, VENDOR1, VENDOR2 );
60     }
61
62     public void testSpecNonNullV3()
63     {
64         runCompareTest( "1.1", null, "1.1", null, VENDOR1, VENDOR2 );
65     }
66
67     public void testSpec1Null()
68     {
69         runCompareTest( null, null, "1.1", null, VENDOR2, VENDOR1 );
70     }
71
72     public void testSpec2Null()
73     {
74         runCompareTest( "1.1", null, null, null, VENDOR1, VENDOR2 );
75     }
76
77     public void testImplNull()
78     {
79         runCompareTest( "1.0", null, "1.0", null, VENDOR1, VENDOR2 );
80     }
81
82     public void testImplNonNullV1()
83     {
84         runCompareTest( "1.0", "1.1", "1.0", "1.0", VENDOR1, VENDOR2 );
85     }
86
87     public void testImplNonNullV2()
88     {
89         runCompareTest( "1.0", "1.0", "1.0", "1.1", VENDOR2, VENDOR1 );
90     }
91
92     public void testImplNonNullV3()
93     {
94         runCompareTest( "1.0", "1.1", "1.0", "1.1", VENDOR1, VENDOR2 );
95     }
96
97     public void testImpl1Null()
98     {
99         runCompareTest( "1.0", null, "1.0", "1.1", VENDOR2, VENDOR1 );
100     }
101
102     public void testImpl2Null()
103     {
104         runCompareTest( "1.0", "1.1", "1.0", null, VENDOR1, VENDOR2 );
105     }
106
107     private void runCompareTest( final String JavaDoc specVersion1,
108                                  final String JavaDoc implVersion1,
109                                  final String JavaDoc specVersion2,
110                                  final String JavaDoc implVersion2,
111                                  final String JavaDoc vendor1,
112                                  final String JavaDoc vendor2 )
113     {
114         final ExtensionManager manager =
115             createExtensionManager( specVersion1, implVersion1, specVersion2, implVersion2 );
116         final OptionalPackage[] pkgs = getOptionalPackages( manager );
117
118         assertEquals( "pkgs.length", 2, pkgs.length );
119
120         final Extension extension1 = pkgs[ 0 ].getAvailableExtensions()[ 0 ];
121         final Extension extension2 = pkgs[ 1 ].getAvailableExtensions()[ 0 ];
122         assertEquals( "pkgs[0].vendor", vendor1, extension1.getImplementationVendor() );
123         assertEquals( "pkgs[1].vendor", vendor2, extension2.getImplementationVendor() );
124     }
125
126     private OptionalPackage[] getOptionalPackages( final ExtensionManager manager )
127     {
128         return manager.getOptionalPackages( new Extension( NAME, null, null, null, null, null, null ) );
129     }
130
131     private ExtensionManager createExtensionManager( final String JavaDoc specVersion1,
132                                                      final String JavaDoc implVersion1,
133                                                      final String JavaDoc specVersion2,
134                                                      final String JavaDoc implVersion2 )
135     {
136         final OptionalPackage optionalPackage1 =
137             createPackage( VENDOR1, specVersion1, implVersion1 );
138         final OptionalPackage optionalPackage2 =
139             createPackage( VENDOR2, specVersion2, implVersion2 );
140         final OptionalPackage[] pkgs =
141             new OptionalPackage[]{optionalPackage1, optionalPackage2};
142         return createExtensionManager( pkgs );
143     }
144
145     private OptionalPackage createPackage( final String JavaDoc vendor,
146                                            final String JavaDoc specVersion,
147                                            final String JavaDoc implVersion )
148     {
149         final Extension extension = new Extension( NAME,
150                                                    specVersion, null,
151                                                    implVersion, vendor, null,
152                                                    null );
153         final File JavaDoc file = new File JavaDoc( "." );
154         final Extension[] available = new Extension[]{extension};
155         final Extension[] required = new Extension[ 0 ];
156         return new OptionalPackage( file, available, required );
157     }
158
159     private ExtensionManager createExtensionManager( final OptionalPackage[] packages )
160     {
161         final TestExtensionManager manager =
162             new TestExtensionManager( packages );
163         return new DelegatingExtensionManager( new ExtensionManager[]{manager} );
164     }
165 }
166
Popular Tags