mirror of
https://github.com/foss42/apidash.git
synced 2025-05-24 09:46:45 +08:00
test(rust_reqwest_codegen): add multipart tests
This commit is contained in:
@ -421,6 +421,335 @@ void main() {
|
|||||||
CodegenLanguage.rustReqwest, requestModelPost3, "https"),
|
CodegenLanguage.rustReqwest, requestModelPost3, "https"),
|
||||||
expectedCode);
|
expectedCode);
|
||||||
});
|
});
|
||||||
|
test('POST 4', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
let client = reqwest::blocking::Client::new();
|
||||||
|
let url = "https://api.apidash.dev/io/form";
|
||||||
|
|
||||||
|
struct FormDataItem {
|
||||||
|
name: String,
|
||||||
|
value: String,
|
||||||
|
field_type: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
let form_data_items: Vec<FormDataItem> = vec![
|
||||||
|
FormDataItem {
|
||||||
|
name: "text".to_string(),
|
||||||
|
value: "API".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
FormDataItem {
|
||||||
|
name: "sep".to_string(),
|
||||||
|
value: "|".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
FormDataItem {
|
||||||
|
name: "times".to_string(),
|
||||||
|
value: "3".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut form = reqwest::blocking::multipart::Form::new();
|
||||||
|
|
||||||
|
for item in form_data_items {
|
||||||
|
if item.field_type == "text" {
|
||||||
|
form = form.text(item.name, item.value);
|
||||||
|
} else if item.field_type == "file" {
|
||||||
|
form = form.file(item.name, &item.value)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let response = client
|
||||||
|
.post(url)
|
||||||
|
.multipart(form)
|
||||||
|
.send()?;
|
||||||
|
|
||||||
|
println!("Status Code: {}", response.status());
|
||||||
|
println!("Response Body: {}", response.text()?);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
codeGen.getCode(
|
||||||
|
CodegenLanguage.rustReqwest,
|
||||||
|
requestModelPost4,
|
||||||
|
"https",
|
||||||
|
boundary: "test",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
test('POST 5', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
let client = reqwest::blocking::Client::new();
|
||||||
|
let url = "https://api.apidash.dev/io/form";
|
||||||
|
|
||||||
|
struct FormDataItem {
|
||||||
|
name: String,
|
||||||
|
value: String,
|
||||||
|
field_type: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
let form_data_items: Vec<FormDataItem> = vec![
|
||||||
|
FormDataItem {
|
||||||
|
name: "text".to_string(),
|
||||||
|
value: "API".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
FormDataItem {
|
||||||
|
name: "sep".to_string(),
|
||||||
|
value: "|".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
FormDataItem {
|
||||||
|
name: "times".to_string(),
|
||||||
|
value: "3".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut form = reqwest::blocking::multipart::Form::new();
|
||||||
|
|
||||||
|
for item in form_data_items {
|
||||||
|
if item.field_type == "text" {
|
||||||
|
form = form.text(item.name, item.value);
|
||||||
|
} else if item.field_type == "file" {
|
||||||
|
form = form.file(item.name, &item.value)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let response = client
|
||||||
|
.post(url)
|
||||||
|
.header("User-Agent", "Test Agent")
|
||||||
|
.multipart(form)
|
||||||
|
.send()?;
|
||||||
|
|
||||||
|
println!("Status Code: {}", response.status());
|
||||||
|
println!("Response Body: {}", response.text()?);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
codeGen.getCode(
|
||||||
|
CodegenLanguage.rustReqwest, requestModelPost5, "https",
|
||||||
|
boundary: "test"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
test('POST 6', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
let client = reqwest::blocking::Client::new();
|
||||||
|
let url = "https://api.apidash.dev/io/img";
|
||||||
|
|
||||||
|
struct FormDataItem {
|
||||||
|
name: String,
|
||||||
|
value: String,
|
||||||
|
field_type: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
let form_data_items: Vec<FormDataItem> = vec![
|
||||||
|
FormDataItem {
|
||||||
|
name: "token".to_string(),
|
||||||
|
value: "xyz".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
FormDataItem {
|
||||||
|
name: "imfile".to_string(),
|
||||||
|
value: "/Documents/up/1.png".to_string(),
|
||||||
|
field_type: "file".to_string(),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut form = reqwest::blocking::multipart::Form::new();
|
||||||
|
|
||||||
|
for item in form_data_items {
|
||||||
|
if item.field_type == "text" {
|
||||||
|
form = form.text(item.name, item.value);
|
||||||
|
} else if item.field_type == "file" {
|
||||||
|
form = form.file(item.name, &item.value)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let response = client
|
||||||
|
.post(url)
|
||||||
|
.multipart(form)
|
||||||
|
.send()?;
|
||||||
|
|
||||||
|
println!("Status Code: {}", response.status());
|
||||||
|
println!("Response Body: {}", response.text()?);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
codeGen.getCode(
|
||||||
|
CodegenLanguage.rustReqwest, requestModelPost6, "https",
|
||||||
|
boundary: "test"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
test('POST 7', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
let client = reqwest::blocking::Client::new();
|
||||||
|
let url = "https://api.apidash.dev/io/img";
|
||||||
|
|
||||||
|
struct FormDataItem {
|
||||||
|
name: String,
|
||||||
|
value: String,
|
||||||
|
field_type: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
let form_data_items: Vec<FormDataItem> = vec![
|
||||||
|
FormDataItem {
|
||||||
|
name: "token".to_string(),
|
||||||
|
value: "xyz".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
FormDataItem {
|
||||||
|
name: "imfile".to_string(),
|
||||||
|
value: "/Documents/up/1.png".to_string(),
|
||||||
|
field_type: "file".to_string(),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut form = reqwest::blocking::multipart::Form::new();
|
||||||
|
|
||||||
|
for item in form_data_items {
|
||||||
|
if item.field_type == "text" {
|
||||||
|
form = form.text(item.name, item.value);
|
||||||
|
} else if item.field_type == "file" {
|
||||||
|
form = form.file(item.name, &item.value)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let response = client
|
||||||
|
.post(url)
|
||||||
|
.multipart(form)
|
||||||
|
.send()?;
|
||||||
|
|
||||||
|
println!("Status Code: {}", response.status());
|
||||||
|
println!("Response Body: {}", response.text()?);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
codeGen.getCode(
|
||||||
|
CodegenLanguage.rustReqwest, requestModelPost7, "https",
|
||||||
|
boundary: "test"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
test('POST 8', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
let client = reqwest::blocking::Client::new();
|
||||||
|
let url = "https://api.apidash.dev/io/form";
|
||||||
|
|
||||||
|
struct FormDataItem {
|
||||||
|
name: String,
|
||||||
|
value: String,
|
||||||
|
field_type: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
let form_data_items: Vec<FormDataItem> = vec![
|
||||||
|
FormDataItem {
|
||||||
|
name: "text".to_string(),
|
||||||
|
value: "API".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
FormDataItem {
|
||||||
|
name: "sep".to_string(),
|
||||||
|
value: "|".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
FormDataItem {
|
||||||
|
name: "times".to_string(),
|
||||||
|
value: "3".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut form = reqwest::blocking::multipart::Form::new();
|
||||||
|
|
||||||
|
for item in form_data_items {
|
||||||
|
if item.field_type == "text" {
|
||||||
|
form = form.text(item.name, item.value);
|
||||||
|
} else if item.field_type == "file" {
|
||||||
|
form = form.file(item.name, &item.value)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let response = client
|
||||||
|
.post(url)
|
||||||
|
.query(&[("size", "2"), ("len", "3")])
|
||||||
|
.multipart(form)
|
||||||
|
.send()?;
|
||||||
|
|
||||||
|
println!("Status Code: {}", response.status());
|
||||||
|
println!("Response Body: {}", response.text()?);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
codeGen.getCode(
|
||||||
|
CodegenLanguage.rustReqwest, requestModelPost8, "https",
|
||||||
|
boundary: "test"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
test('POST 9', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
let client = reqwest::blocking::Client::new();
|
||||||
|
let url = "https://api.apidash.dev/io/img";
|
||||||
|
|
||||||
|
struct FormDataItem {
|
||||||
|
name: String,
|
||||||
|
value: String,
|
||||||
|
field_type: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
let form_data_items: Vec<FormDataItem> = vec![
|
||||||
|
FormDataItem {
|
||||||
|
name: "token".to_string(),
|
||||||
|
value: "xyz".to_string(),
|
||||||
|
field_type: "text".to_string(),
|
||||||
|
},
|
||||||
|
FormDataItem {
|
||||||
|
name: "imfile".to_string(),
|
||||||
|
value: "/Documents/up/1.png".to_string(),
|
||||||
|
field_type: "file".to_string(),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut form = reqwest::blocking::multipart::Form::new();
|
||||||
|
|
||||||
|
for item in form_data_items {
|
||||||
|
if item.field_type == "text" {
|
||||||
|
form = form.text(item.name, item.value);
|
||||||
|
} else if item.field_type == "file" {
|
||||||
|
form = form.file(item.name, &item.value)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let response = client
|
||||||
|
.post(url)
|
||||||
|
.query(&[("size", "2"), ("len", "3")])
|
||||||
|
.header("User-Agent", "Test Agent")
|
||||||
|
.header("Keep-Alive", "true")
|
||||||
|
.multipart(form)
|
||||||
|
.send()?;
|
||||||
|
|
||||||
|
println!("Status Code: {}", response.status());
|
||||||
|
println!("Response Body: {}", response.text()?);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
codeGen.getCode(
|
||||||
|
CodegenLanguage.rustReqwest, requestModelPost9, "https",
|
||||||
|
boundary: "test"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
|
Reference in New Issue
Block a user