Exemple #1
0
        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");
        }
Exemple #2
0
        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.");
        }
Exemple #3
0
        //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();
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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;
        }
Exemple #9
0
        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);
        }
Exemple #10
0
 private static string GetUnreachableIP()
 {
     return(UnitTestUtil.GetUnitTestConfig("protocols.unreachable_ip"));
 }
Exemple #11
0
 private static string GetConnectableIP()
 {
     return(UnitTestUtil.GetUnitTestConfig("protocols.connectable_ip"));
 }
Exemple #12
0
 private static int GetClosedPort()
 {
     return(Int32.Parse(UnitTestUtil.GetUnitTestConfig("protocols.closed_port")));
 }
Exemple #13
0
 private static int GetConnectablePort()
 {
     return(Int32.Parse(UnitTestUtil.GetUnitTestConfig("protocols.connectable_port")));
 }
Exemple #14
0
 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"));
 }
Exemple #18
0
 private static string GetUnknownDNSName()
 {
     return(UnitTestUtil.GetUnitTestConfig("protocols.unknown_dnsname"));
 }