/*
* Copyright 2014-2016 CyberVision, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kaaproject.kaa.server.transports.tcp.transport.commands;
import static org.mockito.Mockito.mock;
import org.junit.Assert;
import org.junit.Test;
import org.kaaproject.kaa.common.channels.protocols.kaatcp.messages.Connect;
import org.kaaproject.kaa.common.channels.protocols.kaatcp.messages.MqttFrame;
import org.kaaproject.kaa.common.channels.protocols.kaatcp.messages.SyncRequest;
import org.kaaproject.kaa.common.endpoint.security.MessageEncoderDecoder;
import org.kaaproject.kaa.common.hash.EndpointObjectHash;
import org.kaaproject.kaa.server.transport.channel.ChannelContext;
import org.kaaproject.kaa.server.transport.channel.ChannelType;
import org.kaaproject.kaa.server.transport.session.SessionInfo;
import org.kaaproject.kaa.server.transports.tcp.transport.messages.NettyTcpConnectMessage;
import org.kaaproject.kaa.server.transports.tcp.transport.messages.NettyTcpSyncMessage;
import java.util.UUID;
public class TcpCommandsTest {
@Test
public void kaaTcpCommandTest() {
KaaTcpCommandFactory commandFactory = new KaaTcpCommandFactory();
KaaTcpCommand command = (KaaTcpCommand) commandFactory.createCommandProcessor();
Assert.assertNotNull(command);
Assert.assertEquals(KaaTcpCommand.KAA_TCP, command.getName());
}
@Test
public void kaaTcpCommandGetSetTest() {
int id = 1;
long syncTime = 1;
MqttFrame mqttFrame = new Connect();
KaaTcpCommand kaaTcpCommand = new KaaTcpCommand();
kaaTcpCommand.setCommandId(id);
kaaTcpCommand.setResponse(mqttFrame);
kaaTcpCommand.setSyncTime(syncTime);
Assert.assertEquals(id, kaaTcpCommand.getCommandId());
Assert.assertEquals(mqttFrame, kaaTcpCommand.getResponse());
Assert.assertEquals(syncTime, kaaTcpCommand.getSyncTime());
}
@Test
public void kaaTcpCommandFactoryGetSetTest() {
KaaTcpCommandFactory kaaTcpCommandFactory = new KaaTcpCommandFactory();
Assert.assertEquals(KaaTcpCommand.KAA_TCP, kaaTcpCommandFactory.getCommandName());
}
@Test
public void nettyKaaTcpSyncMessageGetSetTest() {
Connect connect = new Connect(10, 10, new byte[10], null, null);
NettyTcpConnectMessage nettyTcpConnectMessage = new NettyTcpConnectMessage(null, null, connect, null, null, null, null);
Assert.assertEquals(connect.isEncrypted(), nettyTcpConnectMessage.isEncrypted());
Assert.assertEquals(connect.getKeepAlive(), nettyTcpConnectMessage.getKeepAlive());
}
@Test
public void nettyTcpSyncMessageGetSetTest() {
SyncRequest command = new SyncRequest(new byte[10], true, true);
SessionInfo sessionInfo = new SessionInfo(UUID.randomUUID(), 10, mock(ChannelContext.class), ChannelType.ASYNC,
mock(MessageEncoderDecoder.CipherPair.class), EndpointObjectHash.fromString("hash"), "appToken", "sdkToken", 100, true);
NettyTcpSyncMessage nettyTcpSyncMessage = new NettyTcpSyncMessage(command, sessionInfo, null, null);
Assert.assertEquals(command.isEncrypted(), nettyTcpSyncMessage.isEncrypted());
}
}