use dto_derive::Dto;
#[derive(Debug, PartialEq)]
struct Entity {
pub field_a: String,
pub field_b: i32,
pub field_c: bool,
}
#[derive(Debug, PartialEq, Dto)]
#[dto(entity = "Entity")]
#[dto(map = "field_a: a")]
#[dto(map = "field_b: b")]
#[dto(map = "field_c: c")]
struct DtoRequest {
a: String,
b: i32,
c: bool,
}
#[derive(Debug, PartialEq, Dto)]
#[dto(entity = "Entity")]
#[dto(map = "a: field_a")]
#[dto(map = "b: field_b")]
#[dto(map = "c: field_c")]
struct DtoResponse {
a: String,
b: i32,
c: bool,
}
#[test]
fn dto_map_request() {
let request = DtoRequest {
a: "test_simple".to_string(),
b: 123i32,
c: true,
};
let expected = Entity {
field_a: "test_simple".to_string(),
field_b: 123i32,
field_c: true,
};
let actual: Entity = request.into();
assert_eq!(expected, actual);
}
#[test]
fn dto_map_response() {
let entity = Entity {
field_a: "test_simple".to_string(),
field_b: 123i32,
field_c: true,
};
let expected = DtoResponse {
a: "test_simple".to_string(),
b: 123i32,
c: true,
};
let actual: DtoResponse = entity.into();
assert_eq!(expected, actual);
}