public void ByteConversion()
        {
            var value    = Passhash.PasswordToPasshash("Str0ngPassw0rd123");
            var bytes    = new byte[Passhash.ByteSize];
            var newValue = value;

            using (var memoryStream = new MemoryStream(bytes))
            {
                using (var binaryWriter = new BinaryWriter(memoryStream))
                {
                    value.ToBytes(binaryWriter);
                    Assert.AreEqual(Passhash.ByteSize, memoryStream.Position);

                    binaryWriter.Seek(0, SeekOrigin.Begin);

                    using (var binaryReader = new BinaryReader(memoryStream))
                    {
                        newValue = new Passhash(binaryReader);
                        Assert.AreEqual(Passhash.ByteSize, memoryStream.Position);
                    }
                }
            }

            Assert.AreEqual(value, newValue);
        }
        public void PasswordIteration()
        {
            var firstValue  = Passhash.PasswordToPasshash("Str0ngPassw0rd123");
            var secondValue = Passhash.PasswordToPasshash("Str0ngPassw0rd123", 12345);

            Assert.AreNotEqual(firstValue, secondValue);
        }
        public void NotEquality()
        {
            var firstValue  = Passhash.PasswordToPasshash("Str0ngPassw0rd123");
            var secondValue = Passhash.PasswordToPasshash("OtherStr0ngPassw0rd123");

            Assert.AreNotEqual(firstValue, secondValue);
        }
        public void Base64Conversion()
        {
            var value    = Passhash.PasswordToPasshash("Str0ngPassw0rd123");
            var base64   = value.ToBase64();
            var newValue = new Passhash(base64);

            Assert.AreEqual(value, newValue);
        }
        public void LowerBound()
        {
            var isThrowed = false;

            try { _ = Passhash.PasswordToPasshash("12345"); }
            catch { isThrowed = true; }
            Assert.IsTrue(isThrowed);
        }
        public void Connect_Incorrect_ID()
        {
            var addAccount     = new Account(0, false, 0, "test_user1", Passhash.PasswordToPasshash("Str0ngPassw0rd123"), new EmailAddress("*****@*****.**"), Token.Create(), IPAddress.Any);
            var connectAccount = new Account(1, false, 0, "test_user1", Passhash.PasswordToPasshash("Str0ngPassw0rd123"), new EmailAddress("*****@*****.**"), Token.Create(), IPAddress.Any);
            var isThrowed      = false;

            try { Connect(addAccount, connectAccount); }
            catch { isThrowed = true; }
            Assert.IsTrue(isThrowed);
        }
        public void Connect_Correct()
        {
            var account = new Account(0, false, 0, "test_user1", Passhash.PasswordToPasshash("Str0ngPassw0rd123"), new EmailAddress("*****@*****.**"), Token.Create(), IPAddress.Any);

            Connect(account, account);
        }