fn consume_3()

in src/session/buffer.rs [277:309]


    fn consume_3() {
        let mut buffer = Buffer::with_capacity(8);
        assert_eq!(buffer.len(), 0);
        assert_eq!(buffer.available_capacity(), 8);
        assert!(buffer.is_empty());

        let content = b"END\r\n";
        let len = content.len();

        buffer.extend_from_slice(content);
        assert_eq!(buffer.len(), len);
        assert_eq!(buffer.available_capacity(), 3);
        assert!(!buffer.is_empty());

        // consume all but the last byte of content in the buffer, one byte at
        // a time
        // - buffer len decreases with each call to consume()
        // - buffer available capacity increases with each call to consume()
        for i in 1..len {
            buffer.consume(1);
            assert_eq!(buffer.len(), len - i);
            assert_eq!(buffer.available_capacity(), 3 + i);
            assert!(!buffer.is_empty());
        }

        // when consuming the final byte, the read/write offsets move to the
        // start of the buffer, and available capacity should be the original
        // buffer size
        buffer.consume(1);
        assert_eq!(buffer.len(), 0);
        assert_eq!(buffer.available_capacity(), 8);
        assert!(buffer.is_empty());
    }