InvalidationTracker { @Deprecated @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public <T> LiveData<T> createLiveData(String[] tableNames, Callable<T> computeFunction) { return createLiveData(tableNames, false, computeFunction); } @SuppressWarnings("WeakerAccess") @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)  InvalidationTracker(RoomDatabase database, String... tableNames); @SuppressWarnings("WeakerAccess") @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)  InvalidationTracker(RoomDatabase database, Map<String, String> shadowTablesMap,
            Map<String, Set<String>> viewTables, String... tableNames); @SuppressLint("RestrictedApi") @WorkerThread void addObserver(@NonNull Observer observer); @SuppressWarnings("unused") @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX) void addWeakObserver(Observer observer); @SuppressLint("RestrictedApi") @SuppressWarnings("WeakerAccess") @WorkerThread void removeObserver(@NonNull final Observer observer); @SuppressWarnings("WeakerAccess") void refreshVersionsAsync(); @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @WorkerThread void refreshVersionsSync(); @RestrictTo(RestrictTo.Scope.LIBRARY) @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) void notifyObserversByTableNames(String... tables); @Deprecated @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX) LiveData<T> createLiveData(String[] tableNames, Callable<T> computeFunction); @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX) LiveData<T> createLiveData(String[] tableNames, boolean inTransaction,
            Callable<T> computeFunction);  }
@Test public void failFastCreateLiveData() { try { mTracker.createLiveData(new String[]{"invalid table name"}, new Callable<Void>() { @Override public Void call() throws Exception { return null; } }); Assert.fail("should've throw an exception for invalid table name"); } catch (IllegalArgumentException expected) { } }