001: /**
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */package org.apache.openejb.assembler.classic;
017:
018: import junit.framework.TestCase;
019:
020: import java.util.List;
021: import java.util.ArrayList;
022: import java.util.Collections;
023: import java.util.Properties;
024:
025: import org.apache.openejb.config.ConfigurationFactory;
026:
027: /**
028: * @version $Rev$ $Date$
029: */
030: public class ResourceInfoComparatorTest extends TestCase {
031:
032: public void test() throws Exception {
033: List<ResourceInfo> resources = new ArrayList<ResourceInfo>();
034:
035: resources.add(new ResourceInfo());
036: resources.get(0).id = "Red";
037: resources.get(0).properties = new Properties();
038: resources.get(0).properties.put("someValue", "Blue");
039:
040: resources.add(new ResourceInfo());
041: resources.get(1).id = "Blue";
042: resources.get(1).properties = new Properties();
043: resources.get(1).properties.put("foo", "Green");
044:
045: resources.add(new ResourceInfo());
046: resources.get(2).properties = new Properties();
047: resources.get(2).id = "Green";
048:
049: resources.add(new ResourceInfo());
050: resources.get(3).id = "Yellow";
051: resources.get(3).properties = new Properties();
052: resources.get(3).properties.put("foo", "Green");
053:
054: Collections.sort(resources,
055: new ConfigurationFactory.ResourceInfoComparator(
056: resources));
057:
058: assertEquals("Green", resources.get(0).id);
059: assertEquals("Blue", resources.get(1).id);
060: assertEquals("Red", resources.get(2).id);
061: assertEquals("Yellow", resources.get(3).id);
062:
063: }
064:
065: public void testRealWorld() throws Exception {
066: List<ResourceInfo> resources = new ArrayList<ResourceInfo>();
067:
068: resources.add(new ResourceInfo());
069: resources.get(0).id = "My DataSource";
070: resources.get(0).properties = new Properties();
071:
072: resources.add(new ResourceInfo());
073: resources.get(1).id = "My Unmanaged DataSource";
074: resources.get(1).properties = new Properties();
075:
076: resources.add(new ResourceInfo());
077: resources.get(2).id = "My JMS Resource Adapter";
078: resources.get(2).properties = new Properties();
079: resources.get(2).properties.put("DataSource",
080: "My Unmanaged DataSource");
081:
082: resources.add(new ResourceInfo());
083: resources.get(3).id = "My JMS Connection Factory";
084: resources.get(3).properties = new Properties();
085: resources.get(3).properties.put("ResourceAdapter",
086: "My JMS Resource Adapter");
087:
088: Collections.sort(resources,
089: new ConfigurationFactory.ResourceInfoComparator(
090: resources));
091:
092: assertEquals("My DataSource", resources.get(0).id);
093: assertEquals("My Unmanaged DataSource", resources.get(1).id);
094: assertEquals("My JMS Resource Adapter", resources.get(2).id);
095: assertEquals("My JMS Connection Factory", resources.get(3).id);
096:
097: }
098:
099: public void testRealWorld2() throws Exception {
100: List<ResourceInfo> resources = new ArrayList<ResourceInfo>();
101:
102: resources.add(new ResourceInfo());
103: resources.get(0).id = "My JMS Connection Factory";
104: resources.get(0).properties = new Properties();
105: resources.get(0).properties.put("ResourceAdapter",
106: "My JMS Resource Adapter");
107:
108: resources.add(new ResourceInfo());
109: resources.get(1).id = "My JMS Resource Adapter";
110: resources.get(1).properties = new Properties();
111: resources.get(1).properties.put("DataSource",
112: "My Unmanaged DataSource");
113:
114: resources.add(new ResourceInfo());
115: resources.get(2).id = "My Unmanaged DataSource";
116: resources.get(2).properties = new Properties();
117:
118: resources.add(new ResourceInfo());
119: resources.get(3).id = "My DataSource";
120: resources.get(3).properties = new Properties();
121:
122: Collections.sort(resources,
123: new ConfigurationFactory.ResourceInfoComparator(
124: resources));
125:
126: // since unmanaged is first in the "file" it should be first here
127: assertEquals("My Unmanaged DataSource", resources.get(0).id);
128: assertEquals("My DataSource", resources.get(1).id);
129: assertEquals("My JMS Resource Adapter", resources.get(2).id);
130: assertEquals("My JMS Connection Factory", resources.get(3).id);
131:
132: }
133: }
|