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