blob: ad5e3050242c916e0fa6ae5ad7b8f4e5c7cd74dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
//! ref: composer/tests/Composer/Test/Downloader/GitDownloaderTest.php
use shirabe::util::filesystem::Filesystem;
use tempfile::TempDir;
fn set_up() -> TempDir {
// skipIfNotExecutable('git')
let () = todo!();
// initGitVersion('1.0.0') resets the Composer\Util\Git static version cache via
// reflection; the static cache is not reachable from a test here.
#[allow(unreachable_code)]
{
let _fs = Filesystem::new(None);
TempDir::new().unwrap()
}
}
fn tear_down(working_dir: &std::path::Path) {
if working_dir.is_dir() {
let mut fs = Filesystem::new(None);
fs.remove_directory(working_dir).unwrap();
}
// initGitVersion(false) resets the Composer\Util\Git static version cache via
// reflection; the static cache is not reachable from a test here.
todo!()
}
struct TearDown {
working_dir: std::path::PathBuf,
}
impl TearDown {
fn new(working_dir: std::path::PathBuf) -> Self {
TearDown { working_dir }
}
}
impl Drop for TearDown {
fn drop(&mut self) {
tear_down(&self.working_dir);
}
}
// These construct a GitDownloader with a mocked IO/Config and a mocked ProcessExecutor to
// feed git command output; mocking is not available, and a real HttpDownloader reaches
// curl_multi_init (todo!()).
macro_rules! stub {
($name:ident) => {
#[test]
#[ignore = "mocks ProcessExecutor/IO and needs an HttpDownloader (curl_multi_init todo!())"]
fn $name() {
let working_dir = set_up();
let _tear_down = TearDown::new(working_dir.path().to_path_buf());
let _ = &working_dir;
todo!()
}
};
}
stub!(test_download_for_package_without_source_reference);
stub!(test_download);
stub!(test_download_with_cache);
stub!(test_download_uses_various_protocols_and_sets_push_url_for_github);
stub!(test_download_and_set_push_url_use_custom_various_protocols_for_github);
stub!(test_download_throws_runtime_exception_if_git_command_fails);
stub!(test_updatefor_package_without_source_reference);
stub!(test_update);
stub!(test_update_with_new_repo_url);
stub!(test_update_throws_runtime_exception_if_git_command_fails);
stub!(test_update_doesnt_throws_runtime_exception_if_git_command_fails_at_first_but_is_able_to_recover);
stub!(test_downgrade_shows_appropriate_message);
stub!(test_not_using_downgrading_with_references);
stub!(test_remove);
stub!(test_get_installation_source);
|