public void CheckServiceActive()
        {
            var pm  = new DefaultPasswordManager(NOPApplication.Instance);
            var buf = IDPasswordCredentials.PlainPasswordToSecureBuffer("@8luE+5ky=");

            try
            {
                var hash = pm.ComputeHash(PasswordFamily.Text, buf);
                Aver.Fail("no exception");
            }
            catch (AzosException e)
            {
                Aver.AreEqual(e.Message, StringConsts.DAEMON_INVALID_STATE +
                              typeof(DefaultPasswordManager).Name);
            }
        }
        public void CheckServiceActive()
        {
            var pm  = new DefaultPasswordManager();
            var buf = IDPasswordCredentials.PlainPasswordToSecureBuffer("@8luE+5ky=");

            try
            {
                var hash = pm.ComputeHash(PasswordFamily.Text, buf);
                Assert.Fail("no exception");
            }
            catch (NFXException e)
            {
                Assert.AreEqual(e.Message, StringConsts.SERVICE_INVALID_STATE +
                                typeof(DefaultPasswordManager).Name);
            }
        }
        public void AreEquivalent()
        {
            var pm = new DefaultPasswordManager(NOPApplication.Instance);

            pm.Start();

            var buf   = IDPasswordCredentials.PlainPasswordToSecureBuffer("@8luE+5ky=");
            var hash1 = Manager.ComputeHash(PasswordFamily.Text, buf);
            var hash2 = HashedPassword.FromString(hash1.ToString());

            try
            {
                Aver.IsTrue(pm.AreEquivalent(hash1, hash2));
                Aver.Fail("no exception");
            }
            catch (AzosException e)
            {
                Aver.AreEqual(e.Message, StringConsts.DAEMON_INVALID_STATE +
                              typeof(DefaultPasswordManager).Name);
            }

            pm.SignalStop();
            pm.WaitForCompleteStop();

            Aver.IsTrue(pm.AreEquivalent(hash1, hash2));

            Aver.IsFalse(pm.AreEquivalent(null, null));

            var hash3 = new HashedPassword("OTH", hash2.Family);

            hash3["hash"] = hash2["hash"];
            hash3["salt"] = hash2["salt"];
            Aver.IsFalse(pm.AreEquivalent(hash1, hash3));

            hash2 = Manager.ComputeHash(PasswordFamily.Text, buf);
            Aver.IsFalse(pm.AreEquivalent(hash1, hash2));

            buf   = IDPasswordCredentials.PlainPasswordToSecureBuffer("qwerty");
            hash2 = Manager.ComputeHash(PasswordFamily.Text, buf);
            Aver.IsFalse(pm.AreEquivalent(hash1, hash2));
        }