[go: up one dir, main page]

fakeit 1.3.0

Fake data generator library with 130+ functions
Documentation
use crate::company;
use crate::data::internet;
use crate::data::person;
use crate::job;
use crate::misc;

pub fn domain_name() -> String {
    format!(
        "{}{}.{}",
        job::descriptor().to_lowercase(),
        company::bs().to_lowercase(),
        domain_suffix()
    )
}

pub fn http_method() -> String {
    misc::random_data(internet::HTTP_METHOD).to_string()
}

pub fn domain_suffix() -> String {
    misc::random_data(internet::DOMAIN_SUFFIX).to_string()
}

pub fn ipv4_address() -> String {
    format!(
        "{}.{}.{}.{}",
        misc::random::<i16>(2, 254),
        misc::random::<i16>(2, 254),
        misc::random::<i16>(2, 254),
        misc::random::<i16>(2, 254),
    )
}

pub fn ipv6_address() -> String {
    let num: i64 = 65536;
    misc::random::<i64>(0, num);
    format!(
        "2001:cafe:{:x}:{:x}:{:x}:{:x}:{:x}:{:x}",
        misc::random::<i64>(0, num),
        misc::random::<i64>(0, num),
        misc::random::<i64>(0, num),
        misc::random::<i64>(0, num),
        misc::random::<i64>(0, num),
        misc::random::<i64>(0, num),
    )
}

pub fn mac_address() -> String {
    let num: i16 = 255;
    format!(
        "{:02X}:{:02X}:{:02X}:{:02X}:{:02X}:{:02X}",
        misc::random(0, num),
        misc::random(0, num),
        misc::random(0, num),
        misc::random(0, num),
        misc::random(0, num),
        misc::random(0, num),
    )
}

pub fn username() -> String {
    format!(
        "{}{}",
        misc::random_data(person::LAST).to_string(),
        misc::replace_with_numbers("####".to_string()),
    )
}

#[cfg(test)]
mod tests {
    use crate::internet;
    use crate::testify::exec_mes;

    #[test]
    fn domain_name() {
        exec_mes("internet::domain_name", || internet::domain_name());
    }

    #[test]
    fn http_method() {
        exec_mes("internet::http_method", || internet::http_method());
    }

    #[test]
    fn domain_suffix() {
        exec_mes("internet::domain_suffix", || internet::domain_suffix());
    }

    #[test]
    fn ipv4_address() {
        exec_mes("internet::ipv4_address", || internet::ipv4_address());

        let data1 = internet::ipv4_address();
        let data2 = internet::ipv4_address();
        assert_ne!(data1, data2);
    }

    #[test]
    fn ipv6_address() {
        exec_mes("internet::ipv6_address", || internet::ipv6_address());

        let data1 = internet::ipv6_address();
        let data2 = internet::ipv6_address();
        assert_ne!(data1, data2);
    }

    #[test]
    fn mac_address() {
        exec_mes("internet::mac_address", || internet::mac_address());

        let data1 = internet::mac_address();
        let data2 = internet::mac_address();
        assert_ne!(data1, data2);
    }

    #[test]
    fn username() {
        exec_mes("internet::username", || internet::username());
    }
}