Skip to content

Commit

Permalink
Use static multipart's boundary
Browse files Browse the repository at this point in the history
  • Loading branch information
tienvx committed Sep 29, 2023
1 parent 7b8407e commit 043d54d
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,14 @@ public function testUpdateUserProfile()
\json_encode($matcher->like('Bearer eyJhbGciOiJIUzI1NiIXVCJ9'))
],
])
->setBody(new Multipart([
new Part(__DIR__ . '/../_resource/full_name.txt', 'full_name', 'text/plain'),
new Part(__DIR__ . '/../_resource/image.jpg', 'profile_image', in_array(php_uname('m'), ['AMD64', 'arm64']) ? 'application/octet-stream' : 'image/jpeg'),
new Part(__DIR__ . '/../_resource/note.txt', 'personal_note', 'text/plain'),
]));
->setBody(new Multipart(
[
new Part(__DIR__ . '/../_resource/full_name.txt', 'full_name', 'text/plain'),
new Part(__DIR__ . '/../_resource/image.jpg', 'profile_image', in_array(php_uname('m'), ['AMD64', 'arm64']) ? 'application/octet-stream' : 'image/jpeg'),
new Part(__DIR__ . '/../_resource/note.txt', 'personal_note', 'text/plain'),
],
'ktJmeYHbkTSa1jxD'
));

$response = new ProviderResponse();
$response
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
}
],
"request": {
"body": "LS1rdEptZVlIYmtUU2ExanhEDQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9ImZ1bGxfbmFtZSI7IGZpbGVuYW1lPSJwYWN0dmZhU1JiIg0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0NCg0KQ29sdGVuIFppZW1hbm4NCi0ta3RKbWVZSGJrVFNhMWp4RA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJwcm9maWxlX2ltYWdlIjsgZmlsZW5hbWU9ImltYWdlLmpwZyINCkNvbnRlbnQtVHlwZTogaW1hZ2UvanBlZw0KDQr/2P/gABBKRklGAAEBAAABAAEAAP/bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/AAAsIAAwADAEBEQD/xAAWAAEBAQAAAAAAAAAAAAAAAAAEAAX/xAAiEAACAQMDBQEAAAAAAAAAAAABAwIEERIABSEGEyIjQRT/2gAIAQEAAD8AUa1jdqVVShOmTKYY4qW1MC0syis3jITyjExBiBjYXHkDq209MlLCjqqe3HuEMp5TknGYsCR7QJA2BysOSR80euY9O3L3oOymKamrAkqWFjOEGFfERLtgyIAyvb7fnWAmoqnMqR+6tV26lsPRWOTGXmTfGEhEHn4AOBxr/9kNCi0ta3RKbWVZSGJrVFNhMWp4RA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJwZXJzb25hbF9ub3RlIjsgZmlsZW5hbWU9InBhY3Q3OU1jT1QiDQpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQ0KDQp0ZXN0aW5nDQotLWt0Sm1lWUhia1RTYTFqeEQtLQ0K",
"body": "LS1rdEptZVlIYmtUU2ExanhEDQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9ImZ1bGxfbmFtZSI7IGZpbGVuYW1lPSJmdWxsX25hbWUudHh0Ig0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluDQoNCkNvbHRlbiBaaWVtYW5uDQotLWt0Sm1lWUhia1RTYTFqeEQNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0icHJvZmlsZV9pbWFnZSI7IGZpbGVuYW1lPSJpbWFnZS5qcGciDQpDb250ZW50LVR5cGU6IGltYWdlL2pwZWcNCg0K/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/wAALCAAMAAwBAREA/8QAFgABAQEAAAAAAAAAAAAAAAAABAAF/8QAIhAAAgEDAwUBAAAAAAAAAAAAAQMCBBESAAUhBhMiI0EU/9oACAEBAAA/AFGtY3alVUoTpkymGOKltTAtLMorN4yE8oxMQYgY2Fx5A6ttPTJSwo6qntx7hDKeU5JxmLAke0CQNgcrDkkfNHrmPTty96DspimpqwJKlhYzhBhXxES7YMiAMr2+351gJqKpzKkfurVdupbD0Vjkxl5k3xhIRB5+ADgca//ZDQotLWt0Sm1lWUhia1RTYTFqeEQNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0icGVyc29uYWxfbm90ZSI7IGZpbGVuYW1lPSJub3RlLnR4dCINCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbg0KDQp0ZXN0aW5nDQotLWt0Sm1lWUhia1RTYTFqeEQtLQ0K",
"headers": {
"Accept": "application/json",
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIXVCJ9",
Expand Down
7 changes: 6 additions & 1 deletion src/PhpPact/Consumer/Model/Body/Multipart.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class Multipart
/**
* @param array<Part> $parts
*/
public function __construct(private array $parts)
public function __construct(private array $parts, private string $boundary)
{
$this->setParts($parts);
}
Expand Down Expand Up @@ -39,4 +39,9 @@ public function addPart(Part $part): self

return $this;
}

public function getBoundary(): string
{
return $this->boundary;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ public function withBody(Text|Binary|Multipart $body): void
Text::class => $this->client->call('pactffi_with_body', $this->interactionRegistry->getId(), $this->getPart(), $body->getContentType(), $body->getContents()),
Multipart::class => array_reduce(
$body->getParts(),
function (bool $success, Part $part) {
$result = $this->client->call('pactffi_with_multipart_file', $this->interactionRegistry->getId(), $this->getPart(), $part->getContentType(), $part->getPath(), $part->getName());
function (bool $success, Part $part) use ($body) {
$result = $this->client->call('pactffi_with_multipart_file_v2', $this->interactionRegistry->getId(), $this->getPart(), $part->getContentType(), $part->getPath(), $part->getName(), $body->getBoundary());
if ($result->failed instanceof CData) {
throw new PartNotAddedException(FFI::string($result->failed));
}
Expand Down

0 comments on commit 043d54d

Please sign in to comment.