/* * Copyright (C) 2012 uPhyca Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.uphyca.testing; import org.junit.After; import org.junit.Before; import org.junit.Test; import android.app.Application; import android.app.Service; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.IBinder; /** * @see android.test.ServiceTestCase */ public abstract class ServiceTestCase<T extends Service> { private final ServiceTester<T> _tester; /** * @param serviceClass * @see android.test.ServiceTestCase#ServiceTestCase(Class) */ public ServiceTestCase(Class<T> serviceClass) { _tester = new ServiceTester<T>(this, serviceClass); } /** * @throws Exception * @see android.test.ServiceTestCase#setUp() */ @Before public void setUp() throws Exception { _tester.setUp(); } /** * @throws Exception * @see android.test.ServiceTestCase#tearDown() */ @After public void tearDown() throws Exception { _tester.tearDown(); } @Test public void testAndroidTestCaseSetupProperly() { _tester.testAndroidTestCaseSetupProperly(); } @Test public void testServiceTestCaseSetUpProperly() throws Exception { _tester.testServiceTestCaseSetUpProperly(); } /** * @param context * @see android.test.AndroidTestCase#setContext(android.content.Context) */ public void setContext(Context context) { _tester.setContext(context); } /** * @return * @see android.test.AndroidTestCase#getContext() */ public Context getContext() { return _tester.getContext(); } /** * @param packageName * @param className * @param permission * @see android.test.AndroidTestCase#assertActivityRequiresPermission(java.lang.String, * java.lang.String, java.lang.String) */ public void assertActivityRequiresPermission(String packageName, String className, String permission) { AndroidTestCaseMethodInvoker invoker = AndroidTestCaseMethodInvoker.getInstance(); invoker.assertActivityRequiresPermission(_tester, packageName, className, permission); } /** * @param uri * @param permission * @see android.test.AndroidTestCase#assertReadingContentUriRequiresPermission(android.net.Uri, * java.lang.String) */ public void assertReadingContentUriRequiresPermission(Uri uri, String permission) { AndroidTestCaseMethodInvoker invoker = AndroidTestCaseMethodInvoker.getInstance(); invoker.assertReadingContentUriRequiresPermission(_tester, uri, permission); } /** * @param uri * @param permission * @see android.test.AndroidTestCase#assertWritingContentUriRequiresPermission(android.net.Uri, * java.lang.String) */ public void assertWritingContentUriRequiresPermission(Uri uri, String permission) { AndroidTestCaseMethodInvoker invoker = AndroidTestCaseMethodInvoker.getInstance(); invoker.assertWritingContentUriRequiresPermission(_tester, uri, permission); } /** * @return * @see android.test.ServiceTestCase#getService() */ public T getService() { return _tester.getService(); } /** * @param application * @see android.test.ServiceTestCase#setApplication(android.app.Application) */ public void setApplication(Application application) { _tester.setApplication(application); } /** * @return * @see android.test.ServiceTestCase#getApplication() */ public Application getApplication() { return _tester.getApplication(); } /** * @return * @see android.test.ServiceTestCase#getSystemContext() */ public Context getSystemContext() { return _tester.getSystemContext(); } /** * @param intent * @return * @see com.uphyca.testing.ServiceTester#bindService(android.content.Intent) */ public IBinder bindService(Intent intent) { return _tester.bindService(intent); } /** * * @see com.uphyca.testing.ServiceTester#setupService() */ protected void setupService() { _tester.setupService(); } /** * * @see com.uphyca.testing.ServiceTester#shutdownService() */ protected void shutdownService() { _tester.shutdownService(); } /** * @param intent * @see com.uphyca.testing.ServiceTester#startService(android.content.Intent) */ protected void startService(Intent intent) { _tester.startService(intent); } }