protected RepositoryMeta createPurRepositoryMetaRepositoryMeta( String url ) {
    RepositoryMeta purRepositoryMeta = null;
    try {
      Class<?> purRepositoryLocationClass = purPluginClassLoader.loadClass( "org.pentaho.di.repository.pur"
          + ".PurRepositoryLocation" );

      Constructor<?> purRepositoryLocationConstructor = purRepositoryLocationClass.getConstructor( String.class );
      Object purRepositoryLocation = purRepositoryLocationConstructor.newInstance( url );

      Class<?> purRepositoryMetaClass = purPluginClassLoader.loadClass( "org.pentaho.di.repository.pur.PurRepositoryMeta" );
      purRepositoryMeta = (RepositoryMeta) purRepositoryMetaClass.newInstance();

      Method setRepositoryLocationMethod = purRepositoryMetaClass.getMethod( "setRepositoryLocation", purRepositoryLocationClass );
      setRepositoryLocationMethod.invoke( purRepositoryMeta, purRepositoryLocation );
    } catch ( Exception e ) {
      logger.error( "Unable to instantiate repository meta!" );
    }
    return purRepositoryMeta;
  }
@Test
  public void createPurRepositoryMetaRepositoryMetaTest() {
    RepositoryMeta repositoryMeta = null;
    try {
      Mockito.<Class<?>>when( mockClassLoader.loadClass( "org.pentaho.di.repository.pur"
          + ".PurRepositoryLocation" ) ).thenReturn( Class.forName( "org.pentaho.di.repository.pur"
          + ".PurRepositoryLocation" ) );
      Mockito.<Class<?>>when( mockClassLoader.loadClass( "org.pentaho.di.repository.pur.PurRepositoryMeta" ) )
          .thenReturn( Class.forName( "org.pentaho.di.repository.pur.PurRepositoryMeta" ) );
    } catch ( ClassNotFoundException e ) {
      e.printStackTrace();
    }

    repositoryMeta = proxy.createPurRepositoryMetaRepositoryMeta( "SomeUrl" );

    assertNotNull( repositoryMeta );
  }