scryfall-client 0.1.0

an wrapper for the scryfall API
#[cfg(test)]
mod search_builder {
    use crate::search_builder::cmc::Cmc;
    use crate::search_builder::format::Format;
    use crate::search_builder::is::*;
    use crate::search_builder::magic_type::MagicType;
    use crate::search_builder::not::Not;
    use crate::search_builder::or::Or;
    use crate::search_builder::{Builder, SearchBuilderTrait};

    #[test]
    fn empty() {
        assert_eq!(Builder::new().stringify(), "");
    }

    #[test]
    fn format() {
        assert_eq!(
            Builder::new().add(Format::new("standard")).stringify(),
            "f:standard"
        );
    }

    #[test]
    fn magic_type() {
        assert_eq!(
            Builder::new().add(MagicType::new("legendary")).stringify(),
            "t:legendary"
        );
    }

    #[test]
    fn or() {
        assert_eq!(
            Builder::new()
                .add(Or::new(
                    Format::new("standard"),
                    MagicType::new("legendary")
                ))
                .stringify(),
            "(f:standard or t:legendary)"
        );
    }

    #[test]
    fn not() {
        assert_eq!(
            Builder::new()
                .add(Not::new(MagicType::new("legendary")))
                .stringify(),
            "-t:legendary"
        );
    }

    #[test]
    fn cmc() {
        assert_eq!(Builder::new().add(Cmc::even()).stringify(), "cmc:even");
    }

    #[test]
    fn is_spell() {
        assert_eq!(Builder::new().add(IsSpell).stringify(), "is:spell");
    }

    #[test]
    fn is_permanent() {
        assert_eq!(Builder::new().add(IsPermanent).stringify(), "is:permanent");
    }

    #[test]
    fn is_buyabox() {
        assert_eq!(Builder::new().add(IsBuyABox).stringify(), "is:buyabox");
    }
}