15aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank/* 25aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * Copyright (C) 2010 The Android Open Source Project 35aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * 45aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * Licensed under the Apache License, Version 2.0 (the "License"); 55aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * you may not use this file except in compliance with the License. 65aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * You may obtain a copy of the License at 75aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * 85aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * http://www.apache.org/licenses/LICENSE-2.0 95aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * 105aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * Unless required by applicable law or agreed to in writing, software 115aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * distributed under the License is distributed on an "AS IS" BASIS, 125aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * See the License for the specific language governing permissions and 145aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * limitations under the License. 155aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank */ 165aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank 175aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blankpackage com.android.exchange.provider; 185aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank 19c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blankimport com.android.emailcommon.mail.PackedString; 207372782488977df778a33d990401ce9e397f646bMarc Blankimport com.android.emailcommon.provider.Account; 215aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blankimport com.android.exchange.provider.GalResult.GalData; 22c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blankimport com.android.exchange.utility.ExchangeTestCase; 235aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank 247307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blankimport android.content.Context; 255aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blankimport android.database.Cursor; 265aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blankimport android.database.MatrixCursor; 2784519932a8245ce450af8be9ac3fbba5e89ec042Marc Blankimport android.net.Uri; 285aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blankimport android.provider.ContactsContract.CommonDataKinds; 295aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blankimport android.provider.ContactsContract.Contacts; 30604a1cf6f2401d78f57edcfb702d560d9c80dd14Marc Blankimport android.test.suitebuilder.annotation.SmallTest; 315aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank 325aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank/** 335aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank * You can run this entire test case with: 34c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * runtest -c com.android.exchange.provider.ExchangeDirectoryProviderTests exchange 355aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank */ 36604a1cf6f2401d78f57edcfb702d560d9c80dd14Marc Blank@SmallTest 37c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blankpublic class ExchangeDirectoryProviderTests extends ExchangeTestCase { 387307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank 397307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank public ExchangeDirectoryProviderTests() { 407307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank } 415aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank 425aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank // Create a test projection; we should only get back values for display name and email address 435aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank private static final String[] GAL_RESULT_PROJECTION = 44d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov new String[] {Contacts.DISPLAY_NAME, CommonDataKinds.Email.ADDRESS, Contacts.CONTENT_TYPE, 45d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov Contacts.LOOKUP_KEY}; 46d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private static final int GAL_RESULT_COLUMN_DISPLAY_NAME = 0; 47d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private static final int GAL_RESULT_COLUMN_EMAIL_ADDRESS = 1; 48d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private static final int GAL_RESULT_COLUMN_CONTENT_TYPE = 2; 49d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private static final int GAL_RESULT_COLUMN_LOOKUP_KEY = 3; 505aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank 51d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov public void testBuildSimpleGalResultCursor() { 525aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank GalResult result = new GalResult(); 535aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank result.addGalData(1, "Alice Aardvark", "alice@aardvark.com"); 545aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank result.addGalData(2, "Bob Badger", "bob@badger.com"); 555aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank result.addGalData(3, "Clark Cougar", "clark@cougar.com"); 565aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank result.addGalData(4, "Dan Dolphin", "dan@dolphin.com"); 575aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank // Make sure our returned cursor has the expected contents 585aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank ExchangeDirectoryProvider provider = new ExchangeDirectoryProvider(); 59e7e74f5d67647510a0394dcc8346a9cd7781d970Jay Shrauner Cursor c = provider.buildGalResultCursor(GAL_RESULT_PROJECTION, result, null, 20, false, false); 605aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank assertNotNull(c); 615aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank assertEquals(MatrixCursor.class, c.getClass()); 625aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank assertEquals(4, c.getCount()); 635aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank for (int i = 0; i < 4; i++) { 645aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank GalData data = result.galData.get(i); 655aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank assertTrue(c.moveToNext()); 66d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(data.displayName, c.getString(GAL_RESULT_COLUMN_DISPLAY_NAME)); 67d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(data.emailAddress, c.getString(GAL_RESULT_COLUMN_EMAIL_ADDRESS)); 68d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertNull(c.getString(GAL_RESULT_COLUMN_CONTENT_TYPE)); 69d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov } 70d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov } 71d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov 72d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private static final String[][] DISPLAY_NAME_TEST_FIELDS = { 73d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov {"Alice", "Aardvark", "Another Name"}, 74d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov {"Alice", "Aardvark", null}, 75d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov {"Alice", null, null}, 76d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov {null, "Aardvark", null}, 77d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov {null, null, null} 78d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov }; 79d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private static final int TEST_FIELD_FIRST_NAME = 0; 80d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private static final int TEST_FIELD_LAST_NAME = 1; 81d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private static final int TEST_FIELD_DISPLAY_NAME = 2; 82d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private static final String[] EXPECTED_DISPLAY_NAMES = new String[] {"Another Name", 83d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov "Alice Aardvark", "Alice", "Aardvark", null}; 84d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov 85d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov private GalResult getTestDisplayNameResult() { 86d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov GalResult result = new GalResult(); 87d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov for (int i = 0; i < DISPLAY_NAME_TEST_FIELDS.length; i++) { 88d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov GalData galData = new GalData(); 89d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov String[] names = DISPLAY_NAME_TEST_FIELDS[i]; 90d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov galData.put(GalData.FIRST_NAME, names[TEST_FIELD_FIRST_NAME]); 91d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov galData.put(GalData.LAST_NAME, names[TEST_FIELD_LAST_NAME]); 92d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov galData.put(GalData.DISPLAY_NAME, names[TEST_FIELD_DISPLAY_NAME]); 93d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov result.addGalData(galData); 94d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov } 95d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov return result; 96d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov } 97d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov 9870a8aecc56c2a0cfa0629a7b7d0716b1d2b527a5Jerry Xie public void brokentestDisplayNameLogic() { 99d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov GalResult result = getTestDisplayNameResult(); 100d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov // Make sure our returned cursor has the expected contents 101d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov ExchangeDirectoryProvider provider = new ExchangeDirectoryProvider(); 102e7e74f5d67647510a0394dcc8346a9cd7781d970Jay Shrauner Cursor c = provider.buildGalResultCursor(GAL_RESULT_PROJECTION, result, null, 20, false, false); 103d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertNotNull(c); 104d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(MatrixCursor.class, c.getClass()); 105d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(DISPLAY_NAME_TEST_FIELDS.length, c.getCount()); 106d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov for (int i = 0; i < EXPECTED_DISPLAY_NAMES.length; i++) { 107d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertTrue(c.moveToNext()); 108d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(EXPECTED_DISPLAY_NAMES[i], c.getString(GAL_RESULT_COLUMN_DISPLAY_NAME)); 109d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov } 110d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov } 111d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov 11270a8aecc56c2a0cfa0629a7b7d0716b1d2b527a5Jerry Xie public void brokentestLookupKeyLogic() { 113d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov GalResult result = getTestDisplayNameResult(); 114d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov // Make sure our returned cursor has the expected contents 115d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov ExchangeDirectoryProvider provider = new ExchangeDirectoryProvider(); 116e7e74f5d67647510a0394dcc8346a9cd7781d970Jay Shrauner Cursor c = provider.buildGalResultCursor(GAL_RESULT_PROJECTION, result, null, 20, false, false); 117d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertNotNull(c); 118d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(MatrixCursor.class, c.getClass()); 119d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(DISPLAY_NAME_TEST_FIELDS.length, c.getCount()); 120d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov for (int i = 0; i < EXPECTED_DISPLAY_NAMES.length; i++) { 121d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertTrue(c.moveToNext()); 12284519932a8245ce450af8be9ac3fbba5e89ec042Marc Blank PackedString ps = 12384519932a8245ce450af8be9ac3fbba5e89ec042Marc Blank new PackedString(Uri.decode(c.getString(GAL_RESULT_COLUMN_LOOKUP_KEY))); 124d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov String[] testFields = DISPLAY_NAME_TEST_FIELDS[i]; 125d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(testFields[TEST_FIELD_FIRST_NAME], ps.get(GalData.FIRST_NAME)); 126d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(testFields[TEST_FIELD_LAST_NAME], ps.get(GalData.LAST_NAME)); 127d41eaba645dcb4573c5dc33077fc87799ef06195Dmitri Plotnikov assertEquals(EXPECTED_DISPLAY_NAMES[i], ps.get(GalData.DISPLAY_NAME)); 1285aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank } 1295aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank } 1307307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank 13170a8aecc56c2a0cfa0629a7b7d0716b1d2b527a5Jerry Xie public void brokentestGetAccountIdByName() { 132c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank Context context = getContext(); //getMockContext(); 1337307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank ExchangeDirectoryProvider provider = new ExchangeDirectoryProvider(); 1347307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank // Nothing up my sleeve 1357307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank assertNull(provider.mAccountIdMap.get("foo@android.com")); 1367307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank assertNull(provider.mAccountIdMap.get("bar@android.com")); 1377307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank // Create accounts; the email addresses will be the first argument + "@android.com" 138c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank Account acctFoo = setupTestAccount("foo", true); 139c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank Account acctBar = setupTestAccount("bar", true); 1407307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank // Make sure we can retrieve them, and that the map is populated 1417307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank assertEquals(acctFoo.mId, provider.getAccountIdByName(context, "foo@android.com")); 1427307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank assertEquals(acctBar.mId, provider.getAccountIdByName(context, "bar@android.com")); 1437307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank assertEquals((Long)acctFoo.mId, provider.mAccountIdMap.get("foo@android.com")); 1447307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank assertEquals((Long)acctBar.mId, provider.mAccountIdMap.get("bar@android.com")); 1457307f7e5c2c4f85f6f3e0ebaf5775f65cba4b20cMarc Blank } 146674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 147674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee /** 148674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee * The purpose of these next tests are to test the ExchangeDirectoryProvider. NameComparator comparison function 149674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee * and not the Collator class. This means that we can test only with Western strings. 150674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee * Note that there is a loose assumption that IDs always exist. If this is a valid 151674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee * assumption, we should enforce it in the ExchangeDirectoryProvider.GalSortKey class or in the compare function. 152674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee */ 153674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee public void testNameComparatorEqualsStringLhsIdGreater() { 154674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey("A", 2); 155674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey("A", 1); 156674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 157674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 158674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 159674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee assertEquals(ret, 1); 160674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 161674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 162674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee public void testNameComparatorEqualsStringRhsIdGreater() { 163674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey("A", 1); 164674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey("A", 2); 165674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 166674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 167674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 168674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee assertEquals(ret, -1); 169674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 170674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 171674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee public void testNameComparatorEqualsEverythingEqual() { 172674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey("A", 1); 173674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey("A", 1); 174674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 175674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 176674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 177674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee assertEquals(ret, 0); 178674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 179674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 180674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee public void testNameComparatorLhsGreaterString() { 181674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey("B", 1); 182674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey("A", 2); 183674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 184674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 185674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 186674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee assertEquals(ret, 1); 187674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 188674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 189674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee public void testNameComparatorRhsGreaterString() { 190674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey("A", 1); 191674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey("B", 2); 192674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 193674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 194674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 195674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee assertEquals(ret, -1); 196674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 197674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 198e7e74f5d67647510a0394dcc8346a9cd7781d970Jay Shrauner public void testNameComparatorLhsNoStringLhsGreaterId() { 199674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey(null, 2); 200674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey("A", 1); 201674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 202674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 203674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 204e7e74f5d67647510a0394dcc8346a9cd7781d970Jay Shrauner assertEquals(ret, -1); 205674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 206674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 207e7e74f5d67647510a0394dcc8346a9cd7781d970Jay Shrauner public void testNameComparatorLhsNoStringRhsGreaterId() { 208674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey(null, 1); 209674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey("A", 2); 210674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 211674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 212674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 213674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee assertEquals(ret, -1); 214674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 215674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 216e7e74f5d67647510a0394dcc8346a9cd7781d970Jay Shrauner public void testNameComparatorRhsNoStringLhsGreaterId() { 217674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey("A", 2); 218674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey(null, 1); 219674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 220674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 221674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 222674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee assertEquals(ret, 1); 223674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 224674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 225e7e74f5d67647510a0394dcc8346a9cd7781d970Jay Shrauner public void testNameComparatorRhsNoStringRhsGreaterId() { 226674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey("A", 1); 227674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey(null, 2); 228674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 229674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 230674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 231e7e74f5d67647510a0394dcc8346a9cd7781d970Jay Shrauner assertEquals(ret, 1); 232674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 233674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 234674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee public void testNameComparatorNoStringsLhsWins() { 235674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey(null, 2); 236674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey(null, 1); 237674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 238674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 239674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 240674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee assertEquals(ret, 1); 241674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 242674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 243674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee public void testNameComparatorNoStringsRhsWins() { 244674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey lhs = new ExchangeDirectoryProvider.GalSortKey(null, 1); 245674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider.GalSortKey rhs = new ExchangeDirectoryProvider.GalSortKey(null, 2); 246674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 247674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final ExchangeDirectoryProvider. NameComparator comparator = new ExchangeDirectoryProvider. NameComparator(); 248674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee final int ret = comparator.compare(lhs, rhs); 249674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee assertEquals(ret, -1); 250674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee } 251674df0303129dcfa54a2cee2bf7e11195986220bAnthony Lee 2525aec61dc15c62cff0cf55a3d6cb483f9e338230aMarc Blank} 253