1b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer/*
2ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikas * Copyright 2018 The Android Open Source Project
3b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer *
4b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer * Licensed under the Apache License, Version 2.0 (the "License");
5b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer * you may not use this file except in compliance with the License.
6b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer * You may obtain a copy of the License at
7b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer *
8b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer *      http://www.apache.org/licenses/LICENSE-2.0
9b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer *
10b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer * Unless required by applicable law or agreed to in writing, software
11b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer * distributed under the License is distributed on an "AS IS" BASIS,
12b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer * See the License for the specific language governing permissions and
14b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer * limitations under the License.
15b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer */
16ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.collection;
17b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer
18b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thiererimport static org.junit.Assert.assertEquals;
19b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thiererimport static org.junit.Assert.assertFalse;
20b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thiererimport static org.junit.Assert.assertTrue;
21b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thiererimport static org.junit.Assert.fail;
22b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer
23b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thiererimport org.junit.Test;
24b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer
25b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thiererimport java.util.Iterator;
26b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thiererimport java.util.NoSuchElementException;
27b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer
28b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thiererpublic class ArraySetCompatTest {
29b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer    @Test
30b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer    public void testCanNotIteratePastEnd() {
31b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer        ArraySet<String> set = new ArraySet<>();
32b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer        set.add("value");
33b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer        Iterator<String> iterator = set.iterator();
34b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer
35b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer        assertTrue(iterator.hasNext());
36b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer        assertEquals("value", iterator.next());
37b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer        assertFalse(iterator.hasNext());
38b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer
39b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer        try {
40b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer            iterator.next();
41b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer            fail();
42b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer        } catch (NoSuchElementException expected) {
43b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer        }
44b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer    }
45b6e9d617ea32dc83840a030982a97a20f7889010Tobias Thierer}
46