Text Practice Mode
Rust Programming Language Sample Code
created Jun 10th 2023, 08:04 by cryarchy
1
149 words
19 completed
0
Rating visible after 3 or more votes
saving score / loading statistics ...
00:00
use serde::Deserialize;
use validator::Validate;
use helpers::is_object_id;
#[derive(Debug, Deserialize, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ICreateMaterialSpecification {
#[validate(required)]
pub name: Option<String>,
#[validate(required, custom = "is_object_id")]
pub added_by: Option<String>,
}
#[cfg(test)]
mod tests {
use super::*;
use helpers::{has_error, VError};
use mongodb::bson::oid::ObjectId;
#[test]
fn name_is_required() {
let company_data = ICreateMaterialSpecification {
name: None,
added_by: Some(ObjectId::new().to_hex()),
};
let result = company_data.validate();
let v_error = VError {
code: "required",
message: None,
};
let error_found = has_error(&result, "name", &v_error);
assert!(error_found);
}
#[test]
fn added_by_is_required() {
let company_data = ICreateMaterialSpecification {
name: None,
added_by: None,
};
let result = company_data.validate();
let v_error = VError {
code: "required",
message: None,
};
let error_found = has_error(&result, "added_by", &v_error);
assert!(error_found);
}
#[test]
fn added_by_is_an_object_id() {
let company_data = ICreateMaterialSpecification {
name: None,
added_by: Some(String::from("invalid id")),
};
let result = company_data.validate();
let v_error = VError {
code: "object_id",
message: None,
};
let error_found = has_error(&result, "added_by", &v_error);
assert!(error_found);
}
}
use validator::Validate;
use helpers::is_object_id;
#[derive(Debug, Deserialize, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ICreateMaterialSpecification {
#[validate(required)]
pub name: Option<String>,
#[validate(required, custom = "is_object_id")]
pub added_by: Option<String>,
}
#[cfg(test)]
mod tests {
use super::*;
use helpers::{has_error, VError};
use mongodb::bson::oid::ObjectId;
#[test]
fn name_is_required() {
let company_data = ICreateMaterialSpecification {
name: None,
added_by: Some(ObjectId::new().to_hex()),
};
let result = company_data.validate();
let v_error = VError {
code: "required",
message: None,
};
let error_found = has_error(&result, "name", &v_error);
assert!(error_found);
}
#[test]
fn added_by_is_required() {
let company_data = ICreateMaterialSpecification {
name: None,
added_by: None,
};
let result = company_data.validate();
let v_error = VError {
code: "required",
message: None,
};
let error_found = has_error(&result, "added_by", &v_error);
assert!(error_found);
}
#[test]
fn added_by_is_an_object_id() {
let company_data = ICreateMaterialSpecification {
name: None,
added_by: Some(String::from("invalid id")),
};
let result = company_data.validate();
let v_error = VError {
code: "object_id",
message: None,
};
let error_found = has_error(&result, "added_by", &v_error);
assert!(error_found);
}
}
