fn parse()

in src/protocol/memcache/src/request/incr.rs [131:182]


    fn parse() {
        let parser = RequestParser::new();

        // basic command
        assert_eq!(
            parser.parse_request(b"incr 0 1\r\n"),
            Ok((
                &b""[..],
                Request::Incr(Incr {
                    key: b"0".to_vec().into_boxed_slice(),
                    value: 1,
                    noreply: false,
                })
            ))
        );

        // noreply
        assert_eq!(
            parser.parse_request(b"incr 0 1 noreply\r\n"),
            Ok((
                &b""[..],
                Request::Incr(Incr {
                    key: b"0".to_vec().into_boxed_slice(),
                    value: 1,
                    noreply: true,
                })
            ))
        );

        // alternate value
        assert_eq!(
            parser.parse_request(b"incr 0 42\r\n"),
            Ok((
                &b""[..],
                Request::Incr(Incr {
                    key: b"0".to_vec().into_boxed_slice(),
                    value: 42,
                    noreply: false,
                })
            ))
        );

        // trailing space doesn't matter
        assert_eq!(
            parser.parse_request(b"incr 0 1\r\n"),
            parser.parse_request(b"incr 0 1 \r\n"),
        );
        assert_eq!(
            parser.parse_request(b"incr 0 1 noreply\r\n"),
            parser.parse_request(b"incr 0 1 noreply \r\n"),
        );
    }