valkey-glide 0.9.0

Valkey GLIDE — native Rust client for Valkey and Redis OSS, built on glide-core.
Documentation
// Copyright Valkey GLIDE Project Contributors - SPDX Identifier: Apache-2.0
//! Mock-executor unit tests for the generic (key) command family.
use super::Mock;
use crate::ValkeyValue;
use crate::commands::generic::GenericCommands;
use crate::commands::options::{Limit, OrderBy, RestoreOptions};

#[tokio::test]
async fn sort_and_sort_store_and_ro() {
    let m = Mock::array(vec![ValkeyValue::BulkString(b"1".to_vec().into())]);
    m.sort(
        "k",
        Some(OrderBy::Desc),
        Some(Limit {
            offset: 0,
            count: 10,
        }),
        true,
    )
    .await
    .unwrap();
    m.assert_args(&["SORT", "k", "LIMIT", "0", "10", "DESC", "ALPHA"]);

    let m = Mock::int(3);
    m.sort_store("k", "dst", None, None, false).await.unwrap();
    m.assert_args(&["SORT", "k", "STORE", "dst"]);

    let m = Mock::array(vec![ValkeyValue::BulkString(b"1".to_vec().into())]);
    m.sort_ro("k", Some(OrderBy::Asc), None, false)
        .await
        .unwrap();
    m.assert_args(&["SORT_RO", "k", "ASC"]);
}

#[tokio::test]
async fn restore_encoding() {
    let m = Mock::ok();
    let opts = RestoreOptions {
        replace: true,
        absttl: false,
        idletime: Some(5),
        frequency: None,
    };
    m.restore("k", 0, "payload", opts).await.unwrap();
    m.assert_args(&["RESTORE", "k", "0", "payload", "REPLACE", "IDLETIME", "5"]);
}

#[tokio::test]
async fn wait_move_encoding() {
    let m = Mock::int(2);
    assert_eq!(m.wait(2, 100).await.unwrap(), 2);
    m.assert_args(&["WAIT", "2", "100"]);

    let m = Mock::int(1);
    assert!(m.move_key("k", 1).await.unwrap());
    m.assert_args(&["MOVE", "k", "1"]);
}

#[tokio::test]
async fn watch_unwatch() {
    let m = Mock::ok();
    m.watch(&["k1", "k2"]).await.unwrap();
    m.assert_args(&["WATCH", "k1", "k2"]);

    let m = Mock::ok();
    m.unwatch().await.unwrap();
    m.assert_args(&["UNWATCH"]);
}