package cc.blynk.integration.websocket; import cc.blynk.integration.IntegrationBase; import cc.blynk.integration.model.tcp.ClientPair; import cc.blynk.integration.model.websocket.WebSocketClient; import cc.blynk.server.Holder; import cc.blynk.server.api.http.HttpAPIServer; import cc.blynk.server.application.AppServer; import cc.blynk.server.core.BaseServer; import cc.blynk.server.core.protocol.model.messages.ResponseMessage; import cc.blynk.server.hardware.HardwareServer; import cc.blynk.utils.properties.GCMProperties; import cc.blynk.utils.properties.MailProperties; import cc.blynk.utils.properties.SmsProperties; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; import java.util.Collections; import static cc.blynk.server.core.protocol.enums.Response.OK; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.verify; /** * The Blynk Project. * Created by Dmitriy Dumanskiy. * Created on 13.01.16. */ @RunWith(MockitoJUnitRunner.class) public class AppWebSocketTest extends IntegrationBase { private static BaseServer webSocketServer; private static BaseServer hardwareServer; private static BaseServer appServer; private static ClientPair clientPair; private static Holder localHolder; //web socket ports public static int tcpWebSocketPort; @AfterClass public static void shutdown() throws Exception { webSocketServer.close(); appServer.close(); hardwareServer.close(); clientPair.stop(); localHolder.close(); } @BeforeClass public static void init() throws Exception { properties.setProperty("data.folder", getRelativeDataFolder("/profiles")); localHolder = new Holder(properties, new MailProperties(Collections.emptyMap()), new SmsProperties(Collections.emptyMap()), new GCMProperties(Collections.emptyMap()), false ); tcpWebSocketPort = httpPort; webSocketServer = new HttpAPIServer(localHolder).start(); appServer = new AppServer(localHolder).start(); hardwareServer = new HardwareServer(localHolder).start(); clientPair = initAppAndHardPair(tcpAppPort, tcpHardPort, properties); } @Test public void testAppWebSocketlogin() throws Exception{ WebSocketClient webSocketClient = new WebSocketClient("localhost", tcpWebSocketPort, "/websockets", false); webSocketClient.start(); webSocketClient.send("login " + DEFAULT_TEST_USER + " 1"); verify(webSocketClient.responseMock, timeout(500)).channelRead(any(), eq(new ResponseMessage(1, OK))); webSocketClient.send("ping"); verify(webSocketClient.responseMock, timeout(500)).channelRead(any(), eq(new ResponseMessage(2, OK))); } }