fn test_node_type()

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)
    }