b3_utils 0.13.1

Utility functions for building on the Internet Computer
Documentation
#[cfg(test)]
mod tests {
    use crate::wasm::{types::WasmHash, Wasm};

    #[test]
    fn test_load() {
        let mut wasm = Wasm::default();
        let blob = vec![1, 2, 3];

        assert_eq!(wasm.load(&blob), 3);
        assert_eq!(wasm.bytes(), vec![1, 2, 3]);

        println!("{:?}", wasm.bytes());
        println!("{:?}", wasm.hash());
    }

    #[test]
    fn test_load_multiple() {
        let mut wasm = Wasm::default();
        let blob = vec![1, 2, 3];
        let blob2 = vec![4, 5, 6];

        assert_eq!(wasm.load(&blob), 3);
        assert_eq!(wasm.load(&blob2), 6);
        assert_eq!(wasm.bytes(), vec![1, 2, 3, 4, 5, 6]);

        println!("{:?}", wasm.bytes());
        println!("{:?}", wasm.hash());

        if wasm.is_loaded(6) {
            wasm.unload();
        }

        assert_eq!(wasm.len(), 0);

        println!("{:?}", wasm.bytes());
        println!("{:?}", wasm.hash());
    }

    #[test]
    fn test_is_empty() {
        let wasm = Wasm::default();

        assert_eq!(wasm.is_empty(), true);
    }

    #[test]
    fn test_is_loading() {
        let mut wasm = Wasm::default();
        let blob = vec![1, 2, 3];

        assert_eq!(wasm.is_loading(3), true);
        assert_eq!(wasm.load(&blob), 3);
        assert_eq!(wasm.is_loading(3), false);
    }

    #[test]
    fn test_is_loaded() {
        let mut wasm = Wasm::default();
        let blob = vec![1, 2, 3];

        assert_eq!(wasm.is_loaded(3), false);
        assert_eq!(wasm.load(&blob), 3);
        assert_eq!(wasm.is_loaded(3), true);
    }

    #[test]
    fn test_generate_hash() {
        let mut wasm = Wasm::default();
        let blob = vec![1, 2, 3];

        assert_eq!(wasm.hash(), WasmHash::default());
        assert_eq!(wasm.load(&blob), 3);

        let actual = wasm.hash();

        let expected = WasmHash::from([
            3, 144, 88, 198, 242, 192, 203, 73, 44, 83, 59, 10, 77, 20, 239, 119, 204, 15, 120,
            171, 204, 206, 213, 40, 125, 132, 161, 162, 1, 28, 251, 129,
        ]);

        assert_eq!(actual, expected);
    }
}