use crate::types::{DynIden, IntoIden};
#[derive(Debug, Clone)]
pub struct DropEventStatement {
pub(crate) name: Option<DynIden>,
pub(crate) if_exists: bool,
}
impl DropEventStatement {
pub fn new() -> Self {
Self {
name: None,
if_exists: false,
}
}
pub fn name<N: IntoIden>(&mut self, name: N) -> &mut Self {
self.name = Some(name.into_iden());
self
}
pub fn if_exists(&mut self) -> &mut Self {
self.if_exists = true;
self
}
}
impl Default for DropEventStatement {
fn default() -> Self {
Self::new()
}
}
#[cfg(test)]
mod tests {
use super::*;
use rstest::*;
#[rstest]
fn test_drop_event_new() {
let stmt = DropEventStatement::new();
assert!(stmt.name.is_none());
assert!(!stmt.if_exists);
}
#[rstest]
fn test_drop_event_name() {
let mut stmt = DropEventStatement::new();
stmt.name("my_event");
assert_eq!(stmt.name.as_ref().unwrap().to_string(), "my_event");
}
#[rstest]
fn test_drop_event_if_exists() {
let mut stmt = DropEventStatement::new();
stmt.if_exists();
assert!(stmt.if_exists);
}
#[rstest]
fn test_drop_event_name_and_if_exists() {
let mut stmt = DropEventStatement::new();
stmt.name("my_event").if_exists();
assert_eq!(stmt.name.as_ref().unwrap().to_string(), "my_event");
assert!(stmt.if_exists);
}
#[rstest]
fn test_drop_event_if_exists_and_name() {
let mut stmt = DropEventStatement::new();
stmt.if_exists().name("my_event");
assert_eq!(stmt.name.as_ref().unwrap().to_string(), "my_event");
assert!(stmt.if_exists);
}
}