diff options
author | Chiao Cheng <chiaocheng@google.com> | 2012-09-07 17:28:17 -0700 |
---|---|---|
committer | Chiao Cheng <chiaocheng@google.com> | 2012-09-12 17:51:24 -0700 |
commit | 47b6f70eadb118d815b4aaf5426c070bd75a38fb (patch) | |
tree | 55e2c054c11283137372a3b0a7b34b1314782b7c /tests/src/com/android/contacts/model | |
parent | f9bfc3d902085961e942f4a034682e2695e6e842 (diff) | |
download | Contacts-47b6f70eadb118d815b4aaf5426c070bd75a38fb.tar.gz |
Refactor RawContact to be parcelable.
- Re-work of RawContact to be a real data container and removed un-necessary
dependencies.
- Removed un-necessary circular dependency between RawContact and DataItem.
- Cleaned up and made DataItem more compartmentalized by removing un-related
account methods.
- Implemented Parcelable for RawContact and NamedDataItem.
Bug: 6406182
Change-Id: Icd84f34d85e1349a86e473708cc7f8fece12349f
Diffstat (limited to 'tests/src/com/android/contacts/model')
-rw-r--r-- | tests/src/com/android/contacts/model/RawContactTest.java | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/tests/src/com/android/contacts/model/RawContactTest.java b/tests/src/com/android/contacts/model/RawContactTest.java new file mode 100644 index 000000000..f09e64f5c --- /dev/null +++ b/tests/src/com/android/contacts/model/RawContactTest.java @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2012 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.contacts.model; + +import android.content.ContentValues; +import android.net.Uri; +import android.os.Parcel; +import android.os.Parcelable; + +import junit.framework.TestCase; + +/** + * Unit test for {@link RawContact}. + */ +public class RawContactTest extends TestCase { + + private RawContact buildRawContact() { + final ContentValues values = new ContentValues(); + values.put("key1", "value1"); + values.put("key2", "value2"); + + final ContentValues dataItem = new ContentValues(); + dataItem.put("key3", "value3"); + dataItem.put("key4", "value4"); + + final RawContact contact = new RawContact(values); + contact.addDataItemValues(dataItem); + + return contact; + } + + private RawContact buildRawContact2() { + final ContentValues values = new ContentValues(); + values.put("key11", "value11"); + values.put("key22", "value22"); + + final ContentValues dataItem = new ContentValues(); + dataItem.put("key33", "value33"); + dataItem.put("key44", "value44"); + + final RawContact contact = new RawContact(values); + contact.addDataItemValues(dataItem); + + return contact; + } + + public void testNotEquals() { + final RawContact one = buildRawContact(); + final RawContact two = buildRawContact2(); + assertFalse(one.equals(two)); + } + + public void testEquals() { + assertEquals(buildRawContact(), buildRawContact()); + } + + public void testParcelable() { + assertParcelableEquals(buildRawContact()); + } + + private RawContact.NamedDataItem buildNamedDataItem() { + final ContentValues values = new ContentValues(); + values.put("key1", "value1"); + values.put("key2", "value2"); + final Uri uri = Uri.fromParts("content:", "ssp", "fragment"); + + return new RawContact.NamedDataItem(uri, values); + } + + private RawContact.NamedDataItem buildNamedDataItem2() { + final ContentValues values = new ContentValues(); + values.put("key11", "value11"); + values.put("key22", "value22"); + final Uri uri = Uri.fromParts("content:", "blah", "blah"); + + return new RawContact.NamedDataItem(uri, values); + } + + public void testNamedDataItemEquals() { + assertEquals(buildNamedDataItem(), buildNamedDataItem()); + } + + public void testNamedDataItemNotEquals() { + assertFalse(buildNamedDataItem().equals(buildNamedDataItem2())); + } + + public void testNamedDataItemParcelable() { + assertParcelableEquals(buildNamedDataItem()); + } + + private void assertParcelableEquals(Parcelable parcelable) { + final Parcel parcel = Parcel.obtain(); + try { + parcel.writeParcelable(parcelable, 0); + parcel.setDataPosition(0); + + Parcelable out = parcel.readParcelable(parcelable.getClass().getClassLoader()); + assertEquals(parcelable, out); + } finally { + parcel.recycle(); + } + } +} |