/*
* Copyright (c) 2015 Tarun Gupta.
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
package com.isode.stroke.serializer.payloadserializers;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.isode.stroke.serializer.payloadserializers.JingleContentPayloadSerializer;
import com.isode.stroke.elements.JingleContentPayload;
import com.isode.stroke.elements.JingleFileTransferDescription;
import com.isode.stroke.elements.JingleFileTransferFileInfo;
import com.isode.stroke.elements.JingleIBBTransportPayload;
import com.isode.stroke.elements.JingleS5BTransportPayload;
import com.isode.stroke.elements.HashElement;
import com.isode.stroke.base.DateTime;
import com.isode.stroke.base.ByteArray;
import com.isode.stroke.jid.JID;
import com.isode.stroke.network.HostAddress;
import com.isode.stroke.network.HostAddressPort;
import java.util.Date;
import java.util.TimeZone;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class JingleContentPayloadSerializerTest {
/**
* Default Constructor.
*/
public JingleContentPayloadSerializerTest() {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
@Test
public void testSerialize() {
JingleContentPayloadSerializer testling = new JingleContentPayloadSerializer();
JingleContentPayload content = new JingleContentPayload();
content.setCreator(JingleContentPayload.Creator.InitiatorCreator);
content.setName("Erin");
JingleFileTransferDescription description = new JingleFileTransferDescription();
JingleFileTransferFileInfo fileInfo = new JingleFileTransferFileInfo();
fileInfo.setName("Isaac");
fileInfo.setDescription("It is good.");
fileInfo.setMediaType("MediaAAC");
fileInfo.setSize(513L);
fileInfo.setDate(new Date(1434056150620L));
fileInfo.setSupportsRangeRequests(true);
fileInfo.setRangeOffset(566L);
fileInfo.addHash(new HashElement("MD5", new ByteArray()));
description.setFileInfo(fileInfo);
content.addDescription(description);
JingleIBBTransportPayload jingleIBBTransportPayload = new JingleIBBTransportPayload();
jingleIBBTransportPayload.setBlockSize(4);
jingleIBBTransportPayload.setSessionID("546-45");
content.addTransport(jingleIBBTransportPayload);
JingleS5BTransportPayload jingleS5BTransportPayload = new JingleS5BTransportPayload();
jingleS5BTransportPayload.setMode(JingleS5BTransportPayload.Mode.TCPMode);
JingleS5BTransportPayload.Candidate candidate = new JingleS5BTransportPayload.Candidate();
candidate.cid = "cid";
candidate.jid = new JID("blas@nal.vx");
try {
candidate.hostPort = new HostAddressPort(new HostAddress(InetAddress.getByName("173.194.36.112")));
} catch (UnknownHostException e) {
}
candidate.priority = 4;
candidate.type = JingleS5BTransportPayload.Candidate.Type.AssistedType;
jingleS5BTransportPayload.addCandidate(candidate);
jingleS5BTransportPayload.setCandidateUsed("Candidate");
jingleS5BTransportPayload.setActivated("Activity");
jingleS5BTransportPayload.setDstAddr("UK");
jingleS5BTransportPayload.setCandidateError(false);
jingleS5BTransportPayload.setProxyError(true);
content.addTransport(jingleS5BTransportPayload);
String expectedResult = "" +
"2015-06-11T20:55:50ZIt is good.MediaAAC" +
"Isaac513" +
"" +
"" +
"" +
"";
assertEquals(expectedResult, testling.serialize(content));
}
@Test
public void testSerialize_MultiplePayloads() {
JingleContentPayloadSerializer testling = new JingleContentPayloadSerializer();
JingleContentPayload content = new JingleContentPayload();
content.setCreator(JingleContentPayload.Creator.InitiatorCreator);
content.setName("Erin");
JingleFileTransferDescription description = new JingleFileTransferDescription();
JingleFileTransferFileInfo fileInfo = new JingleFileTransferFileInfo();
fileInfo.setName("Isaac");
fileInfo.setDescription("It is good.");
fileInfo.setMediaType("MediaAAC");
fileInfo.setSize(513L);
fileInfo.setDate(new Date(1434056150620L));
fileInfo.setSupportsRangeRequests(true);
fileInfo.setRangeOffset(566L);
fileInfo.addHash(new HashElement("MD5", new ByteArray()));
description.setFileInfo(fileInfo);
content.addDescription(description);
JingleFileTransferDescription description2 = new JingleFileTransferDescription();
JingleFileTransferFileInfo fileInfo2 = new JingleFileTransferFileInfo();
fileInfo2.setName("Newton");
fileInfo2.setDescription("It is bad.");
fileInfo2.setMediaType("MediaJPG");
fileInfo2.setSize(556L);
fileInfo2.setSupportsRangeRequests(false);
fileInfo2.addHash(new HashElement("SHA-1", new ByteArray()));
description2.setFileInfo(fileInfo2);
content.addDescription(description2);
JingleIBBTransportPayload jingleIBBTransportPayload = new JingleIBBTransportPayload();
jingleIBBTransportPayload.setBlockSize(4);
jingleIBBTransportPayload.setSessionID("546-45");
content.addTransport(jingleIBBTransportPayload);
JingleIBBTransportPayload jingleIBBTransportPayload2 = new JingleIBBTransportPayload();
jingleIBBTransportPayload2.setBlockSize(43);
jingleIBBTransportPayload2.setSessionID("546-452");
content.addTransport(jingleIBBTransportPayload2);
JingleS5BTransportPayload jingleS5BTransportPayload = new JingleS5BTransportPayload();
jingleS5BTransportPayload.setMode(JingleS5BTransportPayload.Mode.TCPMode);
JingleS5BTransportPayload.Candidate candidate = new JingleS5BTransportPayload.Candidate();
candidate.cid = "cid";
candidate.jid = new JID("blas@nal.vx");
try {
candidate.hostPort = new HostAddressPort(new HostAddress(InetAddress.getByName("173.194.36.112")));
} catch (UnknownHostException e) {
}
candidate.priority = 4;
candidate.type = JingleS5BTransportPayload.Candidate.Type.AssistedType;
jingleS5BTransportPayload.addCandidate(candidate);
jingleS5BTransportPayload.setCandidateUsed("Candidate");
jingleS5BTransportPayload.setActivated("Activity");
jingleS5BTransportPayload.setDstAddr("UK");
jingleS5BTransportPayload.setCandidateError(false);
jingleS5BTransportPayload.setProxyError(true);
content.addTransport(jingleS5BTransportPayload);
JingleS5BTransportPayload jingleS5BTransportPayload2 = new JingleS5BTransportPayload();
jingleS5BTransportPayload2.setMode(JingleS5BTransportPayload.Mode.TCPMode);
JingleS5BTransportPayload.Candidate candidate2 = new JingleS5BTransportPayload.Candidate();
candidate2.cid = "cid";
candidate2.jid = new JID("blas@nal.vx");
try {
candidate2.hostPort = new HostAddressPort(new HostAddress(InetAddress.getByName("173.194.36.112")));
} catch (UnknownHostException e) {
}
candidate2.priority = 4;
candidate2.type = JingleS5BTransportPayload.Candidate.Type.AssistedType;
jingleS5BTransportPayload2.addCandidate(candidate2);
jingleS5BTransportPayload2.setCandidateUsed("Candy");
jingleS5BTransportPayload2.setActivated("Active");
jingleS5BTransportPayload2.setDstAddr("USA");
jingleS5BTransportPayload2.setCandidateError(true);
jingleS5BTransportPayload2.setProxyError(false);
content.addTransport(jingleS5BTransportPayload2);
String expectedResult = "" +
"2015-06-11T20:55:50ZIt is good.MediaAACIsaac" +
"513" +
"It is bad.MediaJPG" +
"Newton556" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"";
assertEquals(expectedResult, testling.serialize(content));
}
}