warpgate_api 0.17.6

APIs for working with Warpgate plugins.
Documentation
use warpgate_api::VirtualPath;

mod virtual_path {
    use super::*;

    mod parent_real {
        use super::*;

        #[test]
        fn returns_some_parent() {
            let vp = VirtualPath::Real("/some/absolute/path".into());

            assert_eq!(
                vp.parent().unwrap(),
                VirtualPath::Real("/some/absolute".into())
            );
        }

        #[test]
        fn returns_none_at_root() {
            let vp = VirtualPath::Real("/".into());

            assert_eq!(vp.parent(), None);
        }
    }

    mod parent_virtual {
        use super::*;

        #[test]
        fn returns_some_parent() {
            let vp = VirtualPath::Virtual {
                path: "/root/path".into(),
                virtual_prefix: "/root".into(),
                real_prefix: "/some/absolute".into(),
            };

            assert_eq!(
                vp.parent().unwrap(),
                VirtualPath::Virtual {
                    path: "/root".into(),
                    virtual_prefix: "/root".into(),
                    real_prefix: "/some/absolute".into(),
                }
            );
        }

        #[test]
        fn returns_none_at_root() {
            let vp = VirtualPath::Virtual {
                path: "/root".into(),
                virtual_prefix: "/root".into(),
                real_prefix: "/some/absolute".into(),
            };

            assert_eq!(vp.parent(), None);

            let vp = VirtualPath::Virtual {
                path: "/".into(),
                virtual_prefix: "/root".into(),
                real_prefix: "/some/absolute".into(),
            };

            assert_eq!(vp.parent(), None);
        }
    }
}