1a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera/* 2a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * Copyright (C) 2016 The Android Open Source Project 3a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * 4a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * Licensed under the Apache License, Version 2.0 (the "License"); 5a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * you may not use this file except in compliance with the License. 6a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * You may obtain a copy of the License at 7a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * 8a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * http://www.apache.org/licenses/LICENSE-2.0 9a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * 10a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * Unless required by applicable law or agreed to in writing, software 11a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * distributed under the License is distributed on an "AS IS" BASIS, 12a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * See the License for the specific language governing permissions and 14a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera * limitations under the License 15a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera */ 16a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 17a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmerapackage libcore.java.nio.channels.spi; 18a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 19a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmeraimport junit.framework.TestCase; 20a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 21a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmeraimport java.nio.channels.AsynchronousChannelGroup; 22a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmeraimport java.nio.channels.spi.AsynchronousChannelProvider; 23a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmeraimport java.util.concurrent.Executors; 24a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmeraimport java.util.concurrent.ThreadFactory; 25a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 26a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmerapublic class AsynchronousChannelProviderTest extends TestCase { 27a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 28a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera public void test_open_methods() throws Exception { 29a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera AsynchronousChannelProvider provider = AsynchronousChannelProvider.provider(); 30a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 31a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera assertNotNull(provider); 32a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera assertSame(AsynchronousChannelProvider.provider(), provider); 33a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 34a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera assertNotNull(provider.openAsynchronousChannelGroup(1, new TestThreadFactory())); 35a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 36a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera assertNotNull(provider.openAsynchronousChannelGroup(Executors.newSingleThreadExecutor(), 37a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 1)); 38a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 39a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera assertNotNull(provider.openAsynchronousServerSocketChannel( 40a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera AsynchronousChannelGroup.withFixedThreadPool(1, new TestThreadFactory()))); 41a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 422c748e5288dc866527188e2259daa8fd493f71e5Przemyslaw Szczepaniak assertNotNull(provider.openAsynchronousSocketChannel( 432c748e5288dc866527188e2259daa8fd493f71e5Przemyslaw Szczepaniak AsynchronousChannelGroup.withFixedThreadPool(1, new TestThreadFactory()))); 442c748e5288dc866527188e2259daa8fd493f71e5Przemyslaw Szczepaniak 45a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera assertNotNull(provider.openAsynchronousChannelGroup(1, new TestThreadFactory())); 46a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera } 47a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera 48a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera private static class TestThreadFactory implements ThreadFactory { 49a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera @Override 50a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera public Thread newThread(Runnable r) { 51a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera Thread t = new Thread(r); 52a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera t.setDaemon(false); 53a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera return t; 54a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera } 55a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera } 56a9f5ef925b6010d7426866ced1da34a7a1726245Shubham Ajmera} 57