dsh_api 0.10.0

DSH resource management API client
Documentation
use dsh_api::types::{ApplicationSecret, ManagedStreamId, ManagedTenant, ManagedTenantServices, ManagedTenantServicesName};

#[test]
fn test_application_secret_new() {
  let secret = ApplicationSecret::new("secret_name", &["KEY1", "KEY2"]);
  assert_eq!(secret.name, "secret_name");
  assert_eq!(secret.injections.len(), 2);
  assert_eq!(secret.injections.first().unwrap().get("env").unwrap(), "KEY1");
  assert_eq!(secret.injections.get(1).unwrap().get("env").unwrap(), "KEY2");
}

#[test]
fn test_managed_stream_id_new() {
  let managed_stream_id = ManagedStreamId::new("manager", "stream-id");
  assert_eq!(*managed_stream_id, "manager---stream-id");
}

#[test]
#[should_panic]
fn test_managed_stream_id_new_panic_on_empty_manager() {
  ManagedStreamId::new("", "stream-id");
}

#[test]
#[should_panic(expected = "manager---stream_id is not a valid managed stream id")]
fn test_managed_stream_id_new_panic_on_underscore() {
  ManagedStreamId::new("manager", "stream_id");
}

#[test]
fn test_managed_tenant_new() {
  let managed_tenant = ManagedTenant::new("manager", "tenant");
  assert_eq!(managed_tenant.manager, "manager");
  assert_eq!(managed_tenant.name, "tenant");
  assert_eq!(managed_tenant.services.len(), 3);
  assert_eq!(managed_tenant.services, vec![
    ManagedTenantServices { enabled: true, name: ManagedTenantServicesName::Monitoring },
    ManagedTenantServices { enabled: false, name: ManagedTenantServicesName::Tracing },
    ManagedTenantServices { enabled: false, name: ManagedTenantServicesName::Vpn },
  ]);
}