Skip to content

Commit e9397db

Browse files
author
Steve Lee (POWERSHELL HE/HIM) (from Dev Box)
committed
change helper to return Option removing unnecessary match, add get test
1 parent 432a2d2 commit e9397db

File tree

2 files changed

+16
-16
lines changed

2 files changed

+16
-16
lines changed

registry/src/registry_helper.rs

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,7 @@ impl RegistryHelper {
7272
Ok(Registry {
7373
key_path: self.config.key_path.clone(),
7474
value_name: Some(value_name.clone()),
75-
value_data: match value {
76-
Data::None => None,
77-
_ => Some(convert_reg_value(&value)?)
78-
},
75+
value_data: convert_reg_value(&value)?,
7976
..Default::default()
8077
})
8178
} else {
@@ -169,10 +166,7 @@ impl RegistryHelper {
169166
if self.what_if {
170167
return Ok(Some(Registry {
171168
key_path: self.config.key_path.clone(),
172-
value_data: match data {
173-
Data::None => None,
174-
_ => Some(convert_reg_value(&data)?),
175-
},
169+
value_data: convert_reg_value(&data)?,
176170
value_name: self.config.value_name.clone(),
177171
metadata: if what_if_metadata.is_empty() { None } else { Some(Metadata { what_if: Some(what_if_metadata) })},
178172
..Default::default()
@@ -323,18 +317,18 @@ fn get_parent_key_path(key_path: &str) -> &str {
323317
}
324318
}
325319

326-
fn convert_reg_value(value: &Data) -> Result<RegistryValueData, RegistryError> {
320+
fn convert_reg_value(value: &Data) -> Result<Option<RegistryValueData>, RegistryError> {
327321
match value {
328-
Data::String(s) => Ok(RegistryValueData::String(s.to_string_lossy())),
329-
Data::ExpandString(s) => Ok(RegistryValueData::ExpandString(s.to_string_lossy())),
330-
Data::Binary(b) => Ok(RegistryValueData::Binary(b.clone())),
331-
Data::U32(d) => Ok(RegistryValueData::DWord(*d)),
322+
Data::String(s) => Ok(Some(RegistryValueData::String(s.to_string_lossy()))),
323+
Data::ExpandString(s) => Ok(Some(RegistryValueData::ExpandString(s.to_string_lossy()))),
324+
Data::Binary(b) => Ok(Some(RegistryValueData::Binary(b.clone()))),
325+
Data::U32(d) => Ok(Some(RegistryValueData::DWord(*d))),
332326
Data::MultiString(m) => {
333327
let m: Vec<String> = m.iter().map(|s| s.to_string_lossy()).collect();
334-
Ok(RegistryValueData::MultiString(m))
328+
Ok(Some(RegistryValueData::MultiString(m)))
335329
},
336-
Data::U64(q) => Ok(RegistryValueData::QWord(*q)),
337-
Data::None => Ok(RegistryValueData::None),
330+
Data::U64(q) => Ok(Some(RegistryValueData::QWord(*q))),
331+
Data::None => Ok(None),
338332
_ => Err(RegistryError::UnsupportedValueDataType)
339333
}
340334
}

registry/tests/registry.config.set.tests.ps1

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ Describe 'registry config set tests' {
9191
$out.results[0].result.afterState.valueName | Should -BeExactly 'Test'
9292
$out.results[0].result.afterState.valueData | Should -BeNullOrEmpty
9393

94+
$out = dsc config get -i $configYaml | ConvertFrom-Json
95+
$LASTEXITCODE | Should -Be 0
96+
$out.results[0].result.actualState.keyPath | Should -BeExactly 'HKCU\1'
97+
$out.results[0].result.actualState.valueName | Should -BeExactly 'Test'
98+
$out.results[0].result.actualState.valueData | Should -BeNullOrEmpty
99+
94100
Remove-Item -Path 'HKCU:\1' -Recurse -ErrorAction Ignore
95101
}
96102
}

0 commit comments

Comments
 (0)