fn test_parse_config()

in src/proxy/src/config_parser.rs [102:154]


    fn test_parse_config() {
        let config_string = r#"fips = yes
foreground = quiet
socket = l:SO_REUSEADDR=yes
socket = a:SO_BINDTODEVICE=lo
debug = debug
output = /var/log/amazon/efs/fs-12341234.home.ec2-user.efs.21036.efs-proxy.log
pid = /var/run/efs/fs-12341234.home.ec2-user.efs.21036+/stunnel.pid
port = 8081
initial_partition_ip = 127.0.0.1:2049

[efs]
accept = 127.0.0.1:21036
connect = fs-12341234.efs.us-east-1.amazonaws.com:2049
sslVersion = TLSv1.2
renegotiation = no
TIMEOUTbusy = 20
TIMEOUTclose = 0
TIMEOUTidle = 70
delay = yes
verify = 2
CAfile = /etc/amazon/efs/efs-utils.crt
cert = /var/run/efs/fs-12341234.home.ec2-user.efs.21036+/certificate.pem
key = /etc/amazon/efs/privateKey.pem
checkHost = fs-12341234.efs.us-east-1.amazonaws.com
"#;

        let result_config = ProxyConfig::from_str(config_string).unwrap();
        let expected_proxy_config = ProxyConfig {
            fips: true,
            pid_file_path: String::from(
                "/var/run/efs/fs-12341234.home.ec2-user.efs.21036+/stunnel.pid",
            ),
            debug: LevelFilter::Debug.to_string().to_ascii_lowercase(),
            output: Some(String::from(
                "/var/log/amazon/efs/fs-12341234.home.ec2-user.efs.21036.efs-proxy.log",
            )),
            nested_config: EfsConfig {
                listen_addr: String::from("127.0.0.1:21036"),
                mount_target_addr: String::from("fs-12341234.efs.us-east-1.amazonaws.com:2049"),
                ca_file: String::from("/etc/amazon/efs/efs-utils.crt"),
                client_cert_pem_file: String::from(
                    "/var/run/efs/fs-12341234.home.ec2-user.efs.21036+/certificate.pem",
                ),
                client_private_key_pem_file: String::from("/etc/amazon/efs/privateKey.pem"),
                expected_server_hostname_tls: String::from(
                    "fs-12341234.efs.us-east-1.amazonaws.com",
                ),
            },
        };

        assert_eq!(result_config, expected_proxy_config);
    }