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