1d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin/* 2d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * Copyright 2018 The Android Open Source Project 3d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * 4d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * Licensed under the Apache License, Version 2.0 (the "License"); 5d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * you may not use this file except in compliance with the License. 6d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * You may obtain a copy of the License at 7d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * 8d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * http://www.apache.org/licenses/LICENSE-2.0 9d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * 10d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * Unless required by applicable law or agreed to in writing, software 11d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * distributed under the License is distributed on an "AS IS" BASIS, 12d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * See the License for the specific language governing permissions and 14d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin * limitations under the License. 15d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin */ 16d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 17d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yinpackage androidx.core.app; 18d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 19d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yinimport static org.junit.Assert.assertEquals; 207c734cc65886276ab78384ec73f597cafd274078Kodlee Yinimport static org.junit.Assert.assertFalse; 217c734cc65886276ab78384ec73f597cafd274078Kodlee Yinimport static org.junit.Assert.assertNull; 22d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 23d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yinimport android.graphics.Bitmap; 24d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yinimport android.os.Bundle; 25d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yinimport android.support.test.filters.SmallTest; 26d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yinimport android.support.test.runner.AndroidJUnit4; 27d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 287c734cc65886276ab78384ec73f597cafd274078Kodlee Yinimport androidx.core.graphics.drawable.IconCompat; 297c734cc65886276ab78384ec73f597cafd274078Kodlee Yin 30d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yinimport org.junit.Test; 31d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yinimport org.junit.runner.RunWith; 32d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 33d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin@SmallTest 34d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin@RunWith(AndroidJUnit4.class) 35d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yinpublic class PersonTest { 36d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin private static final CharSequence TEST_NAME = "Example Name"; 377c734cc65886276ab78384ec73f597cafd274078Kodlee Yin private static final IconCompat TEST_ICON = 387c734cc65886276ab78384ec73f597cafd274078Kodlee Yin IconCompat.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888)); 39d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin private static final String TEST_URI = "mailto:example@example.com"; 40d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin private static final String TEST_KEY = "example-key"; 41d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin private static final boolean TEST_IS_BOT = true; 42d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin private static final boolean TEST_IS_IMPORTANT = true; 43d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 44d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin @Test 45d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin public void bundle() { 46d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person person = new Person.Builder() 47d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setImportant(TEST_IS_IMPORTANT) 48d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setBot(TEST_IS_BOT) 49d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setKey(TEST_KEY) 50d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setUri(TEST_URI) 51d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setIcon(TEST_ICON) 52d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setName(TEST_NAME) 53d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .build(); 54d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 55d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Bundle personBundle = person.toBundle(); 56d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person result = Person.fromBundle(personBundle); 57d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 58d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_NAME, result.getName()); 59d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_URI, result.getUri()); 60d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_KEY, result.getKey()); 61d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_IS_BOT, result.isBot()); 62d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_IS_IMPORTANT, result.isImportant()); 637c734cc65886276ab78384ec73f597cafd274078Kodlee Yin assertEquals(TEST_ICON.toBundle().toString(), result.getIcon().toBundle().toString()); 647c734cc65886276ab78384ec73f597cafd274078Kodlee Yin } 657c734cc65886276ab78384ec73f597cafd274078Kodlee Yin 667c734cc65886276ab78384ec73f597cafd274078Kodlee Yin @Test 677c734cc65886276ab78384ec73f597cafd274078Kodlee Yin public void bundle_defaultValues() { 687c734cc65886276ab78384ec73f597cafd274078Kodlee Yin Person person = new Person.Builder().build(); 69d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 707c734cc65886276ab78384ec73f597cafd274078Kodlee Yin Bundle personBundle = person.toBundle(); 717c734cc65886276ab78384ec73f597cafd274078Kodlee Yin Person result = Person.fromBundle(personBundle); 727c734cc65886276ab78384ec73f597cafd274078Kodlee Yin 737c734cc65886276ab78384ec73f597cafd274078Kodlee Yin assertNull(result.getIcon()); 747c734cc65886276ab78384ec73f597cafd274078Kodlee Yin assertNull(result.getKey()); 757c734cc65886276ab78384ec73f597cafd274078Kodlee Yin assertNull(result.getName()); 767c734cc65886276ab78384ec73f597cafd274078Kodlee Yin assertNull(result.getUri()); 777c734cc65886276ab78384ec73f597cafd274078Kodlee Yin assertFalse(result.isImportant()); 787c734cc65886276ab78384ec73f597cafd274078Kodlee Yin assertFalse(result.isBot()); 79d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin } 80d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 81d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin @Test 82d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin public void toBuilder() { 83d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person person = new Person.Builder() 84d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setImportant(TEST_IS_IMPORTANT) 85d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setBot(TEST_IS_BOT) 86d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setKey(TEST_KEY) 87d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setUri(TEST_URI) 88d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setIcon(TEST_ICON) 89d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .setName(TEST_NAME) 90d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin .build(); 91d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person result = person.toBuilder().build(); 92d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 93d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_NAME, result.getName()); 94d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_URI, result.getUri()); 95d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_KEY, result.getKey()); 96d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_IS_BOT, result.isBot()); 97d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_IS_IMPORTANT, result.isImportant()); 987c734cc65886276ab78384ec73f597cafd274078Kodlee Yin assertEquals(TEST_ICON.toBundle().toString(), result.getIcon().toBundle().toString()); 99d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin } 100d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 101d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin @Test 102d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin public void getName() { 103d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person person = new Person.Builder().setName(TEST_NAME).build(); 104d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_NAME, person.getName()); 105d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin } 106d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 107d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin @Test 108d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin public void getIcon() { 109d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person person = new Person.Builder().setIcon(TEST_ICON).build(); 110d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_ICON, person.getIcon()); 111d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin } 112d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 113d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin @Test 114d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin public void getUri() { 115d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person person = new Person.Builder().setUri(TEST_URI).build(); 116d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_URI, person.getUri()); 117d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin } 118d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 119d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin @Test 120d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin public void getKey() { 121d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person person = new Person.Builder().setKey(TEST_KEY).build(); 122d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_KEY, person.getKey()); 123d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin } 124d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 125d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin @Test 126d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin public void isBot() { 127d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person person = new Person.Builder().setBot(TEST_IS_BOT).build(); 128d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_IS_BOT, person.isBot()); 129d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin } 130d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin 131d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin @Test 132d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin public void isImportant() { 133d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin Person person = new Person.Builder().setImportant(TEST_IS_IMPORTANT).build(); 134d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin assertEquals(TEST_IS_IMPORTANT, person.isImportant()); 135d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin } 136d3bcc2e10f9b798597f11b7f198c82c716511a87Kodlee Yin} 137