AssetSourceImpl extends LockSupport implements AssetSource { public Asset getExpandedAsset(String path) { return getUnlocalizedAsset(symbolSource.expandSymbols(path)); } AssetSourceImpl(ThreadLocale threadLocale,

                           Map<String, AssetFactory> configuration, SymbolSource symbolSource, Logger logger, OperationTracker tracker);  AssetSourceImpl(ThreadLocale threadLocale,

                           Map<String, AssetFactory> configuration, SymbolSource symbolSource, Logger logger, OperationTracker tracker, Request request); @PostInjection void clearCacheWhenResourcesChange(ResourceChangeTracker tracker); Asset getClasspathAsset(String path); Asset getClasspathAsset(String path, Locale locale); Asset getContextAsset(String path, Locale locale); Asset getAsset(Resource baseResource, String path, Locale locale); Resource resourceForPath(String path); Asset getExpandedAsset(String path); Asset getComponentAsset(final ComponentResources resources, final String path, final String libraryName); Asset getUnlocalizedAsset(String path);  }
@Test public void get_expanded_asset() { AssetFactory factory = mockAssetFactory(); Asset asset = mockAsset(); SymbolSource symbolSource = mockSymbolSource(); Resource expectedResource = baseResource.forFile("SimpleComponent.properties"); train_getRootResource(factory, rootResource); train_createAsset(factory, expectedResource, asset); train_expandSymbols(symbolSource, "${path}/SimpleComponent.properties", "org/apache/tapestry5/internal/services/SimpleComponent.properties"); Map<String, AssetFactory> configuration = Collections.singletonMap("classpath", factory); replay(); AssetSource source = new AssetSourceImpl(null, configuration, symbolSource, null, tracker); assertSame(source.getExpandedAsset("${path}/SimpleComponent.properties"), asset); verify(); }