mz_rusoto_route53 0.46.0

AWS SDK for Rust - Amazon Route 53 @ 2013-04-01
Documentation
use crate::custom::util::quote_txt_record;
use crate::generated::{
    ListResourceRecordSetsError, ListResourceRecordSetsRequest, Route53, Route53Client,
};
use rusoto_core::{Region, RusotoError};

use rusoto_mock::*;

#[tokio::test]
async fn test_parse_no_such_hosted_zone_error() {
    let mock = MockRequestDispatcher::with_status(404).with_body(
        r#"<?xml version="1.0"?>
            <ErrorResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
                <Error>
                    <Type>Sender</Type>
                    <Code>NoSuchHostedZone</Code>
                    <Message>No hosted zone found with ID: NO-SUCH-ZONE</Message>
                </Error>
                <RequestId>20c2984f-279e-11e8-9a16-83e7725d8022</RequestId>
            </ErrorResponse>"#,
    );

    let request = ListResourceRecordSetsRequest {
        hosted_zone_id: "NO-SUCH-ZONE".to_owned(),
        ..Default::default()
    };

    let client = Route53Client::new_with(mock, MockCredentialsProvider, Region::UsEast1);
    let result = client.list_resource_record_sets(request).await;
    assert!(result.is_err());
    let err = result.err().unwrap();
    assert_eq!(
        RusotoError::Service(ListResourceRecordSetsError::NoSuchHostedZone(
            "No hosted zone found with ID: NO-SUCH-ZONE".to_owned()
        )),
        err
    );
}

#[test]
fn test_quoter() {
    assert_eq!(quote_txt_record("foo"), "\"foo\"");
    assert_eq!(quote_txt_record("\"foo\""), "\"foo\"");
    assert_eq!(quote_txt_record("\"foo"), "\"foo\"");
    assert_eq!(quote_txt_record("foo\""), "\"foo\"");
}