#[cfg(any(test, feature = "test-support"))]
use crate::mock_client::{ExpectationBuilder, MockClient};
#[cfg(any(test, feature = "test-support"))]
pub trait ComputeMockHelpers {
fn expect_list_vms(
&mut self,
subscription_id: &str,
resource_group_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_get_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
expand: &str,
) -> ExpectationBuilder<'_>;
fn expect_create_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_delete_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_start_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_stop_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_deallocate_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_restart_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_get_instance_view(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_list_vmss(
&mut self,
subscription_id: &str,
resource_group_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_get_vmss(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_create_vmss(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_delete_vmss(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_list_vmss_instances(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_start_vmss_instances(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_stop_vmss_instances(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_list_disks(
&mut self,
subscription_id: &str,
resource_group_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_list_disks_in_subscription(
&mut self,
subscription_id: &str,
) -> ExpectationBuilder<'_>;
fn expect_get_disk(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_create_disk(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_delete_disk(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_update_disk(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_delete_snapshot(
&mut self,
subscription_id: &str,
resource_group_name: &str,
snapshot_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_grant_access(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_revoke_access(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> ExpectationBuilder<'_>;
}
#[cfg(any(test, feature = "test-support"))]
impl ComputeMockHelpers for MockClient {
fn expect_list_vms(
&mut self,
subscription_id: &str,
resource_group_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines"
);
self.expect_get(&path)
}
fn expect_get_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
expand: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let mut path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}"
);
let mut __qp: Vec<String> = Vec::new();
if !expand.is_empty() {
__qp.push(format!("$expand={}", expand));
}
if !__qp.is_empty() {
path = format!("{}?{}", path, __qp.join("&"));
}
self.expect_get(&path)
}
fn expect_create_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}"
);
self.expect_put(&path)
}
fn expect_delete_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}"
);
self.expect_delete(&path)
}
fn expect_start_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/start"
);
self.expect_post(&path)
}
fn expect_stop_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/powerOff"
);
self.expect_post(&path)
}
fn expect_deallocate_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/deallocate"
);
self.expect_post(&path)
}
fn expect_restart_vm(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/restart"
);
self.expect_post(&path)
}
fn expect_get_instance_view(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachines/{vm_name}/instanceView"
);
self.expect_get(&path)
}
fn expect_list_vmss(
&mut self,
subscription_id: &str,
resource_group_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachineScaleSets"
);
self.expect_get(&path)
}
fn expect_get_vmss(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachineScaleSets/{vm_scale_set_name}"
);
self.expect_get(&path)
}
fn expect_create_vmss(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachineScaleSets/{vm_scale_set_name}"
);
self.expect_put(&path)
}
fn expect_delete_vmss(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachineScaleSets/{vm_scale_set_name}"
);
self.expect_delete(&path)
}
fn expect_list_vmss_instances(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachineScaleSets/{vm_scale_set_name}/virtualMachines"
);
self.expect_get(&path)
}
fn expect_start_vmss_instances(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachineScaleSets/{vm_scale_set_name}/start"
);
self.expect_post(&path)
}
fn expect_stop_vmss_instances(
&mut self,
subscription_id: &str,
resource_group_name: &str,
vm_scale_set_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/virtualMachineScaleSets/{vm_scale_set_name}/poweroff"
);
self.expect_post(&path)
}
fn expect_list_disks(
&mut self,
subscription_id: &str,
resource_group_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/disks"
);
self.expect_get(&path)
}
fn expect_list_disks_in_subscription(
&mut self,
subscription_id: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!("/subscriptions/{subscription_id}/providers/Microsoft.Compute/disks");
self.expect_get(&path)
}
fn expect_get_disk(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/disks/{disk_name}"
);
self.expect_get(&path)
}
fn expect_create_disk(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/disks/{disk_name}"
);
self.expect_put(&path)
}
fn expect_delete_disk(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/disks/{disk_name}"
);
self.expect_delete(&path)
}
fn expect_update_disk(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/disks/{disk_name}"
);
self.expect_patch(&path)
}
fn expect_delete_snapshot(
&mut self,
subscription_id: &str,
resource_group_name: &str,
snapshot_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/snapshots/{snapshot_name}"
);
self.expect_delete(&path)
}
fn expect_grant_access(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/disks/{disk_name}/beginGetAccess"
);
self.expect_post(&path)
}
fn expect_revoke_access(
&mut self,
subscription_id: &str,
resource_group_name: &str,
disk_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Compute/disks/{disk_name}/endGetAccess"
);
self.expect_post(&path)
}
}