fn test_sign_case4()

in sign/src/sign.rs [379:427]


    fn test_sign_case4() {
        init();

        let mut headers = HeaderMap::new();
        headers.insert(CONTENT_TYPE, HeaderValue::from_static("application/json"));
        let body = r#"
            {"key": "value"}
        "#;

        let signature = sign_v1(
            "test-access-key-id",
            "test-access-key",
            Some("test-security-token"),
            Method::POST,
            "/logstores/test/shards/2",
            &mut headers,
            [
                ("type", "log"),
                ("count", "1000"),
                ("cursor", "MTczNzY2OTAzNjAxNzIxODQ1NA=="),
            ]
            .into(),
            Some(body.as_bytes()),
        )
        .unwrap();
        assert_eq!(
            signature,
            "LOG test-access-key-id:K3rw5WXRe77aZ/meSyEa8NNUYFc="
        );
        assert!(headers.contains_key(LOG_AUTHORIZATION));
        assert!(headers.contains_key(DATE));
        assert!(headers.contains_key(LOG_API_VERSION));
        assert!(headers.contains_key(LOG_SIGNATURE_METHOD));
        assert!(headers.contains_key(CONTENT_LENGTH));
        assert!(headers.contains_key(LOG_CONTENT_MD5));
        assert!(headers.contains_key(LOG_ACS_SECURITY_TOKEN));
        assert_eq!(
            "CE688F8D1AC3ED309BA9BE0A5ABAFCE5",
            headers.get(LOG_CONTENT_MD5).unwrap().to_str().unwrap()
        );
        assert_eq!(
            "test-security-token",
            headers
                .get(LOG_ACS_SECURITY_TOKEN)
                .unwrap()
                .to_str()
                .unwrap()
        );
    }