fn same_dep_diff_vsns() {
    let test_deps = test_deps();
    let Layout{dep_srcs_dir, proj_dir, deps_commit_hashes, ..} =
        test_setup::create("same_dep_diff_vsns", &test_deps, &hashmap!{});
    let deps_file_conts = formatdoc!{
        "
            # This is the output directory.
            deps

            # These are the dependencies.
            my_scripts_v1 git git://localhost/my_scripts.git {}
            my_scripts_v2 git git://localhost/my_scripts.git {}
        ",
        deps_commit_hashes["my_scripts"][0],
        deps_commit_hashes["my_scripts"][1],
    };
    let deps_file = format!("{}/dpnd.txt", proj_dir);
    fs::write(&deps_file, &deps_file_conts)
        .expect("couldn't write dependency file");
    let cmd_result = test_setup::with_git_server(
        dep_srcs_dir,
        || {
            let mut cmd = test_setup::new_test_cmd(proj_dir.clone());

            cmd.assert()
        },
    );

    cmd_result.code(0).stdout("").stderr("");
    fs_check::assert_contents(
        &proj_dir,
        &Node::Dir(hashmap!{
            "dpnd.txt" => Node::File(&deps_file_conts),
            "deps" => Node::Dir(hashmap!{
                "current_dpnd.txt" => Node::AnyFile,
                "my_scripts_v1" => Node::Dir(hashmap!{
                    ".git" => Node::AnyDir,
                    "script.sh" => Node::File("echo 'hello world'"),
                }),
                "my_scripts_v2" => Node::Dir(hashmap!{
                    ".git" => Node::AnyDir,
                    "script.sh" => Node::File("echo 'hello, world!'"),
                }),
            }),
        }),
    );
}
// Given the dependency file contains two versions of the same dependency with
//     different names
// When the command is run
// Then dependencies are pulled to the correct locations with the correct
//     contents
Given the dependency file contains two versions of the same dependency with
different names
When the command is run
Then dependencies are pulled to the correct locations with the correct
contents
Given the dependency file contains two versions of the same dependency with different names When the command is run Then dependencies are pulled to the correct locations with the correct contents
fn same_dep_diff_vsns() {
    let test_deps = test_deps();
    let Layout{dep_srcs_dir, proj_dir, deps_commit_hashes, ..} =
        test_setup::create("same_dep_diff_vsns", &test_deps, &hashmap!{});
    let deps_file_conts = formatdoc!{
        "
            # This is the output directory.
            deps
            # These are the dependencies.
            my_scripts_v1 git git://localhost/my_scripts.git {}
            my_scripts_v2 git git://localhost/my_scripts.git {}
        ",
        deps_commit_hashes["my_scripts"][0],
        deps_commit_hashes["my_scripts"][1],
    };
    let deps_file = format!("{}/dpnd.txt", proj_dir);
    fs::write(&deps_file, &deps_file_conts)
        .expect("couldn't write dependency file");
    let cmd_result = test_setup::with_git_server(
        dep_srcs_dir,
        || {
            let mut cmd = test_setup::new_test_cmd(proj_dir.clone());
            cmd.assert()
        },
    );
    cmd_result.code(0).stdout("").stderr("");
    fs_check::assert_contents(
        &proj_dir,
        &Node::Dir(hashmap!{
            "dpnd.txt" => Node::File(&deps_file_conts),
            "deps" => Node::Dir(hashmap!{
                "current_dpnd.txt" => Node::AnyFile,
                "my_scripts_v1" => Node::Dir(hashmap!{
                    ".git" => Node::AnyDir,
                    "script.sh" => Node::File("echo 'hello world'"),
                }),
                "my_scripts_v2" => Node::Dir(hashmap!{
                    ".git" => Node::AnyDir,
                    "script.sh" => Node::File("echo 'hello, world!'"),
                }),
            }),
        }),
    );
}
fn same_dep_diff_vsns ( ) { let test_deps = test_deps ( ) ; let Layout { dep_srcs_dir , proj_dir , deps_commit_hashes , .. } = test_setup :: create ( " " , & test_deps , & hashmap ! { } ) ; let deps_file_conts = formatdoc ! { " " deps_commit_hashes [ " " ] [ 0 ] deps_commit_hashes [ " " ] [ 1 ] } ; let deps_file = format ! ( " " proj_dir ) ; fs :: write ( & deps_file , & deps_file_conts ) . expect ( " " ) ; let cmd_result = test_setup :: with_git_server ( dep_srcs_dir , | | { let mut cmd = test_setup :: new_test_cmd ( proj_dir . clone ( ) ) ; cmd . assert ( ) } , ) ; cmd_result . code ( 0 ) . stdout ( " " ) . stderr ( " " ) ; fs_check :: assert_contents ( & proj_dir , & Node :: Dir ( hashmap ! { " " Node File ( deps_file_conts ) " " Node Dir ( hashmap { " " Node AnyFile " " Node Dir ( hashmap { " " Node AnyDir " " Node File ( " " ) } ) " " Node Dir ( hashmap { " " Node AnyDir " " Node File ( " " ) } ) } ) } ) , ) ; }
Given the dependency file contains two versions of the same dependency with
different names
When the command is run
Then dependencies are pulled to the correct locations with the correct
contents
Given the dependency file contains two versions of the same dependency with different names When the command is run Then dependencies are pulled to the correct locations with the correct contents