ups 0.3.1

A rust implementaiton of a UPS file patcher
Documentation

use ups::{
    UpsError,
    UpsPatch,
    LoadError::*,
    CreateError::*,
    ApplyError::*,
};
mod common;
use common::*;
#[test]
fn throws_not_ups_file_error(){
    let source_content = load_file_content(SOURCE_PATH);
    let result = UpsPatch::load(&source_content);
    assert!(result.is_err());
    assert_eq!(result.unwrap_err(), UpsError::Load(IsNotUpsFile))
}
#[test]
fn throws_corrupt_file_error(){
    let mut content = load_file_content(PATCH_PATH_1);
    content[7] = content[7]+1;
    let result = UpsPatch::load(&content);
    assert!(result.is_err());
    assert_eq!(result.unwrap_err(), UpsError::Load(IsCorrupted))
}

#[test]
fn throws_wrong_source_error(){
    let patch_content = load_file_content(PATCH_PATH_1);
    let patch = UpsPatch::load(&patch_content).unwrap();
    let mut source_content = load_file_content(SOURCE_PATH);
    assert!(patch.file_is_source(&source_content));
    source_content[7] = source_content[7]+1;
    let result = patch.apply(&source_content);
    assert!(result.is_err());
    assert_eq!(result.unwrap_err(), UpsError::Apply(SourceMismatch))
}