diff options
author | Chiao Cheng <chiaocheng@google.com> | 2012-11-30 12:04:14 -0800 |
---|---|---|
committer | Chiao Cheng <chiaocheng@google.com> | 2012-11-30 12:04:14 -0800 |
commit | 8e3d59a4b2f9140f0b612055cf149cf73e4dde6d (patch) | |
tree | b8ec4a808f28d1eb5aa5af4d631462c2f2af9e7d /tests | |
parent | 39baa4eb5628cf1235dedd3796f00d300abb00f6 (diff) | |
download | android_packages_apps_ContactsCommon-8e3d59a4b2f9140f0b612055cf149cf73e4dde6d.tar.gz android_packages_apps_ContactsCommon-8e3d59a4b2f9140f0b612055cf149cf73e4dde6d.tar.bz2 android_packages_apps_ContactsCommon-8e3d59a4b2f9140f0b612055cf149cf73e4dde6d.zip |
Move ValuesDelta to ContactsCommon.
Bug: 6993891
Change-Id: Iaf94a00abfb64c9b0eb547dd446f743f6cd855ce
Diffstat (limited to 'tests')
-rw-r--r-- | tests/src/com/android/contacts/common/model/ValuesDeltaTests.java | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/src/com/android/contacts/common/model/ValuesDeltaTests.java b/tests/src/com/android/contacts/common/model/ValuesDeltaTests.java new file mode 100644 index 00000000..ca828dcc --- /dev/null +++ b/tests/src/com/android/contacts/common/model/ValuesDeltaTests.java @@ -0,0 +1,85 @@ +/* + * 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.common.model; + +import static android.content.ContentProviderOperation.TYPE_INSERT; +import static android.content.ContentProviderOperation.TYPE_UPDATE; + +import android.content.ContentProviderOperation.Builder; +import android.content.ContentValues; +import android.provider.ContactsContract.CommonDataKinds.Phone; +import android.provider.ContactsContract.Data; +import android.test.suitebuilder.annotation.SmallTest; + +import junit.framework.TestCase; + +/** + * Tests for {@link ValuesDelta}. These tests + * focus on passing changes across {@link android.os.Parcel}, and verifying that they + * correctly build expected "diff" operations. + */ +@SmallTest +public class ValuesDeltaTests extends TestCase { + + public static final long TEST_PHONE_ID = 24; + + public static final String TEST_PHONE_NUMBER_1 = "218-555-1111"; + public static final String TEST_PHONE_NUMBER_2 = "218-555-2222"; + + public void testValuesDiffInsert() { + final ContentValues after = new ContentValues(); + after.put(Phone.NUMBER, TEST_PHONE_NUMBER_2); + + final ValuesDelta values = ValuesDelta.fromAfter(after); + + // Should produce an insert action + final Builder builder = values.buildDiff(Data.CONTENT_URI); + final int type = builder.build().getType(); + assertEquals("Didn't produce insert action", TYPE_INSERT, type); + } + + /** + * Test that {@link ValuesDelta#buildDiff(android.net.Uri)} is correctly + * built for insert, update, and delete cases. Note this only tests behavior + * for individual {@link Data} rows. + */ + public void testValuesDiffNone() { + final ContentValues before = new ContentValues(); + before.put(Data._ID, TEST_PHONE_ID); + before.put(Phone.NUMBER, TEST_PHONE_NUMBER_1); + + final ValuesDelta values = ValuesDelta.fromBefore(before); + + // None action shouldn't produce a builder + final Builder builder = values.buildDiff(Data.CONTENT_URI); + assertNull("None action produced a builder", builder); + } + + public void testValuesDiffUpdate() { + final ContentValues before = new ContentValues(); + before.put(Data._ID, TEST_PHONE_ID); + before.put(Phone.NUMBER, TEST_PHONE_NUMBER_1); + + final ValuesDelta values = ValuesDelta.fromBefore(before); + values.put(Phone.NUMBER, TEST_PHONE_NUMBER_2); + + // Should produce an update action + final Builder builder = values.buildDiff(Data.CONTENT_URI); + final int type = builder.build().getType(); + assertEquals("Didn't produce update action", TYPE_UPDATE, type); + } +} |