TUSCANY-2735: Add tests for generic types
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1159968 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
97502d6c76
commit
73b3008553
8 changed files with 218 additions and 0 deletions
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.sca.itest.services;
|
||||
|
||||
public interface SubGenericsService extends SuperGenericsService<String> {
|
||||
|
||||
void print();
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.sca.itest.services;
|
||||
|
||||
public interface SubGenericsServiceClient<T> {
|
||||
|
||||
void print();
|
||||
|
||||
T doIt(T anything);
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.sca.itest.services;
|
||||
|
||||
import org.osoa.sca.annotations.Reference;
|
||||
import org.osoa.sca.annotations.Service;
|
||||
|
||||
@Service(SubGenericsServiceClient.class)
|
||||
public class SubGenericsServiceClientImpl implements SubGenericsServiceClient<String> {
|
||||
|
||||
private SubGenericsService subGenericsService;
|
||||
|
||||
public String doIt(String anything) {
|
||||
return subGenericsService.doIt(anything);
|
||||
}
|
||||
|
||||
public void print() {
|
||||
subGenericsService.print();
|
||||
|
||||
}
|
||||
|
||||
public SubGenericsService getSubGenericsService() {
|
||||
return subGenericsService;
|
||||
}
|
||||
|
||||
@Reference
|
||||
public void setSubGenericsService(SubGenericsService subGenericsService) {
|
||||
this.subGenericsService = subGenericsService;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.sca.itest.services;
|
||||
|
||||
|
||||
public class SubGenericsServiceImpl extends SuperGenericsServiceImpl<String>
|
||||
implements SubGenericsService{
|
||||
|
||||
public void print(){
|
||||
System.out.println("I am print.");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.apache.tuscany.sca.itest.services;
|
||||
|
||||
/**
|
||||
* The interface for SuperGenericsService.
|
||||
*
|
||||
*/
|
||||
public interface SuperGenericsService<T> {
|
||||
|
||||
T doIt(T anything);
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.sca.itest.services;
|
||||
|
||||
|
||||
public abstract class SuperGenericsServiceImpl<T> implements SuperGenericsService<T>{
|
||||
|
||||
public T doIt(T anything){
|
||||
return anything;
|
||||
}
|
||||
|
||||
}
|
|
@ -66,5 +66,16 @@
|
|||
<interface.java interface="org.apache.tuscany.sca.itest.services.D1Component" />
|
||||
</service>
|
||||
</component>
|
||||
|
||||
<!-- Component used to implement SubGenericsService -->
|
||||
<component name="SubGenericsServiceComponent">
|
||||
<implementation.java class="org.apache.tuscany.sca.itest.services.SubGenericsServiceImpl"/>
|
||||
</component>
|
||||
|
||||
<!-- A SubGenericsServiceClientImpl component that uses SCA binding to invoke SubGenericsService service -->
|
||||
<component name="SubGenericsServiceClientSCAComponent">
|
||||
<implementation.java class="org.apache.tuscany.sca.itest.services.SubGenericsServiceClientImpl" />
|
||||
<reference name="subGenericsService" target="SubGenericsServiceComponent"/>
|
||||
</component>
|
||||
|
||||
</composite>
|
|
@ -99,6 +99,22 @@ public class ServicesTestCase {
|
|||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSCASubGenericsServiceDoIt() throws Exception{
|
||||
@SuppressWarnings("unchecked")
|
||||
SubGenericsServiceClient<String> subGenericsServiceClient = domain.getService(SubGenericsServiceClient.class, "SubGenericsServiceClientSCAComponent");
|
||||
String actual = "noting";
|
||||
String expected = subGenericsServiceClient.doIt(actual);
|
||||
Assert.assertEquals(actual, expected);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSCASubGenericsServicePrint() throws Exception{
|
||||
@SuppressWarnings("unchecked")
|
||||
SubGenericsServiceClient<String> subGenericsServiceClient = domain.getService(SubGenericsServiceClient.class, "SubGenericsServiceClientSCAComponent");
|
||||
subGenericsServiceClient.print();
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
ServicesTestCase.init();
|
||||
ServicesTestCase tester = new ServicesTestCase();
|
||||
|
@ -106,6 +122,8 @@ public class ServicesTestCase {
|
|||
tester.testBService();
|
||||
tester.testCService();
|
||||
tester.testDService();
|
||||
tester.testSCASubGenericsServiceDoIt();
|
||||
tester.testSCASubGenericsServicePrint();
|
||||
ServicesTestCase.destroy();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue