Add a test for generic bean type

Fixes gh-26
This commit is contained in:
Dave Syer
2018-02-01 09:03:45 +00:00
parent a6c6f6d182
commit 8e26ec0f3c
3 changed files with 78 additions and 9 deletions

View File

@@ -0,0 +1,58 @@
/*
* Copyright 2013-2014 the original author or authors.
*
* Licensed 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.springframework.guice.annotation;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
public class GuiceModuleAnnotationGenericTypeTests {
public interface Foo<T> {
T getValue();
}
public static class FooImpl<T> implements Foo<T> {
private final T payload;
FooImpl(T payload) {
this.payload = payload;
}
@Override
public T getValue() {
return payload;
}
}
@Configuration
@EnableGuiceModules
@GuiceModule
static class TestConfig {
@Bean
public FooImpl<String> fooBean() {
return new FooImpl<String>("foo.foo.foo");
}
}
@Test
public void testBinding() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TestConfig.class);
assertNotNull(context.getBean(Foo.class));
context.close();
}
}