From bf27d875b7c6e9dec5d3cfc1d4595a71af67deae Mon Sep 17 00:00:00 2001 From: zachh Date: Wed, 15 Nov 2017 21:16:49 -0800 Subject: Added PhoneLookupDataSource and implemented isDirty. Also extracted FakePhoneLookup to a testing package. Bug: 34672501 Test: unit PiperOrigin-RevId: 175923790 Change-Id: I866708a676e788051b369a024344967975c05979 --- .../phonelookup/testing/FakePhoneLookup.java | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 java/com/android/dialer/phonelookup/testing/FakePhoneLookup.java (limited to 'java/com/android/dialer/phonelookup') diff --git a/java/com/android/dialer/phonelookup/testing/FakePhoneLookup.java b/java/com/android/dialer/phonelookup/testing/FakePhoneLookup.java new file mode 100644 index 000000000..853116f9a --- /dev/null +++ b/java/com/android/dialer/phonelookup/testing/FakePhoneLookup.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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.android.dialer.phonelookup.testing; + +import android.support.annotation.NonNull; +import android.telecom.Call; +import com.android.dialer.DialerPhoneNumber; +import com.android.dialer.phonelookup.PhoneLookup; +import com.android.dialer.phonelookup.PhoneLookupInfo; +import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.SettableFuture; + +/** Fake implementation of {@link PhoneLookup} used for unit tests. */ +@AutoValue +public abstract class FakePhoneLookup implements PhoneLookup { + + abstract PhoneLookupInfo lookupResult(); + + abstract ImmutableMap bulkUpdateResult(); + + abstract boolean isDirtyResult(); + + public static Builder builder() { + return new AutoValue_FakePhoneLookup.Builder() + .setLookupResult(PhoneLookupInfo.getDefaultInstance()) + .setBulkUpdateResult(ImmutableMap.of()) + .setIsDirtyResult(false); + } + + /** Builder. */ + @AutoValue.Builder + public abstract static class Builder { + + public abstract Builder setLookupResult(PhoneLookupInfo phoneLookupInfo); + + public abstract Builder setBulkUpdateResult( + ImmutableMap map); + + public abstract Builder setIsDirtyResult(boolean isDirty); + + public abstract FakePhoneLookup build(); + } + + @Override + public ListenableFuture lookup(@NonNull Call call) { + SettableFuture future = SettableFuture.create(); + future.set(lookupResult()); + return future; + } + + @Override + public ListenableFuture isDirty( + ImmutableSet phoneNumbers, long lastModified) { + SettableFuture future = SettableFuture.create(); + future.set(isDirtyResult()); + return future; + } + + @Override + public ListenableFuture> bulkUpdate( + ImmutableMap existingInfoMap, long lastModified) { + SettableFuture> future = + SettableFuture.create(); + future.set(bulkUpdateResult()); + return future; + } +} -- cgit v1.2.3