#region Copyright 2009-2014 by Roger Knapp, Licensed under the Apache License, Version 2.0
/* 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.
*/
#endregion
using System;
using System.Collections.Generic;
using NUnit.Framework;
using System.Xml;
using System.IO;
#pragma warning disable 1591
namespace CSharpTest.Net.SslTunnel.Test
{
[TestFixture]
public partial class TestSampleConfig
{
[Test]
public void TestConfigMultiplexer()
{
TunnelConfig config = null;
using (XmlReader rdr = new XmlTextReader(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SslTunnel.Test.Sample.config")))
config = TunnelConfig.Load(rdr);
Assert.IsNotNull(config);
Assert.AreEqual(4, config.Listeners.Length);
//
Assert.AreEqual(typeof(TunnelMultiplexer), config.Listeners[0].GetType());
Assert.AreEqual("127.0.0.1", ((TunnelMultiplexer)config.Listeners[0]).IpEndpoint);
//
Assert.AreEqual(10080, ((TunnelMultiplexer)config.Listeners[0]).Ports[0].Port);
//
Assert.AreEqual(10081, ((TunnelMultiplexer)config.Listeners[0]).Ports[1].Port);
//
Assert.AreEqual("127.0.0.1", ((TunnelMultiplexer)config.Listeners[0]).Target.IpEndpoint);
Assert.AreEqual(10443, ((TunnelMultiplexer)config.Listeners[0]).Target.Port);
Assert.AreEqual("client.localhost.nunit.cer", ((TunnelMultiplexer)config.Listeners[0]).Target.ClientCertificate);
Assert.AreEqual("password", ((TunnelMultiplexer)config.Listeners[0]).Target.ClientCertPassword);
//
//
Assert.AreEqual("30818902818100A3F81009F73AC50EDA186F8EDBB846C63A8BB8F0E8C25179DEA8FA376372E9394D470B071A76AA0F8D6250B98B8665FF2C03097D7055080AD237F1038404C99F44F2235BC319FFEBF70505225DAD4D47A1868FC92B4E9DEECA06F7BC5171CD96603B35AA6F7816DE294885E0AEF5B62EA981983822174CFDF2C46F392276DA8F0203010001",
((TunnelMultiplexer)config.Listeners[0]).Target.ExpectedCert.PublicKey);
Assert.AreEqual(IgnorePolicyErrors.All, ((TunnelMultiplexer)config.Listeners[0]).Target.ExpectedCert.IgnoredErrors);
//
//
}
[Test]
public void TestConfigDemultiplexer()
{
TunnelConfig config = null;
using (XmlReader rdr = new XmlTextReader(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SslTunnel.Test.Sample.config")))
config = TunnelConfig.Load(rdr);
Assert.IsNotNull(config);
Assert.AreEqual(4, config.Listeners.Length);
//
Assert.AreEqual(typeof(TunnelDemultiplexer), config.Listeners[1].GetType());
Assert.AreEqual("127.0.0.1", ((TunnelDemultiplexer)config.Listeners[1]).IpEndpoint);
Assert.AreEqual(10443, ((TunnelDemultiplexer)config.Listeners[1]).Port);
Assert.AreEqual("server.localhost.nunit.cer", ((TunnelDemultiplexer)config.Listeners[1]).ServerCertificate);
Assert.AreEqual("password", ((TunnelDemultiplexer)config.Listeners[1]).ServerCertPassword);
//
Assert.AreEqual(IgnorePolicyErrors.All, ((TunnelDemultiplexer)config.Listeners[1]).AllowedClients[0].IgnoredErrors);
Assert.AreEqual(2, ((TunnelDemultiplexer)config.Listeners[1]).Targets.Length);
//
Assert.AreEqual(10080, ((TunnelDemultiplexer)config.Listeners[1]).Targets[0].OriginalPort);
Assert.AreEqual("google.com", ((TunnelDemultiplexer)config.Listeners[1]).Targets[0].IpEndpoint);
Assert.AreEqual(443, ((TunnelDemultiplexer)config.Listeners[1]).Targets[0].Port);
Assert.AreEqual(true, ((TunnelDemultiplexer)config.Listeners[1]).Targets[0].UseSsl);
Assert.AreEqual("client.google.com.cer", ((TunnelDemultiplexer)config.Listeners[1]).Targets[0].ClientCertificate);
//
Assert.AreEqual(10081, ((TunnelDemultiplexer)config.Listeners[1]).Targets[1].OriginalPort);
Assert.AreEqual("yahoo.com", ((TunnelDemultiplexer)config.Listeners[1]).Targets[1].IpEndpoint);
Assert.AreEqual(80, ((TunnelDemultiplexer)config.Listeners[1]).Targets[1].Port);
Assert.AreEqual(false, ((TunnelDemultiplexer)config.Listeners[1]).Targets[1].UseSsl);
//
}
[Test]
public void TestConfigListener1()
{
TunnelConfig config = null;
using (XmlReader rdr = new XmlTextReader(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SslTunnel.Test.Sample.config")))
config = TunnelConfig.Load(rdr);
Assert.IsNotNull(config);
Assert.AreEqual(4, config.Listeners.Length);
//
Assert.AreEqual(typeof(TunnelListener), config.Listeners[2].GetType());
Assert.AreEqual("127.0.0.1", ((TunnelListener)config.Listeners[2]).IpEndpoint);
Assert.AreEqual(11080, ((TunnelListener)config.Listeners[2]).Port);
//
Assert.AreEqual("127.0.0.1", ((TunnelListener)config.Listeners[2]).Target.IpEndpoint);
Assert.AreEqual(11443, ((TunnelListener)config.Listeners[2]).Target.Port);
Assert.AreEqual(true, ((TunnelListener)config.Listeners[2]).Target.UseSsl);
Assert.AreEqual("client.localhost.nunit.cer", ((TunnelListener)config.Listeners[2]).Target.ClientCertificate);
//
//
Assert.AreEqual(IgnorePolicyErrors.All, ((TunnelListener)config.Listeners[2]).Target.ExpectedCert.IgnoredErrors);
Assert.AreEqual("30818902818100A3F81009F73AC50EDA186F8EDBB846C63A8BB8F0E8C25179DEA8FA376372E9394D470B071A76AA0F8D6250B98B8665FF2C03097D7055080AD237F1038404C99F44F2235BC319FFEBF70505225DAD4D47A1868FC92B4E9DEECA06F7BC5171CD96603B35AA6F7816DE294885E0AEF5B62EA981983822174CFDF2C46F392276DA8F0203010001",
((TunnelListener)config.Listeners[2]).Target.ExpectedCert.PublicKey);
//
//
}
[Test]
public void TestConfigListener2()
{
TunnelConfig config = null;
using (XmlReader rdr = new XmlTextReader(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SslTunnel.Test.Sample.config")))
config = TunnelConfig.Load(rdr);
Assert.IsNotNull(config);
Assert.AreEqual(4, config.Listeners.Length);
//
Assert.AreEqual(typeof(TunnelListener), config.Listeners[3].GetType());
Assert.AreEqual("127.0.0.1", ((TunnelListener)config.Listeners[3]).IpEndpoint);
Assert.AreEqual(11443, ((TunnelListener)config.Listeners[3]).Port);
Assert.AreEqual("server.localhost.nunit.cer", ((TunnelListener)config.Listeners[3]).ServerCertificate);
Assert.AreEqual("password", ((TunnelListener)config.Listeners[3]).ServerCertPassword);
//
//
Assert.AreEqual(IgnorePolicyErrors.All, ((TunnelListener)config.Listeners[3]).AllowedClients[0].IgnoredErrors);
//
Assert.AreEqual("google.com", ((TunnelListener)config.Listeners[3]).Target.IpEndpoint);
Assert.AreEqual(443, ((TunnelListener)config.Listeners[3]).Target.Port);
Assert.AreEqual(true, ((TunnelListener)config.Listeners[3]).Target.UseSsl);
//
}
}
}