@@ -643,6 +643,72 @@ class RequestTest {
643
643
}
644
644
}
645
645
646
+ @Test
647
+ fun curlGet () {
648
+ val request =
649
+ Request
650
+ .Builder ()
651
+ .url(" https://example.com" )
652
+ .header(" Authorization" , " Bearer abc123" )
653
+ .build()
654
+ val curl = request.curl()
655
+ assert (curl.contains(" curl" ))
656
+ assert (curl.contains(" https://example.com" ))
657
+ assert (curl.contains(" -H \" Authorization: Bearer abc123\" " ))
658
+ }
659
+
660
+ @Test
661
+ fun curlPostWithBody () {
662
+ val mediaType = " application/json" .toMediaType()
663
+ val body = " {\" key\" :\" value\" }" .toRequestBody(mediaType)
664
+ val request =
665
+ Request
666
+ .Builder ()
667
+ .url(" https://api.example.com/data" )
668
+ .post(body)
669
+ .addHeader(" Content-Type" , " application/json" )
670
+ .addHeader(" Authorization" , " Bearer abc123" )
671
+ .build()
672
+ val curl = request.curl()
673
+ assert (curl.contains(" -X POST" ))
674
+ assert (curl.contains(" --data" ))
675
+ assert (curl.contains(" {\\\" key\\\" :\\\" value\\\" }" ))
676
+ assert (curl.contains(" -H \" Content-Type: application/json\" " ))
677
+ assert (curl.contains(" -H \" Authorization: Bearer abc123\" " ))
678
+ }
679
+
680
+ @Test
681
+ fun curlPostWithComplexBody () {
682
+ val mediaType = " application/json" .toMediaType()
683
+ val jsonBody =
684
+ """
685
+ {
686
+ "user": {
687
+ "id": 123,
688
+ "name": "John Doe"
689
+ },
690
+ "roles": ["admin", "editor"],
691
+ "active": true
692
+ }
693
+ """ .trimIndent()
694
+ val body = jsonBody.toRequestBody(mediaType)
695
+ val request =
696
+ Request
697
+ .Builder ()
698
+ .url(" https://api.example.com/users" )
699
+ .post(body)
700
+ .addHeader(" Content-Type" , " application/json" )
701
+ .addHeader(" Authorization" , " Bearer xyz789" )
702
+ .build()
703
+ val curl = request.curl()
704
+ assert (curl.contains(" -X POST" ))
705
+ assert (curl.contains(" --data" ))
706
+ assert (curl.contains(" user" )) // The JSON should contain "user"
707
+ assert (curl.contains(" roles" )) // The JSON should contain "roles"
708
+ assert (curl.contains(" -H \" Content-Type: application/json\" " ))
709
+ assert (curl.contains(" -H \" Authorization: Bearer xyz789\" " ))
710
+ }
711
+
646
712
private fun bodyToHex (body : RequestBody ): String {
647
713
val buffer = Buffer ()
648
714
body.writeTo(buffer)
0 commit comments