1c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin/* 2564e43098c323d1a90be53c190b8fdbdde973505Sumir Kataria * Copyright 2018 The Android Open Source Project 3c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * 4c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * Licensed under the Apache License, Version 2.0 (the "License"); 5c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * you may not use this file except in compliance with the License. 6c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * You may obtain a copy of the License at 7c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * 8c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * http://www.apache.org/licenses/LICENSE-2.0 9c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * 10c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * Unless required by applicable law or agreed to in writing, software 11c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * distributed under the License is distributed on an "AS IS" BASIS, 12c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * See the License for the specific language governing permissions and 14c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * limitations under the License. 15c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin */ 16c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin 17564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariapackage androidx.work; 18c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin 19c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarinimport android.support.test.InstrumentationRegistry; 20c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin 21b5728f4e1a4b3f4f1fabf033b1363ca6b1cffdefSumir Katariaimport androidx.work.impl.WorkDatabase; 22b5728f4e1a4b3f4f1fabf033b1363ca6b1cffdefSumir Kataria 23c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarinimport org.junit.After; 24c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarinimport org.junit.Before; 25c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin 26c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin/** 27c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin * An abstract class for getting an in-memory instance of the {@link WorkDatabase}. 28c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin */ 291cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Katariapublic abstract class DatabaseTest extends WorkManagerTest { 30c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin protected WorkDatabase mDatabase; 31c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin 32c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin @Before 33c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin public void initializeDb() { 34c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin mDatabase = WorkDatabase.create(InstrumentationRegistry.getTargetContext(), true); 35c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin } 36c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin 37c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin @After 38c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin public void closeDb() { 39c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin mDatabase.close(); 40c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin } 419e63790830c817be832dd4f7de2b483c2f555363Sumir Kataria 427031a0fbe12b8159ab2dc6d9c50be5b3f38477faRahul Ravikumar protected void insertWork(OneTimeWorkRequest work) { 431cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria mDatabase.workSpecDao().insertWorkSpec(getWorkSpec(work)); 441cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria } 451cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria 468b3284fa4a62568df91f706b0b2334284794008fSumir Kataria protected void insertWork(PeriodicWorkRequest periodicWork) { 471cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria mDatabase.workSpecDao().insertWorkSpec(getWorkSpec(periodicWork)); 489e63790830c817be832dd4f7de2b483c2f555363Sumir Kataria } 49c4dc2081f10e02c3a002d4941f6cb4a11b9fd14fJan Clarin} 50