15bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam/* 25bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * Copyright (C) 2015 The Android Open Source Project 35bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * 45bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * Licensed under the Apache License, Version 2.0 (the "License"); 55bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * you may not use this file except in compliance with the License. 65bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * You may obtain a copy of the License at 75bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * 85bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * http://www.apache.org/licenses/LICENSE-2.0 95bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * 105bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * Unless required by applicable law or agreed to in writing, software 115bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * distributed under the License is distributed on an "AS IS" BASIS, 125bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * See the License for the specific language governing permissions and 145bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam * limitations under the License. 155bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam */ 165bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam 175bf291fde3dfd64f264d525534730514a279c8fcMaurice Lampackage com.android.setupwizardlib.test; 185bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam 195bf291fde3dfd64f264d525534730514a279c8fcMaurice Lamimport android.test.AndroidTestCase; 205bf291fde3dfd64f264d525534730514a279c8fcMaurice Lamimport android.test.suitebuilder.annotation.SmallTest; 215bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam 225bf291fde3dfd64f264d525534730514a279c8fcMaurice Lamimport com.android.setupwizardlib.items.Item; 235bf291fde3dfd64f264d525534730514a279c8fcMaurice Lamimport com.android.setupwizardlib.items.ItemGroup; 245bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam 255bf291fde3dfd64f264d525534730514a279c8fcMaurice Lampublic class ItemGroupTest extends AndroidTestCase { 265bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam 27960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public static final Item CHILD_1 = new Item(); 28960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public static final Item CHILD_2 = new Item(); 29960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public static final Item CHILD_3 = new Item(); 30960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public static final Item CHILD_4 = new Item(); 31960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 32960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam @SmallTest 33960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public void testGroup() { 34960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam ItemGroup itemGroup = new ItemGroup(); 35960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_1); 36960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_2); 37960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 38960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Item at position 0 should be child1", CHILD_1, itemGroup.getItemAt(0)); 39960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Item at position 1 should be child2", CHILD_2, itemGroup.getItemAt(1)); 40960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertEquals("Should have 2 children", 2, itemGroup.getCount()); 41960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam } 42960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 43960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam @SmallTest 44960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public void testRemoveChild() { 45960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam ItemGroup itemGroup = new ItemGroup(); 46960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_1); 47960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_2); 48960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 49960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.removeChild(CHILD_1); 50960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 51960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Item at position 0 should be child2", CHILD_2, itemGroup.getItemAt(0)); 52960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertEquals("Should have 1 child", 1, itemGroup.getCount()); 53960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam } 54960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 55960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam @SmallTest 56960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public void testClear() { 57960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam ItemGroup itemGroup = new ItemGroup(); 58960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_1); 59960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_2); 60960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 61960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.clear(); 62960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 63960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertEquals("Should have 0 child", 0, itemGroup.getCount()); 64960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam } 65960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 66960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam @SmallTest 67960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public void testNestedGroup() { 68960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam ItemGroup parentGroup = new ItemGroup(); 69960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam ItemGroup childGroup = new ItemGroup(); 70960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 71960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam parentGroup.addChild(CHILD_1); 72960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam childGroup.addChild(CHILD_2); 73960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam childGroup.addChild(CHILD_3); 74960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam parentGroup.addChild(childGroup); 75960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam parentGroup.addChild(CHILD_4); 76960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 77960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam CHILD_1.setTitle("CHILD1"); 78960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam CHILD_2.setTitle("CHILD2"); 79960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam CHILD_3.setTitle("CHILD3"); 80960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam CHILD_4.setTitle("CHILD4"); 81960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 82960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Position 0 should be child 1", CHILD_1, parentGroup.getItemAt(0)); 83960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Position 1 should be child 2", CHILD_2, parentGroup.getItemAt(1)); 84960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Position 2 should be child 3", CHILD_3, parentGroup.getItemAt(2)); 85960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Position 3 should be child 4", CHILD_4, parentGroup.getItemAt(3)); 86960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam } 87960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 885bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam @SmallTest 89960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public void testEmptyChildGroup() { 90960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam ItemGroup parentGroup = new ItemGroup(); 91960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam ItemGroup childGroup = new ItemGroup(); 92960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 93960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam parentGroup.addChild(CHILD_1); 94960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam parentGroup.addChild(childGroup); 95960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam parentGroup.addChild(CHILD_2); 96960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 97960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Position 0 should be child 1", CHILD_1, parentGroup.getItemAt(0)); 98960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Position 1 should be child 2", CHILD_2, parentGroup.getItemAt(1)); 99960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam } 100960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 101960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam @SmallTest 102960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public void testFindItemById() { 103960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam ItemGroup itemGroup = new ItemGroup(); 104960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam CHILD_1.setId(12345); 105960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam CHILD_2.setId(23456); 106960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 107960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_1); 108960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_2); 109960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 110960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertSame("Find item 23456 should return child 2", CHILD_2, itemGroup.findItemById(23456)); 111960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam } 112960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 113960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam @SmallTest 114960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam public void testFindItemByIdNotFound() { 115960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam ItemGroup itemGroup = new ItemGroup(); 116960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam CHILD_1.setId(12345); 117960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam CHILD_2.setId(23456); 118960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 119960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_1); 120960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam itemGroup.addChild(CHILD_2); 121960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam 122960c0ea0b1d36904beef0f01715dd43a211e88caMaurice Lam assertNull("ID not found should return null", itemGroup.findItemById(56789)); 1235bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam } 1245bf291fde3dfd64f264d525534730514a279c8fcMaurice Lam} 125