diff --git a/bin/src/lib.rs b/bin/src/lib.rs index 0aab49b..8e285ae 100644 --- a/bin/src/lib.rs +++ b/bin/src/lib.rs @@ -2,4 +2,4 @@ mod cli_exit_codes; mod control; pub use cli_exit_codes::*; -pub use control::{run_tool_on_merge_scenario,run_diff_on_files}; +pub use control::{run_diff_on_files, run_tool_on_merge_scenario}; diff --git a/bin/tests/cli.rs b/bin/tests/cli.rs index f66f39c..edae8f1 100644 --- a/bin/tests/cli.rs +++ b/bin/tests/cli.rs @@ -25,3 +25,25 @@ fn if_there_is_no_conflict_it_returns_valid_exit_code() { .assert() .code(bin::SUCCESS_WITHOUT_CONFLICTS); } + +#[test] +fn if_i_am_running_on_diff_mode_and_files_fully_match_it_returns_zero() { + let mut cmd = Command::cargo_bin("generic-merge").unwrap(); + cmd.arg("--diff-only") + .arg("--left-path=tests/diff_scenarios/java_files_full_match/left.java") + .arg("--right-path=tests/diff_scenarios/java_files_full_match/right.java") + .arg("--language=java") + .assert() + .code(bin::SUCCESS_FILES_FULLY_MATCH); +} + +#[test] +fn if_i_am_running_on_diff_mode_and_files_do_not_fully_match_it_returns_one() { + let mut cmd = Command::cargo_bin("generic-merge").unwrap(); + cmd.arg("--diff-only") + .arg("--left-path=tests/diff_scenarios/java_files_not_fully_matching/left.java") + .arg("--right-path=tests/diff_scenarios/java_files_not_fully_matching/right.java") + .arg("--language=java") + .assert() + .code(bin::SUCCESS_FILES_DO_NOT_FULLY_MATCH); +} diff --git a/bin/tests/diff_scenarios/java_files_full_match/left.java b/bin/tests/diff_scenarios/java_files_full_match/left.java new file mode 100644 index 0000000..d945670 --- /dev/null +++ b/bin/tests/diff_scenarios/java_files_full_match/left.java @@ -0,0 +1,11 @@ +public class Main { + static { + int x = 2; + } + + public static void main() { + int a = 0; + } + + public static void teste() {} +} diff --git a/bin/tests/diff_scenarios/java_files_full_match/right.java b/bin/tests/diff_scenarios/java_files_full_match/right.java new file mode 100644 index 0000000..16f477a --- /dev/null +++ b/bin/tests/diff_scenarios/java_files_full_match/right.java @@ -0,0 +1,11 @@ +public class Main { + static { + int x = 2; + } + + public static void teste() {} + + public static void main() { + int a = 0; + } +} diff --git a/bin/tests/diff_scenarios/java_files_not_fully_matching/left.java b/bin/tests/diff_scenarios/java_files_not_fully_matching/left.java new file mode 100644 index 0000000..88402ec --- /dev/null +++ b/bin/tests/diff_scenarios/java_files_not_fully_matching/left.java @@ -0,0 +1,11 @@ +public class Main { + static { + int x = 2; + } + + public static void main() { + int a = 2; + } + + public static void teste() {} +} diff --git a/bin/tests/diff_scenarios/java_files_not_fully_matching/right.java b/bin/tests/diff_scenarios/java_files_not_fully_matching/right.java new file mode 100644 index 0000000..16f477a --- /dev/null +++ b/bin/tests/diff_scenarios/java_files_not_fully_matching/right.java @@ -0,0 +1,11 @@ +public class Main { + static { + int x = 2; + } + + public static void teste() {} + + public static void main() { + int a = 0; + } +}