mqi 0.3.0

Idiomatic IBM® MQ Interface (MQI) and MQ Administration Interface (MQAI) APIs
Documentation
#![cfg(feature = "mock")]

use mqi::{Object, Subscription, constants, open::ObjectString, prelude::*, test::mock};

#[test]
fn subscribe() -> Result<(), Box<dyn std::error::Error>> {
    let connection = mock::connect_ok(|mock_library| {
        let mut seq = mockall::Sequence::new();
        mock::open_ok(mock_library, 0x0101_0101, 1, &mut seq);
        mock::subscribe_managed_ok(mock_library, 0x0505, 0x5b5b, 1, &mut seq);
    });

    let object = Object::open(connection.connection_ref(), &()).warn_as_error()?;
    let (sub, obj) = Subscription::subscribe_managed(
        connection.connection_ref(),
        (
            constants::MQSO_CREATE | constants::MQSO_NON_DURABLE,
            &object,
            ObjectString("dev/"),
        ),
    )
    .warn_as_error()?;

    sub.close().warn_as_error()?;
    obj.close().warn_as_error()?;

    Ok(())
}