17cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller/* 27cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * Copyright (C) 2016 The Android Open Source Project 37cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * 47cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * Licensed under the Apache License, Version 2.0 (the "License"); 57cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * you may not use this file except in compliance with the License. 67cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * You may obtain a copy of the License at 77cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * 87cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * http://www.apache.org/licenses/LICENSE-2.0 97cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * 107cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * Unless required by applicable law or agreed to in writing, software 117cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * distributed under the License is distributed on an "AS IS" BASIS, 127cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * See the License for the specific language governing permissions and 147cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller * limitations under the License. 157cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller */ 167cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller 177cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fullerpackage libcore.java.util.function; 187cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller 197cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fullerimport junit.framework.TestCase; 207cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller 217cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fullerimport java.util.function.Consumer; 227cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller 237cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fullerpublic class ConsumerTest extends TestCase { 247cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller 257cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller public void testAndThen() throws Exception { 267cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller Consumer<StringBuilder> sweet = s -> s.append("sweet"); 277cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller Consumer<StringBuilder> dude = s -> s.append("dude"); 287cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller 297cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller StringBuilder sb = new StringBuilder(); 307cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller sweet.andThen(dude).accept(sb); 317cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller assertEquals("sweetdude", sb.toString()); 327cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller 337cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller sb.setLength(0); 347cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller dude.andThen(sweet).accept(sb); 357cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller assertEquals("dudesweet", sb.toString()); 367cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller } 377cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller 387cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller public void testAndThen_null() throws Exception { 397cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller Consumer<StringBuilder> one = s -> s.append("one"); 407cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller try { 417cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller one.andThen(null); 427cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller fail(); 437cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller } catch (NullPointerException expected) {} 447cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller } 457cf6b7d47829942a72faf8c6525e403cd9f37e48Neil Fuller} 46