fn test_frontend_service()

in sdk/rust/src/lib.rs [677:736]


    fn test_frontend_service() {
        let mut client = get_frontend_client();
        let function_id = client
            .register_function(
                "builtin-echo",
                "An native echo function.",
                "builtin",
                None,
                Some(vec![FunctionArgument::new("message", "", true)]),
                None,
                None,
                Some(2),
            )
            .unwrap();
        let _ = client.get_function(&function_id).unwrap();
        let function_arguments = hashmap!("message" => "Hello, Teaclave!");
        let task_id = client
            .create_task(
                &function_id,
                Some(function_arguments.clone()),
                "builtin",
                None,
                None,
            )
            .unwrap();

        let _ = client.invoke_task(&task_id).unwrap();
        let (result, log) = client.get_task_result(&task_id).unwrap();
        let usage_number = client.get_function_usage_stats(&function_id).unwrap();
        assert_eq!(result, b"Hello, Teaclave!");
        assert!(log.is_empty());
        assert_eq!(1, usage_number);

        let task_id = client
            .create_task(
                &function_id,
                Some(function_arguments.clone()),
                "builtin",
                None,
                None,
            )
            .unwrap();
        let _ = client.invoke_task(&task_id).unwrap();
        let (result, log) = client.get_task_result(&task_id).unwrap();
        let usage_number = client.get_function_usage_stats(&function_id).unwrap();
        assert_eq!(result, b"Hello, Teaclave!");
        assert!(log.is_empty());
        assert_eq!(2, usage_number);

        let task_id = client
            .create_task(
                &function_id,
                Some(function_arguments),
                "builtin",
                None,
                None,
            )
            .unwrap();
        assert!(client.invoke_task(&task_id).is_err());
    }