11cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria/*
2564e43098c323d1a90be53c190b8fdbdde973505Sumir Kataria * Copyright 2018 The Android Open Source Project
31cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria *
41cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria * Licensed under the Apache License, Version 2.0 (the "License");
51cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria * you may not use this file except in compliance with the License.
61cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria * You may obtain a copy of the License at
71cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria *
81cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria *      http://www.apache.org/licenses/LICENSE-2.0
91cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria *
101cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria * Unless required by applicable law or agreed to in writing, software
111cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria * distributed under the License is distributed on an "AS IS" BASIS,
121cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria * See the License for the specific language governing permissions and
141cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria * limitations under the License.
151cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria */
161cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria
17564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariapackage androidx.work;
181cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria
19c458f4a136424482056b72efa84f7412da4436cdSumir Katariaimport android.app.job.JobScheduler;
20c458f4a136424482056b72efa84f7412da4436cdSumir Katariaimport android.content.Context;
21c458f4a136424482056b72efa84f7412da4436cdSumir Katariaimport android.os.Build;
22c458f4a136424482056b72efa84f7412da4436cdSumir Katariaimport android.support.test.InstrumentationRegistry;
231cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria
24564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariaimport androidx.work.impl.WorkManagerImpl;
25564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariaimport androidx.work.impl.model.WorkSpec;
26564e43098c323d1a90be53c190b8fdbdde973505Sumir Kataria
2731099f8c34e2e4ba4760ca643c7f6cdb51791c4eSumir Katariaimport org.junit.After;
2831099f8c34e2e4ba4760ca643c7f6cdb51791c4eSumir Kataria
2931099f8c34e2e4ba4760ca643c7f6cdb51791c4eSumir Katariaimport java.util.Set;
3031099f8c34e2e4ba4760ca643c7f6cdb51791c4eSumir Kataria
311cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Katariapublic abstract class WorkManagerTest {
321cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria
33c458f4a136424482056b72efa84f7412da4436cdSumir Kataria    @After
34c458f4a136424482056b72efa84f7412da4436cdSumir Kataria    public void clearJobs() {
35c458f4a136424482056b72efa84f7412da4436cdSumir Kataria        // Note: @SdkSuppress doesn't seem to work here.
3690c024663706960aa738040824160d6d8f6df449Sumir Kataria        if (Build.VERSION.SDK_INT >= WorkManagerImpl.MIN_JOB_SCHEDULER_API_LEVEL) {
37c458f4a136424482056b72efa84f7412da4436cdSumir Kataria            JobScheduler jobScheduler = (JobScheduler) InstrumentationRegistry.getTargetContext()
38c458f4a136424482056b72efa84f7412da4436cdSumir Kataria                    .getSystemService(Context.JOB_SCHEDULER_SERVICE);
39c458f4a136424482056b72efa84f7412da4436cdSumir Kataria            jobScheduler.cancelAll();
40c458f4a136424482056b72efa84f7412da4436cdSumir Kataria        }
41c458f4a136424482056b72efa84f7412da4436cdSumir Kataria    }
42c458f4a136424482056b72efa84f7412da4436cdSumir Kataria
437031a0fbe12b8159ab2dc6d9c50be5b3f38477faRahul Ravikumar    protected WorkSpec getWorkSpec(WorkRequest work) {
4431099f8c34e2e4ba4760ca643c7f6cdb51791c4eSumir Kataria        return work.getWorkSpec();
451cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria    }
461cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria
477031a0fbe12b8159ab2dc6d9c50be5b3f38477faRahul Ravikumar    protected Set<String> getTags(WorkRequest work) {
4831099f8c34e2e4ba4760ca643c7f6cdb51791c4eSumir Kataria        return work.getTags();
491cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria    }
501cd0e4eb391fb7e7d5ac60433f705496a9390384Sumir Kataria}
51