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