Moved delete into action module.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 0s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 0s
This commit is contained in:
65
src/action/delete.rs
Normal file
65
src/action/delete.rs
Normal file
@@ -0,0 +1,65 @@
|
||||
use crate::{
|
||||
name::NameType,
|
||||
message::MessageAction,
|
||||
};
|
||||
use super::Query;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Delete {
|
||||
doc_name: NameType,
|
||||
query: Query,
|
||||
}
|
||||
|
||||
impl Delete {
|
||||
pub fn new<NT>(name: NT) -> Self where NT: Into<NameType> {
|
||||
Self {
|
||||
doc_name: name.into(),
|
||||
query: Query::internal(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_query(&self) -> &Query {
|
||||
&self.query
|
||||
}
|
||||
|
||||
pub fn get_query_mut(&mut self) -> &mut Query {
|
||||
&mut self.query
|
||||
}
|
||||
}
|
||||
|
||||
impl MessageAction for Delete {
|
||||
fn doc_name(&self) -> &NameType {
|
||||
&self.doc_name
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod deletes {
|
||||
use crate::{
|
||||
action::{Calculation, Operand},
|
||||
name::test_support::random_name
|
||||
};
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn can_create_delete_request() {
|
||||
let name = random_name();
|
||||
let expected: NameType = name.clone().into();
|
||||
let delete = Delete::new(name);
|
||||
assert_eq!(delete.doc_name(), &expected);
|
||||
assert_eq!(delete.get_query().iter().count(), 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn can_delete_query_be_added_to() {
|
||||
let name = random_name();
|
||||
let expected: NameType = name.clone().into();
|
||||
let mut delete = Delete::new(name);
|
||||
let query = delete.get_query_mut();
|
||||
let mut calc = Calculation::new(Operand::Equal);
|
||||
calc.add_value("something").unwrap();
|
||||
query.add(random_name(), calc);
|
||||
assert_eq!(delete.doc_name(), &expected);
|
||||
assert_eq!(delete.get_query().iter().count(), 1);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
use super::{Addition, DocDef, Query, Records, Reply, Show, UserAction};
|
||||
use super::{Addition, Delete, DocDef, Query, Records, Reply, Show, UserAction};
|
||||
use crate::{
|
||||
message::{
|
||||
wrapper::{Delete, Update},
|
||||
wrapper::Update,
|
||||
MessageAction,
|
||||
},
|
||||
mtterror::MTTError,
|
||||
@@ -13,6 +13,7 @@ use crate::{
|
||||
pub enum MsgAction {
|
||||
Addition(Addition),
|
||||
Create(DocDef),
|
||||
Delete(Delete),
|
||||
Error(MTTError),
|
||||
OnAddition(Records),
|
||||
OnDelete(Records),
|
||||
@@ -23,7 +24,6 @@ pub enum MsgAction {
|
||||
Register(Register),
|
||||
Reply(Reply),
|
||||
Show(Show),
|
||||
Delete(Delete),
|
||||
Update(Update),
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ impl MessageAction for MsgAction {
|
||||
match self {
|
||||
Self::Addition(data) => data.doc_name(),
|
||||
Self::Create(data) => data.doc_name(),
|
||||
Self::Delete(data) => data.doc_name(),
|
||||
Self::Error(data) => data.doc_name(),
|
||||
Self::OnAddition(data) => data.doc_name(),
|
||||
Self::OnDelete(data) => data.doc_name(),
|
||||
|
||||
Reference in New Issue
Block a user