IMetadataConfiguration metadataCfg = mock( IMetadataConfiguration.class, RETURNS_NULL );
IRuntimeSharedLibraryPath runtimeCfg = mock( IRuntimeSharedLibraryPath.class, RETURNS_NULL );
Map<String, String> urls = new LinkedHashMap<String, String>();
urls.put( "http://a.com/rsls/MyLibrary.swf", "http://a.com/rsls/crossdomain.xml" );
urls.put( "MyLibrary.swf", null );
IFramesConfiguration frameCfg = mock( IFramesConfiguration.class, RETURNS_NULL );
IFrame frame = mock( IFrame.class, RETURNS_NULL );
INamespacesConfiguration namespacesCfg = mock( INamespacesConfiguration.class, RETURNS_NULL );
INamespace namespace = mock( INamespace.class, RETURNS_NULL );
INamespace namespace2 = mock( INamespace.class, RETURNS_NULL );
IDefine define = mock( IDefine.class, RETURNS_NULL );
when( cfg.getIncludeClasses() ).thenReturn( Arrays.asList( "AClass", "BClass" ) );
when( cfg.getCompilerConfiguration() ).thenReturn( compilerCfg );
when( cfg.getMetadataConfiguration() ).thenReturn( metadataCfg );
when( compilerCfg.getAccessible() ).thenReturn( true );
when( compilerCfg.getFontsConfiguration() ).thenReturn( fontCfg );
when( fontCfg.getLanguagesConfiguration() ).thenReturn( langsCfg );
when( langsCfg.getLanguageRange() ).thenReturn( new ILanguageRange[] { thaiLangRangeCfg, ptLangRangeCfg } );
when( thaiLangRangeCfg.lang() ).thenReturn( "Thai" );
when( thaiLangRangeCfg.range() ).thenReturn( "U+0E01-0E5B" );
when( ptLangRangeCfg.lang() ).thenReturn( "ptBR" );
when( ptLangRangeCfg.range() ).thenReturn( "U+0A0C-0EAA" );
when( metadataCfg.getCreator() ).thenReturn( new String[] { "Marvin", "VELO", "Froeder" } );
when( cfg.getRuntimeSharedLibraryPath() ).thenReturn( new IRuntimeSharedLibraryPath[] { runtimeCfg } );
when( runtimeCfg.pathElement() ).thenReturn( "MyLibrary.swc" );
when( runtimeCfg.rslUrl() ).thenReturn( urls );
when( cfg.getFramesConfiguration() ).thenReturn( frameCfg );
when( frameCfg.getFrame() ).thenReturn( new IFrame[] { frame } );
when( frame.label() ).thenReturn( "my-frame" );
when( frame.classname() ).thenReturn( new String[] { "org.package.1", "org.package.2" } );
when( compilerCfg.getNamespacesConfiguration() ).thenReturn( namespacesCfg );
when( namespacesCfg.getNamespace() ).thenReturn( new INamespace[] { namespace, namespace2 } );
when( namespace.uri() ).thenReturn( "http://www.adobe.com/2006/mxml" );