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}