walletd 0.2.0

The walletd library
Documentation
use crate::{Error, KeyPairBuilder, MnemonicKeyPairType, Seed};
use std::str::FromStr;
use walletd_hd_key::HDNetworkType;

#[test]
fn test_new_and_default() {
    let builder = KeyPairBuilder::new();
    let default = KeyPairBuilder::default();
    assert_eq!(builder, default);
    assert!(builder.mnemonic_phrase.is_none());
    assert!(builder.mnemonic_seed.is_none());
    assert!(builder.passphrase.is_none());
    assert_eq!(builder.network_type, HDNetworkType::default());
    assert_eq!(builder.style, MnemonicKeyPairType::default());
}

#[test]
fn test_with_mnemonic_phrase() -> Result<(), Error> {
    let mnemonic_phrase =
        "outer ride neither foil glue number place usage ball shed dry point".to_string();
    let mut builder = KeyPairBuilder::new();
    builder.mnemonic_phrase(mnemonic_phrase.clone());
    let keypair = builder.clone().build()?;
    assert!(builder.clone().mnemonic_phrase.is_some());

    assert_eq!(
        builder
            .clone()
            .mnemonic_phrase
            .expect("due to previous check, should be some"),
        mnemonic_phrase
    );
    assert_eq!(keypair.mnemonic_phrase, mnemonic_phrase);

    let builder_phrase_none = builder.no_mnemonic_phrase();

    assert!(builder_phrase_none.clone().mnemonic_phrase.is_none());
    let keypair_build = builder_phrase_none.build();
    assert!(keypair_build.is_err());
    Ok(())
}

#[test]
fn test_with_mnemonic_seed() -> Result<(), Error> {
    let mnemonic_seed = Seed::from_str("a2fd9c0522d84d52ee4c8533dc02d4b69b4df9b6255e1af20c9f1d4d691689f2a38637eb1ec778972bf845c32d5ae83c7536999b5666397ac32021b21e0accee")?;
    let mut builder = KeyPairBuilder::new();
    builder.mnemonic_seed(mnemonic_seed.clone());
    assert!(builder.clone().mnemonic_seed.is_some());
    assert_eq!(
        builder
            .clone()
            .mnemonic_seed
            .expect("due to previous check, should be some"),
        mnemonic_seed
    );
    let builder_no_seed = builder.no_mnemonic_seed();
    assert!(builder_no_seed.mnemonic_seed.is_none());
    Ok(())
}

#[test]
fn test_with_passphrase() -> Result<(), Error> {
    let passphrase = "mypassphrase".to_string();
    let mut builder = KeyPairBuilder::new();
    builder.passphrase(passphrase.clone());
    assert!(builder.clone().passphrase.is_some());
    assert_eq!(
        builder
            .clone()
            .passphrase
            .expect("due to previous check, should be some"),
        passphrase
    );
    let builder_no_passphrase = builder.no_passphrase();
    assert!(builder_no_passphrase.passphrase.clone().is_none());
    Ok(())
}

#[test]
fn test_with_network_type() {
    let network_type = HDNetworkType::TestNet;
    let mut builder = KeyPairBuilder::new();
    builder.network_type(network_type);
    assert_eq!(builder.network_type, network_type);
}

#[test]
fn test_with_style() {
    let style = MnemonicKeyPairType::HDBip39;
    let mut builder = KeyPairBuilder::new();
    builder.style(style);
    assert_eq!(builder.style, style);
}