public void AddingListenerMultipleTimesTest() { var events = new BindableEvents(new Bindable <int>()); BindableCallback listener1 = ((c, o) => { }); // add two events.Add(listener1); events.Add(listener1); // get the listeners BindableCallback listeners = (BindableCallback)UnitTestUtil.GetProtected(events, "Listeners"); Assert.AreEqual(listeners.GetInvocationList().Length, 1, "There should only be listeners registered"); }
public void AddForwardOnChangeMultipleTimes() { // setup var events = new BindableEvents(new Bindable <int>()); var bindableToForwardFrom = new Bindable <string>(); // add twice events.ForwardOnChange(bindableToForwardFrom); events.ForwardOnChange(bindableToForwardFrom); var forwarded = (Dictionary <IBindable, BindableCallback>)UnitTestUtil.GetProtected(events, "ForwardedBindables"); Assert.IsTrue(forwarded.ContainsKey((IBindable)bindableToForwardFrom), "The forwareded bnindable should be known."); Assert.AreEqual(1, forwarded.Count, "There should only be one forward listener."); }
//TODO シリアル用テストケースは追加必要。CygwinはTelnetと同じなのでまあいいだろう //TODO ITerminalOutputのテスト。正しく送信されたかを確認するのは難しい感じもするが //TODO Reproduceサポートの後、SSH2で1Connection-複数Channelを開き、個別に開閉してみる private ITerminalConnection CreateTelnetConnection() { ITCPParameter tcp = _protocolService.CreateDefaultTelnetParameter(); tcp.Destination = UnitTestUtil.GetUnitTestConfig("protocols.telnet_connectable"); Debug.Assert(tcp.Port == 23); ISynchronizedConnector sc = _protocolService.CreateFormBasedSynchronozedConnector(null); IInterruptable t = _protocolService.AsyncTelnetConnect(sc.InterruptableConnectorClient, tcp); ITerminalConnection con = sc.WaitConnection(t, 5000); //Assert.ReferenceEquals(con.Destination, tcp); //なぜか成立しない Debug.Assert(con.Destination == tcp); _rawsocket = ((InterruptableConnector)t).RawSocket; _testReceiver = new TestReceiver(); con.Socket.RepeatAsyncRead(_testReceiver); return(con); }
public void SSH1() { SSHLoginParameter p1 = new SSHLoginParameter(); p1.Method = SSHProtocol.SSH1; p1.Account = "account"; p1.IdentityFileName = "identity-file"; p1.AuthenticationType = AuthenticationType.PublicKey; StructuredText t = _sshSerializer.Serialize(p1); UnitTestUtil.DumpStructuredText(t); //確認 Debug.WriteLine(UnitTestUtil.DumpStructuredText(t)); SSHLoginParameter p2 = (SSHLoginParameter)_sshSerializer.Deserialize(t); Assert.AreEqual(SSHProtocol.SSH1, p2.Method); Assert.AreEqual(AuthenticationType.PublicKey, p2.AuthenticationType); Assert.AreEqual("identity-file", p2.IdentityFileName); Assert.AreEqual("account", p2.Account); }
private void SSHSuccess(SSHProtocol sshprotocol) { ProtocolServiceTestPlugin.Instance.Reset(); ISSHLoginParameter ssh = _protocolService.CreateDefaultSSHParameter(); ssh.Method = sshprotocol; ssh.Account = UnitTestUtil.GetUnitTestConfig("protocols.ssh_account"); ssh.PasswordOrPassphrase = UnitTestUtil.GetUnitTestConfig("protocols.ssh_password"); ITCPParameter tcp = (ITCPParameter)ssh.GetAdapter(typeof(ITCPParameter)); tcp.Destination = GetSSHConnectableHost(); Assert.AreEqual(22, tcp.Port); ResultCallback client = new ResultCallback(); IInterruptable t = _protocolService.AsyncSSHConnect(client, ssh); client.AssertSuccess(); ProtocolServiceTestPlugin.Instance.AssertSuccess(); }
private ITerminalConnection CreateSSHConnection(SSHProtocol sshprotocol) { ISSHLoginParameter ssh = _protocolService.CreateDefaultSSHParameter(); ssh.Method = sshprotocol; ssh.Account = UnitTestUtil.GetUnitTestConfig("protocols.ssh_account"); ssh.PasswordOrPassphrase = UnitTestUtil.GetUnitTestConfig("protocols.ssh_password"); ITCPParameter tcp = (ITCPParameter)ssh.GetAdapter(typeof(ITCPParameter)); tcp.Destination = UnitTestUtil.GetUnitTestConfig("protocols.ssh_connectable"); Debug.Assert(tcp.Port == 22); ISynchronizedConnector sc = _protocolService.CreateFormBasedSynchronozedConnector(null); IInterruptable t = _protocolService.AsyncSSHConnect(sc.InterruptableConnectorClient, ssh); ITerminalConnection con = sc.WaitConnection(t, 5000); Debug.Assert(con.Destination == ssh); _rawsocket = ((InterruptableConnector)t).RawSocket; _testReceiver = new TestReceiver(); con.Socket.RepeatAsyncRead(_testReceiver); return(con); }
public async Task UserUpdateTestAsync() { var repo = new Repo(_db); Admin user = CreateAdmin(); await AddForTest(user); var originalEmail = user.EndlasEmail; User usercopy = user; // change user attributes user.FirstName = UnitTestUtil.getRandomString(8); user.LastName = UnitTestUtil.getRandomString(8); user.EndlasEmail = UnitTestUtil.getRandomString(9) + "@endlas.com"; await repo.UpdateAdmin(user); var result = await(_db.Users.Where(p => p.EndlasEmail == user.EndlasEmail).FirstOrDefaultAsync()); var badresult = await(_db.Users.Where(p => p.EndlasEmail == originalEmail).FirstOrDefaultAsync()); Assert.AreEqual(user.EndlasEmail, result.EndlasEmail); Assert.IsNull(badresult); }
public void T05_DenyHostKey() { ProtocolServiceTestPlugin.Instance.Reset(); ProtocolServiceTestPlugin.Instance.AcceptsHostKey = false; ISSHLoginParameter ssh = _protocolService.CreateDefaultSSHParameter(); ssh.Method = SSHProtocol.SSH2; ssh.Account = UnitTestUtil.GetUnitTestConfig("protocols.ssh_account"); ssh.PasswordOrPassphrase = UnitTestUtil.GetUnitTestConfig("protocols.ssh_password"); ITCPParameter tcp = (ITCPParameter)ssh.GetAdapter(typeof(ITCPParameter)); tcp.Destination = GetSSHConnectableHost(); Assert.AreEqual(22, tcp.Port); ResultCallback client = new ResultCallback(); IInterruptable t = _protocolService.AsyncSSHConnect(client, ssh); client.AssertFail(); ProtocolServiceTestPlugin.Instance.AssertFail(); ProtocolServiceTestPlugin.Instance.AcceptsHostKey = true; }
public async Task UserAddTestAsync() { /// ARRANGE // setup PilotRepo to be tested var repo = new Repo(_db); // setup pilot with name, email, aircraft and a password var user = new Admin { UserId = Guid.NewGuid(), FirstName = UnitTestUtil.getRandomString(8), LastName = UnitTestUtil.getRandomString(8), EndlasEmail = UnitTestUtil.getRandomString(8) + "@endlas.com", AuthString = UnitTestUtil.getRandomString(8) }; /// ACT // call the method to be tested await repo.AddAdmin(user); var result = await(_db.Users.Where(p => p.EndlasEmail == user.EndlasEmail).FirstOrDefaultAsync()); /// ASSERT Assert.IsNotNull(result); Assert.AreEqual(result.EndlasEmail, user.EndlasEmail); }
private static string GetUnreachableIP() { return(UnitTestUtil.GetUnitTestConfig("protocols.unreachable_ip")); }
private static string GetConnectableIP() { return(UnitTestUtil.GetUnitTestConfig("protocols.connectable_ip")); }
private static int GetClosedPort() { return(Int32.Parse(UnitTestUtil.GetUnitTestConfig("protocols.closed_port"))); }
private static int GetConnectablePort() { return(Int32.Parse(UnitTestUtil.GetUnitTestConfig("protocols.connectable_port"))); }
private static string GetConnectableDNSName() { return(UnitTestUtil.GetUnitTestConfig("protocols.connectable_dnsname")); }
//NOTE // 本当はさらにplugin=...の記述を省略した形をテストするべきだが、そのままではPluginDeclarationAttributeをPoderosa.Monolithic.dllのものになっている // それをテスト用にロードしたPlugin.dll内のものを参照するようにしないとテストが実行できず、これはかなりムズいので諦める。 // 分割ビルド状態でPoderosaがちゃんと起動できていればそこの機能はちゃんとしている、とみなす。 //なお、PluginManifetで行うのはTypeをロードするところまでで、それがちゃんとしたプラグインであるかどうかの検査はPluginManagerが行う。 private string PoderosaAppDir() { return(UnitTestUtil.GetUnitTestConfig("poderosa_installed_dir")); }
/* * SSHではないポートに接続してアウトになる実験をしたいが、適切なのがみつからない * [Test] * public void T03_SSHBadPort() { * ProtocolServiceTestPlugin.Instance.Reset(); * * ISSHLoginParameter ssh = _protocolService.CreateDefaultSSHParameter(); * ssh.Method = SSHProtocol.SSH2; * ssh.Account = UnitTestUtil.GetUnitTestConfig("protocols.ssh_account"); * ssh.PasswordOrPassphrase = UnitTestUtil.GetUnitTestConfig("protocols.ssh_wrongpassword"); * ITCPParameter tcp = (ITCPParameter)ssh.GetAdapter(typeof(ITCPParameter)); * tcp.Destination = "www.google.com"; //Googleのポート80にSSH接続を試みる。当然失敗すべきだが * tcp.Port = 80; * * ResultCallback client = new ResultCallback(); * IInterruptable t = _protocolService.AsyncSSHConnect(client, ssh); * client.AssertFail(); * * ProtocolServiceTestPlugin.Instance.AssertFail(); * } */ private static string GetTelnetConnectableHost() { return(UnitTestUtil.GetUnitTestConfig("protocols.telnet_connectable")); }
private static string GetSSHConnectableHost() { return(UnitTestUtil.GetUnitTestConfig("protocols.ssh_connectable")); }
private static string GetUnknownDNSName() { return(UnitTestUtil.GetUnitTestConfig("protocols.unknown_dnsname")); }