in eden/mononoke/walker/src/commands/detail/parse_node.rs [187:406]
fn test_node_type(node_type: &NodeType) -> Result<(), Error> {
let v = match node_type {
NodeType::Root => {
assert_eq!(Node::Root(UnitKey()), parse_node("Root")?);
assert_eq!(
"Err(parse_node expects Root not to be followed by any parts)",
format!("{:?}", parse_node("Root:garbage"))
);
}
NodeType::Bookmark => assert_eq!(
Node::Bookmark(BookmarkName::new("foo")?),
parse_node(&format!("Bookmark{}foo", NODE_SEP))?
),
NodeType::Changeset => assert_eq!(
node_type,
&parse_node(&format!("Changeset{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
),
NodeType::BonsaiHgMapping => assert_eq!(
node_type,
&parse_node(&format!("BonsaiHgMapping{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
),
NodeType::PhaseMapping => assert_eq!(
node_type,
&parse_node(&format!("PhaseMapping{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
),
NodeType::PublishedBookmarks => {
assert_eq!(
Node::PublishedBookmarks(UnitKey()),
parse_node("PublishedBookmarks")?
);
assert_eq!(
"Err(parse_node expects PublishedBookmarks not to be followed by any parts)",
format!("{:?}", parse_node("PublishedBookmarks:garbage"))
);
}
// Hg
NodeType::HgBonsaiMapping => assert_eq!(
node_type,
&parse_node(&format!("HgBonsaiMapping{}{}", NODE_SEP, SAMPLE_SHA1))?.get_type()
),
NodeType::HgChangeset => assert_eq!(
node_type,
&parse_node(&format!("HgChangeset{}{}", NODE_SEP, SAMPLE_SHA1))?.get_type()
),
NodeType::HgChangesetViaBonsai => assert_eq!(
node_type,
&parse_node(&format!("HgChangesetViaBonsai{}{}", NODE_SEP, SAMPLE_SHA1))?
.get_type()
),
NodeType::HgManifest => assert_eq!(
node_type,
&parse_node(&format!(
"HgManifest{}{}{}{}",
NODE_SEP, SAMPLE_SHA1, NODE_SEP, SAMPLE_PATH
))?
.get_type()
),
NodeType::HgFileEnvelope => assert_eq!(
node_type,
&parse_node(&format!("HgFileEnvelope{}{}", NODE_SEP, SAMPLE_SHA1))?.get_type()
),
NodeType::HgFileNode => assert_eq!(
node_type,
&parse_node(&format!(
"HgFileNode{}{}{}{}",
NODE_SEP, SAMPLE_SHA1, NODE_SEP, SAMPLE_PATH
))?
.get_type()
),
NodeType::HgManifestFileNode => assert_eq!(
node_type,
&parse_node(&format!(
"HgManifestFileNode{}{}{}{}",
NODE_SEP, SAMPLE_SHA1, NODE_SEP, SAMPLE_PATH
))?
.get_type()
),
// Content
NodeType::FileContent => assert_eq!(
node_type,
&parse_node(&format!("FileContent{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
),
NodeType::FileContentMetadata => assert_eq!(
node_type,
&parse_node(&format!("FileContentMetadata{}{}", NODE_SEP, SAMPLE_BLAKE2))?
.get_type()
),
NodeType::AliasContentMapping => {
assert_eq!(
node_type,
&parse_node(&format!(
"AliasContentMapping{}{}{}{}",
NODE_SEP, "Sha1", NODE_SEP, SAMPLE_SHA1
))?
.get_type()
);
assert_eq!(
node_type,
&parse_node(&format!(
"AliasContentMapping{}{}{}{}",
NODE_SEP, "Sha256", NODE_SEP, SAMPLE_SHA256
))?
.get_type()
);
}
NodeType::Blame => {
assert_eq!(
node_type,
&parse_node(&format!("Blame{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
);
}
NodeType::ChangesetInfo => {
assert_eq!(
node_type,
&parse_node(&format!("ChangesetInfo{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
);
}
NodeType::ChangesetInfoMapping => {
assert_eq!(
node_type,
&parse_node(&format!(
"ChangesetInfoMapping{}{}",
NODE_SEP, SAMPLE_BLAKE2
))?
.get_type()
);
}
NodeType::DeletedManifest => {
assert_eq!(
node_type,
&parse_node(&format!("DeletedManifest{}{}", NODE_SEP, SAMPLE_BLAKE2))?
.get_type()
);
}
NodeType::DeletedManifestMapping => {
assert_eq!(
node_type,
&parse_node(&format!(
"DeletedManifestMapping{}{}",
NODE_SEP, SAMPLE_BLAKE2
))?
.get_type()
);
}
NodeType::FastlogBatch => {
assert_eq!(
node_type,
&parse_node(&format!("FastlogBatch{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
);
}
NodeType::FastlogDir => {
assert_eq!(
node_type,
&parse_node(&format!("FastlogDir{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
);
}
NodeType::FastlogFile => {
assert_eq!(
node_type,
&parse_node(&format!("FastlogFile{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
);
}
NodeType::Fsnode => {
assert_eq!(
node_type,
&parse_node(&format!("Fsnode{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
);
}
NodeType::FsnodeMapping => {
assert_eq!(
node_type,
&parse_node(&format!("FsnodeMapping{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
);
}
NodeType::SkeletonManifest => {
assert_eq!(
node_type,
&parse_node(&format!("SkeletonManifest{}{}", NODE_SEP, SAMPLE_BLAKE2))?
.get_type()
);
}
NodeType::SkeletonManifestMapping => {
assert_eq!(
node_type,
&parse_node(&format!(
"SkeletonManifestMapping{}{}",
NODE_SEP, SAMPLE_BLAKE2
))?
.get_type()
);
}
NodeType::UnodeFile => {
assert_eq!(
node_type,
&parse_node(&format!(
"UnodeFile{}{}{}{:b}",
NODE_SEP, SAMPLE_BLAKE2, NODE_SEP, 0b00000011
))?
.get_type()
);
}
NodeType::UnodeManifest => {
assert_eq!(
node_type,
&parse_node(&format!(
"UnodeManifest{}{}{}{:b}",
NODE_SEP, SAMPLE_BLAKE2, NODE_SEP, 0b00000011
))?
.get_type()
);
}
NodeType::UnodeMapping => {
assert_eq!(
node_type,
&parse_node(&format!("UnodeMapping{}{}", NODE_SEP, SAMPLE_BLAKE2))?.get_type()
);
}
};
Ok(v)
}