git-semver 0.1.1

Parse and calculate semantic version information from a Git repository.
Documentation
use super::*;

struct TestCase {
    input: String,
    expected: String,
}

#[test]
fn test_increment_major() {
    let test_cases = vec![
        TestCase {
            input: String::from("1.2.3"),
            expected: String::from("2.0.0"),
        },
        TestCase {
            input: String::from("0.1.0"),
            expected: String::from("1.0.0"),
        },
        TestCase {
            input: String::from("99.0.0"),
            expected: String::from("100.0.0"),
        },
    ];

    for case in test_cases {
        let input = semver::Version::parse(case.input.as_str()).expect("failed to parse version");
        let expected = semver::Version::parse(case.expected.as_str()).expect("failed to parse version");
        let result = increment_major(input);
        assert_eq!(result, expected)
    }
}

#[test]
fn test_increment_minor() {
    let test_cases = vec![
        TestCase {
            input: String::from("1.2.3"),
            expected: String::from("1.3.0"),
        },
        TestCase {
            input: String::from("0.1.0"),
            expected: String::from("0.2.0"),
        },
        TestCase {
            input: String::from("99.0.0"),
            expected: String::from("99.1.0"),
        },
    ];

    for case in test_cases {
        let input = semver::Version::parse(case.input.as_str()).expect("failed to parse version");
        let expected = semver::Version::parse(case.expected.as_str()).expect("failed to parse version");
        let result = increment_minor(input);
        assert_eq!(result, expected)
    }
}

#[test]
fn test_increment_patch() {
    let test_cases = vec![
        TestCase {
            input: String::from("1.2.3"),
            expected: String::from("1.2.4"),
        },
        TestCase {
            input: String::from("0.1.0"),
            expected: String::from("0.1.1"),
        },
        TestCase {
            input: String::from("99.0.0"),
            expected: String::from("99.0.1"),
        },
    ];

    for case in test_cases {
        let input = semver::Version::parse(case.input.as_str()).expect("failed to parse version");
        let expected = semver::Version::parse(case.expected.as_str()).expect("failed to parse version");
        let result = increment_patch(input);
        assert_eq!(result, expected)
    }
}