12644d947574240b71c427d457f7a775dc160ec09Yorke Lee/* 22644d947574240b71c427d457f7a775dc160ec09Yorke Lee * Copyright (C) 2012 The Android Open Source Project 32644d947574240b71c427d457f7a775dc160ec09Yorke Lee * 42644d947574240b71c427d457f7a775dc160ec09Yorke Lee * Licensed under the Apache License, Version 2.0 (the "License"); 52644d947574240b71c427d457f7a775dc160ec09Yorke Lee * you may not use this file except in compliance with the License. 62644d947574240b71c427d457f7a775dc160ec09Yorke Lee * You may obtain a copy of the License at 72644d947574240b71c427d457f7a775dc160ec09Yorke Lee * 82644d947574240b71c427d457f7a775dc160ec09Yorke Lee * http://www.apache.org/licenses/LICENSE-2.0 92644d947574240b71c427d457f7a775dc160ec09Yorke Lee * 102644d947574240b71c427d457f7a775dc160ec09Yorke Lee * Unless required by applicable law or agreed to in writing, software 112644d947574240b71c427d457f7a775dc160ec09Yorke Lee * distributed under the License is distributed on an "AS IS" BASIS, 122644d947574240b71c427d457f7a775dc160ec09Yorke Lee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132644d947574240b71c427d457f7a775dc160ec09Yorke Lee * See the License for the specific language governing permissions and 142644d947574240b71c427d457f7a775dc160ec09Yorke Lee * limitations under the License 152644d947574240b71c427d457f7a775dc160ec09Yorke Lee */ 162644d947574240b71c427d457f7a775dc160ec09Yorke Lee 1769c182afb0e6d82a341a28b4317aa703af768906Gary Maipackage com.android.contacts.model; 182644d947574240b71c427d457f7a775dc160ec09Yorke Lee 192644d947574240b71c427d457f7a775dc160ec09Yorke Leeimport android.content.ContentValues; 202644d947574240b71c427d457f7a775dc160ec09Yorke Leeimport android.net.Uri; 212644d947574240b71c427d457f7a775dc160ec09Yorke Leeimport android.os.Parcel; 222644d947574240b71c427d457f7a775dc160ec09Yorke Leeimport android.os.Parcelable; 237e79b522637807bdfe792db98e80a77a6e3185f7Walter Jangimport android.test.suitebuilder.annotation.SmallTest; 242644d947574240b71c427d457f7a775dc160ec09Yorke Lee 252644d947574240b71c427d457f7a775dc160ec09Yorke Leeimport junit.framework.TestCase; 262644d947574240b71c427d457f7a775dc160ec09Yorke Lee 272644d947574240b71c427d457f7a775dc160ec09Yorke Lee/** 282644d947574240b71c427d457f7a775dc160ec09Yorke Lee * Unit test for {@link RawContact}. 292644d947574240b71c427d457f7a775dc160ec09Yorke Lee */ 307e79b522637807bdfe792db98e80a77a6e3185f7Walter Jang@SmallTest 312644d947574240b71c427d457f7a775dc160ec09Yorke Leepublic class RawContactTest extends TestCase { 322644d947574240b71c427d457f7a775dc160ec09Yorke Lee 332644d947574240b71c427d457f7a775dc160ec09Yorke Lee private RawContact buildRawContact() { 342644d947574240b71c427d457f7a775dc160ec09Yorke Lee final ContentValues values = new ContentValues(); 352644d947574240b71c427d457f7a775dc160ec09Yorke Lee values.put("key1", "value1"); 362644d947574240b71c427d457f7a775dc160ec09Yorke Lee values.put("key2", "value2"); 372644d947574240b71c427d457f7a775dc160ec09Yorke Lee 382644d947574240b71c427d457f7a775dc160ec09Yorke Lee final ContentValues dataItem = new ContentValues(); 392644d947574240b71c427d457f7a775dc160ec09Yorke Lee dataItem.put("key3", "value3"); 402644d947574240b71c427d457f7a775dc160ec09Yorke Lee dataItem.put("key4", "value4"); 412644d947574240b71c427d457f7a775dc160ec09Yorke Lee 422644d947574240b71c427d457f7a775dc160ec09Yorke Lee final RawContact contact = new RawContact(values); 432644d947574240b71c427d457f7a775dc160ec09Yorke Lee contact.addDataItemValues(dataItem); 442644d947574240b71c427d457f7a775dc160ec09Yorke Lee 452644d947574240b71c427d457f7a775dc160ec09Yorke Lee return contact; 462644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 472644d947574240b71c427d457f7a775dc160ec09Yorke Lee 482644d947574240b71c427d457f7a775dc160ec09Yorke Lee private RawContact buildRawContact2() { 492644d947574240b71c427d457f7a775dc160ec09Yorke Lee final ContentValues values = new ContentValues(); 502644d947574240b71c427d457f7a775dc160ec09Yorke Lee values.put("key11", "value11"); 512644d947574240b71c427d457f7a775dc160ec09Yorke Lee values.put("key22", "value22"); 522644d947574240b71c427d457f7a775dc160ec09Yorke Lee 532644d947574240b71c427d457f7a775dc160ec09Yorke Lee final ContentValues dataItem = new ContentValues(); 542644d947574240b71c427d457f7a775dc160ec09Yorke Lee dataItem.put("key33", "value33"); 552644d947574240b71c427d457f7a775dc160ec09Yorke Lee dataItem.put("key44", "value44"); 562644d947574240b71c427d457f7a775dc160ec09Yorke Lee 572644d947574240b71c427d457f7a775dc160ec09Yorke Lee final RawContact contact = new RawContact(values); 582644d947574240b71c427d457f7a775dc160ec09Yorke Lee contact.addDataItemValues(dataItem); 592644d947574240b71c427d457f7a775dc160ec09Yorke Lee 602644d947574240b71c427d457f7a775dc160ec09Yorke Lee return contact; 612644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 622644d947574240b71c427d457f7a775dc160ec09Yorke Lee 632644d947574240b71c427d457f7a775dc160ec09Yorke Lee public void testNotEquals() { 642644d947574240b71c427d457f7a775dc160ec09Yorke Lee final RawContact one = buildRawContact(); 652644d947574240b71c427d457f7a775dc160ec09Yorke Lee final RawContact two = buildRawContact2(); 662644d947574240b71c427d457f7a775dc160ec09Yorke Lee assertFalse(one.equals(two)); 672644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 682644d947574240b71c427d457f7a775dc160ec09Yorke Lee 692644d947574240b71c427d457f7a775dc160ec09Yorke Lee public void testEquals() { 702644d947574240b71c427d457f7a775dc160ec09Yorke Lee assertEquals(buildRawContact(), buildRawContact()); 712644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 722644d947574240b71c427d457f7a775dc160ec09Yorke Lee 732644d947574240b71c427d457f7a775dc160ec09Yorke Lee public void testParcelable() { 742644d947574240b71c427d457f7a775dc160ec09Yorke Lee assertParcelableEquals(buildRawContact()); 752644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 762644d947574240b71c427d457f7a775dc160ec09Yorke Lee 772644d947574240b71c427d457f7a775dc160ec09Yorke Lee private RawContact.NamedDataItem buildNamedDataItem() { 782644d947574240b71c427d457f7a775dc160ec09Yorke Lee final ContentValues values = new ContentValues(); 792644d947574240b71c427d457f7a775dc160ec09Yorke Lee values.put("key1", "value1"); 802644d947574240b71c427d457f7a775dc160ec09Yorke Lee values.put("key2", "value2"); 812644d947574240b71c427d457f7a775dc160ec09Yorke Lee final Uri uri = Uri.fromParts("content:", "ssp", "fragment"); 822644d947574240b71c427d457f7a775dc160ec09Yorke Lee 832644d947574240b71c427d457f7a775dc160ec09Yorke Lee return new RawContact.NamedDataItem(uri, values); 842644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 852644d947574240b71c427d457f7a775dc160ec09Yorke Lee 862644d947574240b71c427d457f7a775dc160ec09Yorke Lee private RawContact.NamedDataItem buildNamedDataItem2() { 872644d947574240b71c427d457f7a775dc160ec09Yorke Lee final ContentValues values = new ContentValues(); 882644d947574240b71c427d457f7a775dc160ec09Yorke Lee values.put("key11", "value11"); 892644d947574240b71c427d457f7a775dc160ec09Yorke Lee values.put("key22", "value22"); 902644d947574240b71c427d457f7a775dc160ec09Yorke Lee final Uri uri = Uri.fromParts("content:", "blah", "blah"); 912644d947574240b71c427d457f7a775dc160ec09Yorke Lee 922644d947574240b71c427d457f7a775dc160ec09Yorke Lee return new RawContact.NamedDataItem(uri, values); 932644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 942644d947574240b71c427d457f7a775dc160ec09Yorke Lee 952644d947574240b71c427d457f7a775dc160ec09Yorke Lee public void testNamedDataItemEquals() { 962644d947574240b71c427d457f7a775dc160ec09Yorke Lee assertEquals(buildNamedDataItem(), buildNamedDataItem()); 972644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 982644d947574240b71c427d457f7a775dc160ec09Yorke Lee 992644d947574240b71c427d457f7a775dc160ec09Yorke Lee public void testNamedDataItemNotEquals() { 1002644d947574240b71c427d457f7a775dc160ec09Yorke Lee assertFalse(buildNamedDataItem().equals(buildNamedDataItem2())); 1012644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 1022644d947574240b71c427d457f7a775dc160ec09Yorke Lee 1032644d947574240b71c427d457f7a775dc160ec09Yorke Lee public void testNamedDataItemParcelable() { 1042644d947574240b71c427d457f7a775dc160ec09Yorke Lee assertParcelableEquals(buildNamedDataItem()); 1052644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 1062644d947574240b71c427d457f7a775dc160ec09Yorke Lee 1072644d947574240b71c427d457f7a775dc160ec09Yorke Lee private void assertParcelableEquals(Parcelable parcelable) { 1082644d947574240b71c427d457f7a775dc160ec09Yorke Lee final Parcel parcel = Parcel.obtain(); 1092644d947574240b71c427d457f7a775dc160ec09Yorke Lee try { 1102644d947574240b71c427d457f7a775dc160ec09Yorke Lee parcel.writeParcelable(parcelable, 0); 1112644d947574240b71c427d457f7a775dc160ec09Yorke Lee parcel.setDataPosition(0); 1122644d947574240b71c427d457f7a775dc160ec09Yorke Lee 1132644d947574240b71c427d457f7a775dc160ec09Yorke Lee Parcelable out = parcel.readParcelable(parcelable.getClass().getClassLoader()); 1142644d947574240b71c427d457f7a775dc160ec09Yorke Lee assertEquals(parcelable, out); 1152644d947574240b71c427d457f7a775dc160ec09Yorke Lee } finally { 1162644d947574240b71c427d457f7a775dc160ec09Yorke Lee parcel.recycle(); 1172644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 1182644d947574240b71c427d457f7a775dc160ec09Yorke Lee } 1192644d947574240b71c427d457f7a775dc160ec09Yorke Lee} 120