1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4
5include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
6
7#[test]
8fn test_connect_disconnect() {
9 use std::ffi::{CStr, CString};
10
11 unsafe {
12 let url = CString::new("pulsar://localhost:6650").unwrap();
13 let config = pulsar_client_configuration_create();
14 let client = pulsar_client_create(url.as_ptr(), config);
15 pulsar_client_configuration_free(config);
16
17 let producer = Box::into_raw(Box::new(std::ptr::null_mut() as *mut pulsar_producer_t));
18 let config = pulsar_producer_configuration_create();
19 let topic = CString::new("persistent://public/default/my-topic").unwrap();
20 let result = pulsar_client_create_producer(client, topic.as_ptr(), config, producer);
21
22 assert_eq!(
23 CStr::from_ptr(pulsar_result_str(result)).to_str().unwrap(),
24 "Ok"
25 );
26
27 let result = pulsar_producer_close(*producer);
28 pulsar_producer_free(*producer);
29 drop(producer);
30
31 assert_eq!(
32 CStr::from_ptr(pulsar_result_str(result)).to_str().unwrap(),
33 "Ok"
34 );
35
36 let result = pulsar_client_close(client);
37 pulsar_client_free(client);
38 drop(client);
39
40 assert_eq!(
41 CStr::from_ptr(pulsar_result_str(result)).to_str().unwrap(),
42 "Ok"
43 );
44 }
45}