123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- using System.IO;
- using NUnit.Framework;
- using Unity.RenderStreaming.Signaling;
- using Unity.WebRTC;
- using UnityEngine;
- using UnityEngine.TestTools;
- namespace Unity.RenderStreaming.RuntimeTest
- {
- /// <note>
- /// Commandline parser doesn't support mobile platforms.
- /// </note>
- [UnityPlatform(exclude = new[] { RuntimePlatform.IPhonePlayer, RuntimePlatform.Android })]
- class CommandLineParserTest
- {
- [Test]
- public void NothingArgument()
- {
- string[] arguments = { };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That((string)CommandLineParser.SignalingUrl, Is.Null);
- Assert.That((int?)CommandLineParser.PollingInterval, Is.Null);
- }
- [Test]
- public void SignalingUrlArgument()
- {
- const string signalingUrl = "localhost:8080";
- string[] arguments = new[] { "-signalingUrl", signalingUrl };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That((string)CommandLineParser.SignalingUrl, Is.EqualTo(signalingUrl));
- }
- [Test]
- public void PollingIntervalArgument()
- {
- const int pollingInterval = 5000;
- string[] arguments = { "-pollingInterval", pollingInterval.ToString() };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That((int)CommandLineParser.PollingInterval, Is.EqualTo(pollingInterval));
- }
- [Test]
- public void SignalingTypeArgument()
- {
- string signalingType = "websocket";
- string[] arguments = { "-signalingType", signalingType };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That((string)CommandLineParser.SignalingType, Is.EqualTo(signalingType));
- signalingType = "dummy";
- arguments = new[] { "-signalingType", signalingType };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That((string)CommandLineParser.SignalingType, Is.EqualTo(signalingType));
- }
- [Test]
- public void IceServerUrlArgument()
- {
- string[] iceServerUrls = { "stun:stun.l.google.com:19302", "stun:stun.l.google.com:19303" };
- string[] arguments = { "-iceServerUrl", iceServerUrls[0], "-iceServerUrl", iceServerUrls[1] };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That(CommandLineParser.IceServerUrls.Value, Has.Length.EqualTo(2));
- Assert.That(CommandLineParser.IceServerUrls.Value[0], Is.EqualTo(iceServerUrls[0]));
- Assert.That(CommandLineParser.IceServerUrls.Value[1], Is.EqualTo(iceServerUrls[1]));
- }
- [Test]
- public void IceServerUserNameArgument()
- {
- string iceServerUsername = "username";
- string[] arguments = { "-iceServerUsername", iceServerUsername };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That((string)CommandLineParser.IceServerUsername, Is.EqualTo(iceServerUsername));
- }
- [Test]
- public void IceServerCredentialArgument()
- {
- string iceServerCredential = "password";
- string[] arguments = { "-iceServerCredential", iceServerCredential };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That((string)CommandLineParser.IceServerCredential, Is.EqualTo(iceServerCredential));
- }
- [Test]
- public void IceServerCredentialTypeArgument()
- {
- string iceServerCredentialType = "password";
- string[] arguments = { "-iceServerCredentialType", iceServerCredentialType };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That((IceCredentialType)CommandLineParser.IceServerCredentialType, Is.EqualTo(IceCredentialType.Password));
- iceServerCredentialType = "oauth";
- arguments = new[] { "-iceServerCredentialType", iceServerCredentialType };
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That((IceCredentialType)CommandLineParser.IceServerCredentialType, Is.EqualTo(IceCredentialType.OAuth));
- iceServerCredentialType = "dummy";
- arguments = new[] { "-iceServerCredentialType", iceServerCredentialType };
- Assert.That(CommandLineParser.TryParse(arguments), Is.False);
- Assert.That(CommandLineParser.IceServerCredentialType.Value, Is.Null);
- }
- [Test]
- public void ImportJsonArgument()
- {
- string filepath = "dummy.json";
- var file = File.Create(filepath);
- file.Close();
- string[] arguments = { "-importJson", filepath };
- Assert.That(CommandLineParser.TryParse(arguments), Is.False);
- Assert.That(CommandLineParser.ImportJson.Value, Is.Null);
- string json = "{\"signalingType\":\"websocket\",\"signalingUrl\":\"ws://localhost\",\"pollingInterval\":\"1\"}";
- File.WriteAllText(filepath, json);
- Assert.That(CommandLineParser.TryParse(arguments), Is.True);
- Assert.That(CommandLineParser.ImportJson.Value, Is.Not.Null);
- var info = CommandLineParser.ImportJson.Value.Value;
- Assert.That(info.signalingUrl, Is.EqualTo("ws://localhost"));
- Assert.That(info.signalingType, Is.EqualTo("websocket"));
- Assert.That(info.iceServers, Is.Null);
- Assert.That(info.pollingInterval, Is.EqualTo("1"));
- File.Delete(filepath);
- }
- [Test]
- public void ParseJson()
- {
- string json = "{\"signalingType\":\"websocket\",\"signalingUrl\":\"ws://localhost\",\"pollingInterval\":\"1\"}";
- var settings = JsonUtility.FromJson<CommandLineInfo>(json);
- Assert.That(settings.signalingUrl, Is.EqualTo("ws://localhost"));
- Assert.That(settings.signalingType, Is.EqualTo("websocket"));
- Assert.That(settings.iceServers, Is.Null);
- Assert.That(settings.pollingInterval, Is.EqualTo("1"));
- string json2 = "{\"iceServers\":[{\"credential\":\"pass\",\"username\":\"user\",\"credentialType\":\"password\"," +
- "\"urls\":[\"turn:192.168.10.10:3478?transport=udp\"]}]}";
- settings = JsonUtility.FromJson<CommandLineInfo>(json2);
- Assert.That(settings.signalingUrl, Is.Null);
- Assert.That(settings.signalingType, Is.Null);
- Assert.That(settings.iceServers, Has.Length.EqualTo(1));
- Assert.That(settings.iceServers[0].credential, Is.EqualTo("pass"));
- Assert.That(settings.iceServers[0].credentialType, Is.EqualTo(RTCIceCredentialType.Password));
- Assert.That(settings.iceServers[0].username, Is.EqualTo("user"));
- Assert.That(settings.iceServers[0].urls, Has.Length.EqualTo(1));
- Assert.That(settings.iceServers[0].urls[0], Is.EqualTo("turn:192.168.10.10:3478?transport=udp"));
- Assert.That(settings.pollingInterval, Is.Null);
- }
- }
- }
|