#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); // } } }