2822a3a35e0f4ce1ec6efe3a566fee74d872c06c
[platform/core/ml/beyond.git] /
1 /*
2  * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.samsung.android.beyond.InferenceUnitTest;
18
19 import android.content.Context;
20
21 import com.samsung.android.beyond.ConfigType;
22 import com.samsung.android.beyond.authenticator.Authenticator;
23 import com.samsung.android.beyond.inference.InferenceModuleFactory;
24 import com.samsung.android.beyond.inference.Peer;
25 import com.samsung.android.beyond.module.authenticator.SSL.SSLModule;
26 import com.samsung.android.beyond.module.peer.NN.NNModule;
27
28 import org.junit.BeforeClass;
29 import org.junit.Test;
30
31 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
32 import static com.samsung.android.beyond.TestUtils.*;
33 import static org.junit.Assert.assertEquals;
34 import static org.junit.Assert.assertNotNull;
35 import static org.junit.Assert.assertTrue;
36
37 public class InferencePeerUnitTest {
38
39     private static Context context;
40
41     private Peer inferencePeer = null;
42
43     @BeforeClass
44     public static void initialize() {
45         context = getInstrumentation().getContext();
46     }
47
48     @Test
49     public void testCreatePeerServer() {
50         inferencePeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
51         assertNotNull(inferencePeer);
52     }
53
54     @Test
55     public void testPeerServerSetInfo() {
56         inferencePeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
57
58         assertEquals(true, inferencePeer.setInfo());
59     }
60
61     @Test
62     public void testPeerServerGetInfo() {
63         inferencePeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
64         inferencePeer.setInfo();
65
66         Peer.Info info = inferencePeer.getInfo();
67         assertNotNull(info);
68         assertEquals(info.port, 3000);
69         assertEquals(info.host, "0.0.0.0");
70     }
71
72     @Test
73     public void testPeerServerActivateControlChannel() {
74         inferencePeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
75         inferencePeer.setInfo();
76
77         assertEquals(true, inferencePeer.activateControlChannel());
78     }
79
80     @Test
81     public void testPeerServerConfigureWithAuthenticator() {
82         String[] args = {
83                 SSLModule.NAME
84         };
85         Authenticator auth = new Authenticator(args);
86         assertNotNull(auth);
87
88         assertTrue(auth.activate());
89         assertTrue(auth.prepare());
90
91         inferencePeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
92         assertNotNull(inferencePeer);
93
94         boolean status = inferencePeer.configure(ConfigType.AUTHENTICATOR, auth);
95         assertTrue(status);
96
97         // TODO:
98         // GC the inferencePeer and destroy its native instance
99         inferencePeer = null;
100         auth.close();
101         auth = null;
102     }
103
104     @Test
105     public void testPeerServerDeactivateControlChannel() {
106         inferencePeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
107         inferencePeer.setInfo();
108         inferencePeer.activateControlChannel();
109
110         assertEquals(true, inferencePeer.deactivateControlChannel());
111     }
112
113     @Test
114     public void testCreatePeerClient() {
115         inferencePeer = InferenceModuleFactory.createPeerClient(context, NNModule.NAME);
116
117         assertNotNull(inferencePeer);
118     }
119
120     @Test
121     public void testPeerClientSetInfo() {
122         inferencePeer = InferenceModuleFactory.createPeerClient(context, NNModule.NAME);
123         Peer.Info info = new Peer.Info();
124         info.host = TEST_SERVER_IP;
125         info.port = TEST_SERVER_PORT;
126         assertEquals(true, inferencePeer.setInfo(info));
127     }
128
129     @Test
130     public void testPeerClientActivateControlChannel() {
131         inferencePeer = InferenceModuleFactory.createPeerClient(context, NNModule.NAME);
132         Peer.Info info = new Peer.Info();
133         info.host = TEST_SERVER_IP;
134         info.port = TEST_SERVER_PORT;
135         inferencePeer.setInfo(info);
136
137         assertEquals(true, inferencePeer.activateControlChannel());
138     }
139
140     @Test
141     public void testPeerClientDeactivateControlChannel() {
142         Peer serverPeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
143         serverPeer.setInfo();
144         serverPeer.activateControlChannel();
145
146         inferencePeer = InferenceModuleFactory.createPeerClient(context, NNModule.NAME);
147         inferencePeer.setInfo();
148         inferencePeer.activateControlChannel();
149
150         assertEquals(true, inferencePeer.deactivateControlChannel());
151     }
152 }