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