package Ġnet . bing gl . my d ms . integration . upload Ċ Ċ import Ġnet . bing gl . my d ms . integration . Integration Helpers Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . boot . test . web . client . Test Rest Template Ċ import Ġorg . springframework . core . io . FileSystem Resource Ċ import Ġorg . springframework . http .* Ċ import Ġorg . springframework . test . context . junit 4 . Spring Runner Ċ import Ġorg . springframework . util . Linked Multi Value Map Ċ import Ġjava . nio . file . Files Ċ Ċ @ RunWith ( Spring Runner :: class ) Ċ @ SpringBootTest ( web Environment Ġ= ĠSpring Boot Test . Web Environment . RANDOM _ PORT ) Ċ class ĠUpload IntegrationTest Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrest Template : ĠTest Rest Template ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġupload Test End 2 End () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemp File Ġ= ĠFiles . create TempFile (" test ", Ġ". pdf ") ĊĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= Ġtemp File . fileName . toString () ĊĠĠĠĠĠĠĠ ĠFiles . write ( temp File , Ġ" test content ". toByteArray ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġpdf Header Ġ= ĠHttp Headers () ĊĠĠĠĠĠĠĠ Ġpdf Header . contentType Ġ= ĠMediaType . APPLICATION _ PDF ĊĠĠĠĠĠĠĠ Ġval Ġpdf Part Ġ= ĠHttp Entity ( FileSystem Resource ( temp File . to File ()), Ġpdf Header ) ĊĠĠĠĠĠĠĠ Ġval Ġbody Map Ġ= ĠLinked Multi Value Map < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġbody Map . add (" file ", Ġpdf Part ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Entity Ġ= ĠHttp Entity ( body Map , ĠIntegration Helpers . headers ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġthis . rest Template ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exchange ("/ api / v 1 / upload / file ", ĠHttpMethod . POST , Ġrequest Entity , ĠString :: class . java ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( HttpStatus . OK , Ġresponse . statusCode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( response !!. body !!. indexOf (" File Ġ$ filename Ġwas Ġuploaded Ġand Ġstored Ġusing Ġtoken ") Ġ> Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġupload Test Wrong ContentType () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemp File Ġ= ĠFiles . create TempFile (" test ", Ġ". pdf ") ĊĠĠĠĠĠĠĠ ĠFiles . write ( temp File , Ġ" test content ". toByteArray ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġpdf Header Ġ= ĠHttp Headers () ĊĠĠĠĠĠĠĠ Ġpdf Header . contentType Ġ= ĠMediaType . TEXT _ PLAIN ĊĠĠĠĠĠĠĠ Ġval Ġpdf Part Ġ= ĠHttp Entity ( FileSystem Resource ( temp File . to File ()), Ġpdf Header ) ĊĠĠĠĠĠĠĠ Ġval Ġbody Map Ġ= ĠLinked Multi Value Map < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġbody Map . add (" file ", Ġpdf Part ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Entity Ġ= ĠHttp Entity ( body Map , ĠIntegration Helpers . headers ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġthis . rest Template ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exchange ("/ api / v 1 / upload / file ", ĠHttpMethod . POST , Ġrequest Entity , ĠString :: class . java ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( HttpStatus . BAD _ REQUEST , Ġresponse . statusCode ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( response . body Ġ== Ġ" The Ġsupplied Ġmime - type Ġis Ġnot Ġallowed : Ġtext / plain ") ĊĠĠĠ Ġ} Ċ }