1666ea1b28a76aeba74744148b15099254d918671Owen Linpackage com.android.camera.gallery;
2666ea1b28a76aeba74744148b15099254d918671Owen Lin
3666ea1b28a76aeba74744148b15099254d918671Owen Linimport com.android.camera.ImageManager;
4666ea1b28a76aeba74744148b15099254d918671Owen Lin
5666ea1b28a76aeba74744148b15099254d918671Owen Linimport android.test.AndroidTestCase;
6666ea1b28a76aeba74744148b15099254d918671Owen Lin
7666ea1b28a76aeba74744148b15099254d918671Owen Linpublic class ImageListUberUnitTests extends AndroidTestCase {
8666ea1b28a76aeba74744148b15099254d918671Owen Lin
97d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin    private MockImage getImageAt(ImageListUber uber, int index) {
107d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        return (MockImage) uber.getImageAt(index);
117d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin    }
127d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin
13666ea1b28a76aeba74744148b15099254d918671Owen Lin    public void testTheOrderOfGetImageAt() {
14666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImageList listA = new MockImageList();
15666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImageList listB = new MockImageList();
16666ea1b28a76aeba74744148b15099254d918671Owen Lin        listA.addImage(new MockImage(2, 2));
17666ea1b28a76aeba74744148b15099254d918671Owen Lin        listA.addImage(new MockImage(0, 0));
18666ea1b28a76aeba74744148b15099254d918671Owen Lin        listB.addImage(new MockImage(1, 1));
19666ea1b28a76aeba74744148b15099254d918671Owen Lin        ImageListUber uber = new ImageListUber(
20666ea1b28a76aeba74744148b15099254d918671Owen Lin                new IImageList[] {listA, listB}, ImageManager.SORT_DESCENDING);
21666ea1b28a76aeba74744148b15099254d918671Owen Lin
227d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(2, getImageAt(uber, 0).fullSizeImageId());
237d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(1, getImageAt(uber, 1).fullSizeImageId());
247d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(0, getImageAt(uber, 2).fullSizeImageId());
25666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber.close();
26666ea1b28a76aeba74744148b15099254d918671Owen Lin
27666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber = new ImageListUber(
28666ea1b28a76aeba74744148b15099254d918671Owen Lin                new IImageList[] {listA, listB}, ImageManager.SORT_DESCENDING);
297d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(2, getImageAt(uber, 0).fullSizeImageId());
307d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(1, getImageAt(uber, 1).fullSizeImageId());
317d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(0, getImageAt(uber, 2).fullSizeImageId());
32666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber.close();
33666ea1b28a76aeba74744148b15099254d918671Owen Lin    }
34666ea1b28a76aeba74744148b15099254d918671Owen Lin
35666ea1b28a76aeba74744148b15099254d918671Owen Lin    public void testTheOrderOfGetImageAtCaseTwo() {
36666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImageList listA = new MockImageList();
37666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImageList listB = new MockImageList();
38666ea1b28a76aeba74744148b15099254d918671Owen Lin        listA.addImage(new MockImage(2, 2));
39666ea1b28a76aeba74744148b15099254d918671Owen Lin        listA.addImage(new MockImage(1, 1));
40666ea1b28a76aeba74744148b15099254d918671Owen Lin        listB.addImage(new MockImage(0, 0));
41666ea1b28a76aeba74744148b15099254d918671Owen Lin        ImageListUber uber = new ImageListUber(
42666ea1b28a76aeba74744148b15099254d918671Owen Lin                new IImageList[] {listB, listA}, ImageManager.SORT_DESCENDING);
43666ea1b28a76aeba74744148b15099254d918671Owen Lin
447d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(2, getImageAt(uber, 0).fullSizeImageId());
457d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(1, getImageAt(uber, 1).fullSizeImageId());
467d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(0, getImageAt(uber, 2).fullSizeImageId());
47666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber.close();
48666ea1b28a76aeba74744148b15099254d918671Owen Lin
49666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber = new ImageListUber(
50666ea1b28a76aeba74744148b15099254d918671Owen Lin                new IImageList[] {listA, listB}, ImageManager.SORT_DESCENDING);
51666ea1b28a76aeba74744148b15099254d918671Owen Lin
527d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(2, getImageAt(uber, 0).fullSizeImageId());
537d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(1, getImageAt(uber, 1).fullSizeImageId());
547d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(0, getImageAt(uber, 2).fullSizeImageId());
55666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber.close();
56666ea1b28a76aeba74744148b15099254d918671Owen Lin    }
57666ea1b28a76aeba74744148b15099254d918671Owen Lin
58666ea1b28a76aeba74744148b15099254d918671Owen Lin    public void testRemoveImage() {
59666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImageList listA = new MockImageList();
60666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImageList listB = new MockImageList();
61666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImage target = new MockImage(1, 1);
62666ea1b28a76aeba74744148b15099254d918671Owen Lin        listA.addImage(new MockImage(2, 2));
63666ea1b28a76aeba74744148b15099254d918671Owen Lin        listA.addImage(new MockImage(0, 0));
64666ea1b28a76aeba74744148b15099254d918671Owen Lin        listB.addImage(target);
65666ea1b28a76aeba74744148b15099254d918671Owen Lin        ImageListUber uber = new ImageListUber(
66666ea1b28a76aeba74744148b15099254d918671Owen Lin                new IImageList[] {listB, listA}, ImageManager.SORT_DESCENDING);
67666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber.removeImage(target);
687d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(2, getImageAt(uber, 0).fullSizeImageId());
697d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(0, getImageAt(uber, 1).fullSizeImageId());
70666ea1b28a76aeba74744148b15099254d918671Owen Lin
717d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(0, uber.getImageIndex(getImageAt(uber, 0)));
727d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(1, uber.getImageIndex(getImageAt(uber, 1)));
73666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber.close();
74666ea1b28a76aeba74744148b15099254d918671Owen Lin    }
75666ea1b28a76aeba74744148b15099254d918671Owen Lin
76666ea1b28a76aeba74744148b15099254d918671Owen Lin    public void testRemoveImageAt() {
77666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImageList listA = new MockImageList();
78666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImageList listB = new MockImageList();
79666ea1b28a76aeba74744148b15099254d918671Owen Lin        MockImage target = new MockImage(1, 1);
80666ea1b28a76aeba74744148b15099254d918671Owen Lin        listA.addImage(new MockImage(2, 2));
81666ea1b28a76aeba74744148b15099254d918671Owen Lin        listA.addImage(new MockImage(0, 0));
82666ea1b28a76aeba74744148b15099254d918671Owen Lin        listB.addImage(target);
83666ea1b28a76aeba74744148b15099254d918671Owen Lin        ImageListUber uber = new ImageListUber(
84666ea1b28a76aeba74744148b15099254d918671Owen Lin                new IImageList[] {listB, listA}, ImageManager.SORT_DESCENDING);
85666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber.removeImageAt(1);
867d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(2, getImageAt(uber, 0).fullSizeImageId());
877d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(0, getImageAt(uber, 1).fullSizeImageId());
88666ea1b28a76aeba74744148b15099254d918671Owen Lin
897d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(0, uber.getImageIndex(getImageAt(uber, 0)));
907d2d5ec1e9d6c19278e41c103eacd8090be24406Owen Lin        assertEquals(1, uber.getImageIndex(getImageAt(uber, 1)));
91666ea1b28a76aeba74744148b15099254d918671Owen Lin        uber.close();
92666ea1b28a76aeba74744148b15099254d918671Owen Lin    }
93666ea1b28a76aeba74744148b15099254d918671Owen Lin}
94