Java 类io.realm.internal.RealmCore 实例源码

项目:GitHub    文件:RealmConfiguration.java   
Builder(Context context) {
    //noinspection ConstantConditions
    if (context == null) {
        throw new IllegalStateException("Call `Realm.init(Context)` before creating a RealmConfiguration");
    }
    RealmCore.loadLibrary(context);
    initializeBuilder(context);
}
项目:mvvm-template    文件:TestDataModule.java   
/**
 * Init realm configuration and instance
 * @return
 * @throws Exception
 */
@Provides
@Singleton
RealmConfiguration provideRealmConfiguration(){
    mockStatic(RealmCore.class);
    mockStatic(RealmLog.class);
    mockStatic(Realm.class);
    mockStatic(RealmConfiguration.class);
    Realm.init(RuntimeEnvironment.application);

    // TODO: Better solution would be just mock the RealmConfiguration.Builder class. But it seems there is some
    // problems for powermock to mock it (static inner class). We just mock the RealmCore.loadLibrary(Context) which
    // will be called by RealmConfiguration.Builder's constructor.
    doNothing().when(RealmCore.class);
    RealmCore.loadLibrary(any(Context.class));

    final RealmConfiguration mockRealmConfig = PowerMockito.mock(RealmConfiguration.class);

    try {
        whenNew(RealmConfiguration.class).withAnyArguments().thenReturn(mockRealmConfig);
    } catch (Exception e) {
        e.printStackTrace();
    }

    when(Realm.getDefaultConfiguration()).thenReturn(mockRealmConfig);

    // init mock realm
    Realm mockRealm = PowerMockito.mock(Realm.class);;
    // Anytime getInstance is called with any configuration, then return the mockRealm
    when(Realm.getDefaultInstance()).thenReturn(mockRealm);

    when(Realm.getInstance(mockRealmConfig)).thenReturn(mockRealm);

    return mockRealmConfig;
}
项目:GitHub    文件:Realm.java   
/**
 * Initializes the Realm library and creates a default configuration that is ready to use. It is required to call
 * this method before interacting with any other of the Realm API's.
 * <p>
 * A good place is in an {@link android.app.Application} subclass:
 * <pre>
 * {@code
 * public class MyApplication extends Application {
 *   \@Override
 *   public void onCreate() {
 *     super.onCreate();
 *     Realm.init(this);
 *   }
 * }
 * }
 * </pre>
 * <p>
 * Remember to register it in the {@code AndroidManifest.xml} file:
 * <pre>
 * {@code
 * <?xml version="1.0" encoding="utf-8"?>
 * <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.realm.example">
 * <application android:name=".MyApplication">
 *   // ...
 * </application>
 * </manifest>
 * }
 * </pre>
 *
 * @param context the Application Context.
 * @throws IllegalArgumentException if a {@code null} context is provided.
 * @throws IllegalStateException if {@link Context#getFilesDir()} could not be found.
 * @see #getDefaultInstance()
 */
public static synchronized void init(Context context) {
    if (BaseRealm.applicationContext == null) {
        //noinspection ConstantConditions
        if (context == null) {
            throw new IllegalArgumentException("Non-null context required.");
        }
        checkFilesDirAvailable(context);
        RealmCore.loadLibrary(context);
        setDefaultConfiguration(new RealmConfiguration.Builder(context).build());
        ObjectServerFacade.getSyncFacadeIfPossible().init(context);
        if (context.getApplicationContext() != null) {
            BaseRealm.applicationContext = context.getApplicationContext();
        } else {
            BaseRealm.applicationContext = context;
        }
        OsSharedRealm.initialize(new File(context.getFilesDir(), ".realm.temp"));
    }
}