PaymentSettingsTest.java revision 5e1ab7f974125c731946ceb2790670a46efb4314
15e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze/*
25e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze * Copyright (C) 2017 The Android Open Source Project
35e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze *
45e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze * Licensed under the Apache License, Version 2.0 (the "License");
55e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze * you may not use this file except in compliance with the License.
65e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze * You may obtain a copy of the License at
75e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze *
85e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze *      http://www.apache.org/licenses/LICENSE-2.0
95e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze *
105e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze * Unless required by applicable law or agreed to in writing, software
115e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze * distributed under the License is distributed on an "AS IS" BASIS,
125e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze * See the License for the specific language governing permissions and
145e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze * limitations under the License.
155e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze *
165e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze */
175e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
185e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzepackage com.android.settings.nfc;
195e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
205e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport android.content.Context;
215e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
225e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport android.content.pm.PackageManager;
235e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport android.content.pm.PackageParser;
245e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport com.android.settings.SettingsRobolectricTestRunner;
255e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport com.android.settings.TestConfig;
265e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport org.junit.Before;
275e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport org.junit.Test;
285e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport org.junit.runner.RunWith;
295e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport org.mockito.Mock;
305e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport org.mockito.MockitoAnnotations;
315e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport org.robolectric.annotation.Config;
325e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
335e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport java.util.List;
345e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
355e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport static com.google.common.truth.Truth.assertThat;
365e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport static org.mockito.Mockito.mock;
375e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzeimport static org.mockito.Mockito.when;
385e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
395e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze@RunWith(SettingsRobolectricTestRunner.class)
405e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
415e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritzepublic class PaymentSettingsTest {
425e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    @Mock
435e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    Context mContext;
445e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
455e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    @Mock
465e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    private PackageManager mManager;
475e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
485e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    private PaymentSettings mFragment;
495e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
505e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    @Before
515e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    public void setUp() {
525e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze        MockitoAnnotations.initMocks(this);
535e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze        mFragment = new PaymentSettings();
545e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze        when(mContext.getPackageManager()).thenReturn(mManager);
555e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    }
565e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
575e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    @Test
585e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    public void testNonIndexableKey_NoNFC_KeyAdded() {
595e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze        when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(false);
605e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
615e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze        List<String> niks = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
625e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze        assertThat(niks).contains(mFragment.PAYMENT_KEY);
635e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    }
645e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
655e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    @Test
665e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    public void testNonIndexableKey_NFC_NoKeyAdded() {
675e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze        when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(true);
685e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze
695e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze        List<String> niks = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
705e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze        assertThat(niks).isNull();
715e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze    }
725e1ab7f974125c731946ceb2790670a46efb4314Matthew Fritze}