1a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert/*
2a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * Copyright (C) 2010 The Android Open Source Project
3a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert *
4a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
5a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * you may not use this file except in compliance with the License.
6a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * You may obtain a copy of the License at
7a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert *
8a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert *      http://www.apache.org/licenses/LICENSE-2.0
9a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert *
10a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * Unless required by applicable law or agreed to in writing, software
11a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
12a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * See the License for the specific language governing permissions and
14a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * limitations under the License.
15a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert */
16a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
17a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringertpackage com.android.quicksearchbox.util;
18a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
19a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringertimport android.test.suitebuilder.annotation.MediumTest;
20a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
21148154b406d3e483018e98f8f0296b59302020a3Bjorn Bringertimport java.util.concurrent.Executors;
22148154b406d3e483018e98f8f0296b59302020a3Bjorn Bringert
23a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringertimport junit.framework.TestCase;
24a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
25a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert/**
26a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert * Tests for {@link SingleThreadNamedTaskExecutor}.
27a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert */
28a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert@MediumTest
29a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringertpublic class SingleThreadNamedTaskExecutorTest extends TestCase {
30a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
31a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert    private SingleThreadNamedTaskExecutor mExecutor;
32a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
33a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert    @Override
34a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert    protected void setUp() throws Exception {
35a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert        super.setUp();
36a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
37148154b406d3e483018e98f8f0296b59302020a3Bjorn Bringert        mExecutor = new SingleThreadNamedTaskExecutor(Executors.defaultThreadFactory());
38a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert    }
39a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
40a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert    public void testExecute() throws Exception {
41a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert        MockTask a1 = addTask("a", 1);
42a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert        MockTask a2 = addTask("a", 2);
43a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
44a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert        // This just checks that the tasks run, and run in the right order
45a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert        a1.waitForCompletion();
46a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert        a2.waitForCompletion();
47a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert    }
48a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
49a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert    private MockTask addTask(String name, int id) {
50a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert        MockTask task = new MockTask(name, id);
51a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert        mExecutor.execute(task);
52a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert        return task;
53a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert    }
54a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert
55a48af083ff81555261f334a1e050eae3b02a746cBjorn Bringert}
56