Added initial from bytes to databases.
This commit is contained in:
		@@ -29,7 +29,7 @@ impl CacheType {
 | 
			
		||||
        output.push(0);
 | 
			
		||||
        match self {
 | 
			
		||||
            CacheType::Raw(s) => output.append(&mut s.as_bytes().to_vec()),
 | 
			
		||||
            CacheType::DBMap(_) => todo!(),
 | 
			
		||||
            CacheType::DBMap(_) => (),
 | 
			
		||||
        }
 | 
			
		||||
        return output;
 | 
			
		||||
    }
 | 
			
		||||
@@ -58,6 +58,7 @@ impl CacheType {
 | 
			
		||||
                }
 | 
			
		||||
                Ok(CacheType::Raw(str::from_utf8(&output).unwrap().to_string()))
 | 
			
		||||
            }
 | 
			
		||||
            "DBMap" => Ok(CacheType::DBMap(Databases::new())),
 | 
			
		||||
            _ => Err(DBError::new("data corruption")),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -77,51 +78,15 @@ mod databases {
 | 
			
		||||
    use super::*;
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_databases() {
 | 
			
		||||
    fn get_bytes_for_new() {
 | 
			
		||||
        Databases::new();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(test)]
 | 
			
		||||
mod raw {
 | 
			
		||||
    use super::*;
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_bytes() {
 | 
			
		||||
        let data = "addams";
 | 
			
		||||
        let holder = CacheType::Raw(data.to_string());
 | 
			
		||||
        let mut expected = holder.entry_type().into_bytes();
 | 
			
		||||
        expected.push(0);
 | 
			
		||||
        expected.append(&mut data.as_bytes().to_vec());
 | 
			
		||||
        let output = holder.to_bytes();
 | 
			
		||||
        assert_eq!(output, expected);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn from_bytes() {
 | 
			
		||||
        let holder = CacheType::Raw("stored item".to_string());
 | 
			
		||||
        let data = holder.to_bytes();
 | 
			
		||||
        let output = CacheType::from_bytes(data).unwrap();
 | 
			
		||||
        assert_eq!(output.to_string(), holder.to_string());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(test)]
 | 
			
		||||
mod enum_ctype {
 | 
			
		||||
    use super::*;
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_raw_type() {
 | 
			
		||||
        let holder = CacheType::Raw("nothing important".to_string());
 | 
			
		||||
        assert_eq!(holder.entry_type(), "Raw");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_dbmap_type() {
 | 
			
		||||
        let holder = CacheType::DBMap(Databases::new());
 | 
			
		||||
        assert_eq!(holder.entry_type(), "DBMap");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn bad_file_header() {
 | 
			
		||||
        let mut data: Vec<u8> = Vec::new();
 | 
			
		||||
@@ -155,4 +120,52 @@ mod enum_ctype {
 | 
			
		||||
            Err(err) => assert_eq!(err.to_string(), "empty file"),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_raw_type() {
 | 
			
		||||
        let holder = CacheType::Raw("nothing important".to_string());
 | 
			
		||||
        assert_eq!(holder.entry_type(), "Raw");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_raw_bytes() {
 | 
			
		||||
        let data = "addams";
 | 
			
		||||
        let holder = CacheType::Raw(data.to_string());
 | 
			
		||||
        let mut expected = holder.entry_type().into_bytes();
 | 
			
		||||
        expected.push(0);
 | 
			
		||||
        expected.append(&mut data.as_bytes().to_vec());
 | 
			
		||||
        let output = holder.to_bytes();
 | 
			
		||||
        assert_eq!(output, expected);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn from_raw_bytes() {
 | 
			
		||||
        let holder = CacheType::Raw("stored item".to_string());
 | 
			
		||||
        let data = holder.to_bytes();
 | 
			
		||||
        let output = CacheType::from_bytes(data).unwrap();
 | 
			
		||||
        assert_eq!(output.to_string(), holder.to_string());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_dbmap_type() {
 | 
			
		||||
        let holder = CacheType::DBMap(Databases::new());
 | 
			
		||||
        assert_eq!(holder.entry_type(), "DBMap");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_new_databases_bytes() {
 | 
			
		||||
        let holder = CacheType::DBMap(Databases::new());
 | 
			
		||||
        let mut expected = "DBMap".as_bytes().to_vec();
 | 
			
		||||
        expected.push(0);
 | 
			
		||||
        let output = holder.to_bytes();
 | 
			
		||||
        assert_eq!(output, expected);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn from_new_databases_bytes() {
 | 
			
		||||
        let mut data = "DBMap".as_bytes().to_vec();
 | 
			
		||||
        data.push(0);
 | 
			
		||||
        let output = CacheType::from_bytes(data).unwrap();
 | 
			
		||||
        assert_eq!(output.entry_type(), "DBMap");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user