@Test
public void normal_conversion()
{
AssetSource source = mockAssetSource();
ObjectLocator locator = mockObjectLocator();
Asset asset = mockAsset();
String path = "${foo}";
String expanded = "foo/bar/baz.gif";
AnnotationProvider annotationProvider = mockAnnotationProvider();
TypeCoercer typeCoercer = mockTypeCoercer();
Path pathAnnotation = mockPath();
SymbolSource symbolSource = mockSymbolSource();
train_getAnnotation(annotationProvider, Path.class, pathAnnotation);
train_value(pathAnnotation, path);
train_expandSymbols(symbolSource, path, expanded);
train_findAsset(source, null, expanded, null, asset);
train_coerce(typeCoercer, asset, Asset.class, asset);
replay();
ObjectProvider provider = new AssetObjectProvider(source, typeCoercer, symbolSource);
Asset result = provider.provide(Asset.class, annotationProvider, locator);
assertSame(result, asset);
verify();
}