10bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann/* 20bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * Copyright (C) 2011 The Android Open Source Project 30bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * 40bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * Licensed under the Apache License, Version 2.0 (the "License"); 50bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * you may not use this file except in compliance with the License. 60bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * You may obtain a copy of the License at 70bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * 80bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * http://www.apache.org/licenses/LICENSE-2.0 90bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * 100bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * Unless required by applicable law or agreed to in writing, software 110bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * distributed under the License is distributed on an "AS IS" BASIS, 120bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * See the License for the specific language governing permissions and 140bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann * limitations under the License. 150bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann */ 160bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann 170bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmannpackage com.android.providers.contacts; 180bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann 190bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmannimport android.test.mock.MockResources; 200bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann 2138210445730ee04c351c7cc1b3800cfe23e34325Makoto Onukiimport com.google.android.collect.Maps; 2238210445730ee04c351c7cc1b3800cfe23e34325Makoto Onuki 230bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmannimport java.util.Map; 240bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann 250bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmannfinal class ContactsMockResources extends MockResources { 260bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann private Map<Integer, String> mPackages = Maps.newHashMap(); 270bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann private Map<Integer, String> mTypes = Maps.newHashMap(); 280bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann private Map<Integer, String> mEntries = Maps.newHashMap(); 290bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann 300bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann public void addResource(int resId, String packageName, String typeName, String entryName) { 310bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann mPackages.put(resId, packageName); 320bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann mTypes.put(resId, typeName); 330bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann mEntries.put(resId, entryName); 340bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann } 350bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann 360bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann @Override 370bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann public String getResourceName(int resId) throws NotFoundException { 380bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann if (!mPackages.containsKey(resId)) { 390bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann throw new NotFoundException("Resource " + resId + " not found"); 400bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann } 410bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann return mPackages.get(resId) + ":" + mTypes.get(resId) + "/" + mEntries.get(resId); 420bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann } 430bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann 440bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann @Override 450bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann public String getResourcePackageName(int resId) throws NotFoundException { 460bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann if (!mPackages.containsKey(resId)) { 470bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann throw new NotFoundException("Resource " + resId + " not found"); 480bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann } 490bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann return mPackages.get(resId); 500bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann } 510bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann 520bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann @Override 530bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann public String getResourceTypeName(int resId) throws NotFoundException { 540bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann if (!mPackages.containsKey(resId)) { 550bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann throw new NotFoundException("Resource " + resId + " not found"); 560bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann } 570bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann return mTypes.get(resId); 580bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann } 590bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann 600bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann @Override 610bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann public String getResourceEntryName(int resId) throws NotFoundException { 620bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann if (!mPackages.containsKey(resId)) { 630bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann throw new NotFoundException("Resource " + resId + " not found"); 640bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann } 650bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann return mEntries.get(resId); 660bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann } 670bf6b318e3c994294d4a885f57906debd4a0e64eDaniel Lehmann}