Added basic connect-close TCK from Prashant Khanal
This commit is contained in:
@@ -16,3 +16,9 @@ broker/runner
|
||||
/bundle/runner/
|
||||
*~
|
||||
*log*
|
||||
.DS_Store
|
||||
.settings/
|
||||
.project
|
||||
.classpath
|
||||
*.swp
|
||||
|
||||
|
||||
@@ -119,6 +119,13 @@
|
||||
<version>4.8.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.kaazing</groupId>
|
||||
<artifactId>robot.junit</artifactId>
|
||||
<version>0.0.0.12</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- needs extra dependencies: objenesis & hamcrest -->
|
||||
<dependency>
|
||||
@@ -170,6 +177,39 @@
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.kaazing</groupId>
|
||||
<artifactId>robot-maven-plugin</artifactId>
|
||||
<version>0.0.0.12</version>
|
||||
<configuration>
|
||||
<skipTests>${skipITs}</skipTests>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>start</goal>
|
||||
<goal>stop</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.17</version>
|
||||
<configuration>
|
||||
<skipTests>${skipITs}</skipTests>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2014 The original author or authors
|
||||
* ------------------------------------------------------
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* and Apache License v2.0 which accompanies this distribution.
|
||||
*
|
||||
* The Eclipse Public License is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* The Apache License v2.0 is available at
|
||||
* http://www.opensource.org/licenses/apache2.0.php
|
||||
*
|
||||
* You may elect to redistribute this code under either of these licenses.
|
||||
*/
|
||||
package org.dna.mqtt.moquette.server;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.kaazing.robot.junit.annotation.Robotic;
|
||||
import org.kaazing.robot.junit.rules.RobotRule;
|
||||
|
||||
/**
|
||||
* This class runs the robot test scripts to run the TCK for Moquette broker, before remember to run
|
||||
* mvn -Dmaven.robot.daemon=false robot:start from broker submodule folder
|
||||
*
|
||||
*
|
||||
* @author pkhanal
|
||||
*
|
||||
*/
|
||||
public class ConnectionIT {
|
||||
|
||||
@Rule
|
||||
public RobotRule robot = new RobotRule();
|
||||
|
||||
Server m_server;
|
||||
|
||||
protected void startServer() throws IOException {
|
||||
m_server = new Server();
|
||||
m_server.startServer();
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
startServer();
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {
|
||||
m_server.stopServer();
|
||||
}
|
||||
|
||||
// The test starts the server during setUp
|
||||
// The network communication is driven by the script.
|
||||
@Robotic(script = "connect.then.close")
|
||||
@Test(timeout = 1000)
|
||||
public void shouldConnectThenClose() throws Exception {
|
||||
robot.join();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
# Copyright (c) 2012-2014 The original author or authors
|
||||
# ------------------------------------------------------
|
||||
# All rights reserved. This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License v1.0
|
||||
# and Apache License v2.0 which accompanies this distribution.
|
||||
#
|
||||
# The Eclipse Public License is available at
|
||||
# http://www.eclipse.org/legal/epl-v10.html
|
||||
#
|
||||
# The Apache License v2.0 is available at
|
||||
# http://www.opensource.org/licenses/apache2.0.php
|
||||
#
|
||||
# You may elect to redistribute this code under either of these licenses.
|
||||
|
||||
# MQTT 3.1.1
|
||||
|
||||
# Script that sends the CONNECT control packet to broker and expects
|
||||
# CONNACK control packet from the broker followed by sending the DISCONNECT
|
||||
# control packet to the broker and expects server to close the network connection
|
||||
|
||||
connect tcp://127.0.0.1:1883
|
||||
connected
|
||||
|
||||
# CONNECT
|
||||
write [0x10] # MQTT Control Packet type(1)
|
||||
write [0x12] # Remaining Length
|
||||
write [0x00 0x04] # Protocol Name Length
|
||||
write "MQTT" # Protocol Name
|
||||
write [0x04] # The value of the Protocol Level field for the version 3.1.1 of the protocol is 4 (0x04)
|
||||
|
||||
# Connect Flags
|
||||
# User Name Flag(0)
|
||||
# Password Flag(0)
|
||||
write [0x02] # Will Retain(0)
|
||||
# Will QoS(00)
|
||||
# Will Flag(0)
|
||||
# Clean Session(1)
|
||||
# Reserved(0)
|
||||
|
||||
write [0x00 0x00] # Keep Alive
|
||||
|
||||
# Payload
|
||||
write [0x00 0x07] # Client Identifier Length
|
||||
write "client1" # Client Identifier
|
||||
|
||||
# CONNACK
|
||||
read [0x20] # MQTT Control Packet type(2)
|
||||
read [0x02] # Remaining Length
|
||||
|
||||
# Connect Acknowledge Flags
|
||||
read [0x00] # Session Present Flag(0)
|
||||
|
||||
# Connect Return code
|
||||
read [0x00] # Connection Accepted
|
||||
|
||||
|
||||
# DISCONNECT
|
||||
write [0xE0] # MQTT Control Packet type(14)
|
||||
write [0x00] # Remaining Length
|
||||
|
||||
# Server MUST close the Network Connection
|
||||
closed
|
||||
Reference in New Issue
Block a user