java-filmorate
5181 строка · 145.4 Кб
1{
2"info": {3"_postman_id": "8ed6b8f0-1e77-445f-8736-87dd5f364b51",4"name": "add-database",5"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",6"_exporter_id": "23073145",7"_collection_link": "https://universal-shadow-295426.postman.co/workspace/My-Workspace~4200f6aa-0504-44b1-8a1d-707d0dcbd5ce/collection/23073145-8ed6b8f0-1e77-445f-8736-87dd5f364b51?action=share&source=collection_link&creator=23073145"8},9"item": [10{11"name": "users",12"item": [13{14"name": "User create",15"event": [16{17"listen": "test",18"script": {19"exec": [20"const source = JSON.parse(pm.request.body.raw)\r",21"\r",22"pm.test(\"Status code is 200 or 201\", function () {\r",23" pm.expect(pm.response.code).to.be.oneOf([200,201]);\r",24"});\r",25"pm.test(\"Has user create response\", function () {\r",26" pm.response.to.be.withBody;\r",27" pm.response.to.be.json;\r",28"});\r",29"pm.test(\"Test user 'id' field\", function () {\r",30" var jsonData = pm.response.json();\r",31" pm.expect(jsonData).to.have.property('id');\r",32"});\r",33"pm.test(\"Test user 'email' field\", function () {\r",34" var jsonData = pm.response.json();\r",35" pm.expect(jsonData).to.have.property('email');\r",36" pm.expect(jsonData.email, `\"email\" must be \"${source.mail}\"`).to.eql(source.email);\r",37"});\r",38"pm.test(\"Test user 'name' field\", function () {\r",39" var jsonData = pm.response.json();\r",40" pm.expect(jsonData).to.have.property('name');\r",41" pm.expect(jsonData.name, `\"name\" must be \"${source.name}\"`).to.eql(source.name);\r",42"});\r",43"pm.test(\"Test user 'login' field\", function () {\r",44" var jsonData = pm.response.json();\r",45" pm.expect(jsonData).to.have.property('login');\r",46" pm.expect(jsonData.login, `\"login\" field must be \"${source.login}\"`).to.eql(source.login); \r",47"});\r",48"pm.test(\"Test user 'birthday' field\", function () {\r",49" var jsonData = pm.response.json();\r",50" pm.expect(jsonData).to.have.property('birthday');\r",51" pm.expect(jsonData.birthday, `\"birthday\" field must be \"${source.birthday}\"`).to.eql(source.birthday);\r",52"});"53],54"type": "text/javascript"55}56},57{58"listen": "prerequest",59"script": {60"exec": [61"const main = async () => {\r",62" const api = new API(pm);\r",63" const rnd = new RandomUtils();\r",64"\r",65" let user;\r",66" try {\r",67" user = rnd.getUser();\r",68" } catch(err) {\r",69" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",70" }\r",71"\r",72" pm.request.body.update({\r",73" mode: 'raw',\r",74" raw: JSON.stringify(user),\r",75" options: { raw: { language: 'json' } }\r",76" });\r",77"};\r",78"\r",79"const interval = setInterval(() => {}, 1000);\r",80"\r",81"setTimeout(async () => \r",82" {\r",83" try {\r",84" await main();\r",85" } catch (e) {\r",86" console.error(e);\r",87" } finally {\r",88" clearInterval(interval);\r",89" }\r",90" }, \r",91" 100 \r",92");"93],94"type": "text/javascript"95}96}97],98"request": {99"method": "POST",100"header": [101{102"key": "Content-Type",103"value": "application/json"104},105{106"key": "Accept",107"value": "*/*"108}109],110"body": {111"mode": "raw",112"raw": "{\n \"login\": \"dolore\",\n \"name\": \"Nick Name\",\n \"email\": \"mail@mail.ru\",\n \"birthday\": \"1946-08-20\"\n}",113"options": {114"raw": {115"language": "json"116}117}118},119"url": {120"raw": "{{baseUrl}}/users",121"host": [122"{{baseUrl}}"123],124"path": [125"users"126]127}128},129"response": []130},131{132"name": "User create Fail login",133"event": [134{135"listen": "test",136"script": {137"exec": [138"pm.test(\"Status code is 400\", function () {\r",139" pm.expect(pm.response.code).to.be.equal(400);\r",140"});\r",141"pm.test(\"Has error response\", function () {\r",142" pm.response.to.be.withBody;\r",143" pm.response.to.be.json;\r",144"});\r",145""146],147"type": "text/javascript",148"packages": {}149}150}151],152"request": {153"method": "POST",154"header": [155{156"key": "Content-Type",157"value": "application/json"158},159{160"key": "Accept",161"value": "*/*"162}163],164"body": {165"mode": "raw",166"raw": "{\n \"login\": \"dolore ullamco\",\n \"email\": \"yandex@mail.ru\",\n \"birthday\": \"2446-08-20\"\n}",167"options": {168"raw": {169"language": "json"170}171}172},173"url": {174"raw": "{{baseUrl}}/users",175"host": [176"{{baseUrl}}"177],178"path": [179"users"180]181}182},183"response": []184},185{186"name": "User create Fail email",187"event": [188{189"listen": "test",190"script": {191"exec": [192"pm.test(\"Status code is 400\", function () {\r",193" pm.expect(pm.response.code).to.be.equal(400);\r",194"});\r",195"pm.test(\"Has error response\", function () {\r",196" pm.response.to.be.withBody;\r",197" pm.response.to.be.json;\r",198"});"199],200"type": "text/javascript",201"packages": {}202}203}204],205"request": {206"method": "POST",207"header": [208{209"key": "Content-Type",210"value": "application/json"211},212{213"key": "Accept",214"value": "*/*"215}216],217"body": {218"mode": "raw",219"raw": "{\n \"login\": \"dolore ullamco\",\n \"name\": \"\",\n \"email\": \"mail.ru\",\n \"birthday\": \"1980-08-20\"\n}",220"options": {221"raw": {222"language": "json"223}224}225},226"url": {227"raw": "{{baseUrl}}/users",228"host": [229"{{baseUrl}}"230],231"path": [232"users"233]234}235},236"response": []237},238{239"name": "User create Fail birthday",240"event": [241{242"listen": "test",243"script": {244"exec": [245"pm.test(\"Status code is 400\", function () {\r",246" pm.expect(pm.response.code).to.be.equal(400);\r",247"});\r",248"pm.test(\"Has error response\", function () {\r",249" pm.response.to.be.withBody;\r",250" pm.response.to.be.json;\r",251"});"252],253"type": "text/javascript",254"packages": {}255}256}257],258"request": {259"method": "POST",260"header": [261{262"key": "Content-Type",263"value": "application/json"264},265{266"key": "Accept",267"value": "*/*"268}269],270"body": {271"mode": "raw",272"raw": "{\n \"login\": \"dolore\",\n \"name\": \"\",\n \"email\": \"test@mail.ru\",\n \"birthday\": \"2446-08-20\"\n}",273"options": {274"raw": {275"language": "json"276}277}278},279"url": {280"raw": "{{baseUrl}}/users",281"host": [282"{{baseUrl}}"283],284"path": [285"users"286]287}288},289"response": []290},291{292"name": "User update",293"event": [294{295"listen": "test",296"script": {297"exec": [298"const source = pm.collectionVariables.get(\"user\")\r",299"const new_user_info = pm.collectionVariables.get(\"new_user_info\");\r",300"\r",301"pm.test(\"Status code is 200\", function () {\r",302" pm.response.to.be.ok;\r",303"});\r",304"pm.test(\"Has user update response\", function () {\r",305" pm.response.to.be.withBody;\r",306" pm.response.to.be.json;\r",307"});\r",308"pm.test(\"Test user 'id' field\", function () {\r",309" var jsonData = pm.response.json();\r",310" pm.expect(jsonData).to.have.property('id');\r",311" pm.expect(jsonData.id, `\"id\" must be ${source.id}`).to.eql(source.id);\r",312"});\r",313"pm.test(\"Test user 'email' field\", function () {\r",314" var jsonData = pm.response.json();\r",315" pm.expect(jsonData).to.have.property('email');\r",316" pm.expect(jsonData.email, `\"email\" must be \"${new_user_info.email}\"`).to.eql(new_user_info.email);\r",317"});\r",318"pm.test(\"Test user 'name' field\", function () {\r",319" var jsonData = pm.response.json();\r",320" pm.expect(jsonData).to.have.property('name');\r",321" pm.expect(jsonData.name, `\"name\" must be \"${new_user_info.name}\"`).to.eql(new_user_info.name);\r",322"});\r",323"pm.test(\"Test user 'login' field\", function () {\r",324" var jsonData = pm.response.json();\r",325" pm.expect(jsonData).to.have.property('login');\r",326" pm.expect(jsonData.login, `\"login\" field must be \"${new_user_info.login}\"`).to.eql(new_user_info.login); \r",327"});\r",328"pm.test(\"Test user 'birthday' field\", function () {\r",329" var jsonData = pm.response.json();\r",330" pm.expect(jsonData).to.have.property('birthday');\r",331" pm.expect(jsonData.birthday, `\"birthday\" field must be \"${new_user_info.birthday}\"`).to.eql(new_user_info.birthday);\r",332"});"333],334"type": "text/javascript"335}336},337{338"listen": "prerequest",339"script": {340"exec": [341"const main = async () => {\r",342" const api = new API(pm);\r",343" const rnd = new RandomUtils();\r",344"\r",345" let user;\r",346" try {\r",347" user = await api.addUser(rnd.getUser());\r",348" pm.collectionVariables.set(\"user\", user);\r",349" } catch(err) {\r",350" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",351" }\r",352"\r",353" let new_user_info = rnd.getUser();\r",354" pm.collectionVariables.set(\"new_user_info\", new_user_info);\r",355" new_user_info[\"id\"] = user.id;\r",356"\r",357" pm.request.body.update({\r",358" mode: 'raw',\r",359" raw: JSON.stringify(new_user_info),\r",360" options: { raw: { language: 'json' } }\r",361" });\r",362"\r",363"};\r",364"\r",365"const interval = setInterval(() => {}, 1000);\r",366"\r",367"setTimeout(async () => \r",368" {\r",369" try {\r",370" await main();\r",371" } catch (e) {\r",372" console.error(e);\r",373" } finally {\r",374" clearInterval(interval);\r",375" }\r",376" }, \r",377" 100 \r",378");"379],380"type": "text/javascript"381}382}383],384"request": {385"method": "PUT",386"header": [387{388"key": "Content-Type",389"value": "application/json"390},391{392"key": "Accept",393"value": "*/*"394}395],396"body": {397"mode": "raw",398"raw": "",399"options": {400"raw": {401"language": "json"402}403}404},405"url": {406"raw": "{{baseUrl}}/users",407"host": [408"{{baseUrl}}"409],410"path": [411"users"412]413}414},415"response": []416},417{418"name": "User update unknown",419"event": [420{421"listen": "test",422"script": {423"exec": [424"pm.test(\"Status code is 404\", function () {\r",425" pm.expect(pm.response.code).to.be.equal(404);\r",426"});\r",427"pm.test(\"Has error response\", function () {\r",428" pm.response.to.be.withBody;\r",429" pm.response.to.be.json;\r",430"});"431],432"type": "text/javascript",433"packages": {}434}435},436{437"listen": "prerequest",438"script": {439"exec": [440"const main = async () => {\r",441" const api = new API(pm);\r",442" const rnd = new RandomUtils();\r",443"\r",444" let user;\r",445" try {\r",446" user = await api.addUser(rnd.getUser());\r",447" pm.collectionVariables.set(\"user\", user);\r",448" } catch(err) {\r",449" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",450" }\r",451"\r",452" pm.request.body.update({\r",453" mode: 'raw',\r",454" raw: JSON.stringify({\r",455" \"login\": \"doloreUpdate\",\r",456" \"name\": \"est adipisicing\",\r",457" \"id\": user.id+1,\r",458" \"email\": \"mail@yandex.ru\",\r",459" \"birthday\": \"1976-09-20\"\r",460" }),\r",461" options: { raw: { language: 'json' } }\r",462" });\r",463"\r",464"};\r",465"\r",466"const interval = setInterval(() => {}, 1000);\r",467"\r",468"setTimeout(async () => \r",469" {\r",470" try {\r",471" await main();\r",472" } catch (e) {\r",473" console.error(e);\r",474" } finally {\r",475" clearInterval(interval);\r",476" }\r",477" }, \r",478" 100 \r",479");"480],481"type": "text/javascript",482"packages": {}483}484}485],486"request": {487"method": "PUT",488"header": [489{490"key": "Content-Type",491"value": "application/json"492},493{494"key": "Accept",495"value": "*/*"496}497],498"body": {499"mode": "raw",500"raw": "{\n \"login\": \"doloreUpdate\",\n \"name\": \"est adipisicing\",\n \"id\": 9999,\n \"email\": \"mail@yandex.ru\",\n \"birthday\": \"1976-09-20\"\n}",501"options": {502"raw": {503"language": "json"504}505}506},507"url": {508"raw": "{{baseUrl}}/users",509"host": [510"{{baseUrl}}"511],512"path": [513"users"514]515}516},517"response": []518},519{520"name": "User get All",521"event": [522{523"listen": "test",524"script": {525"exec": [526"pm.test(\"Status code is 200\", function () {\r",527" pm.response.to.be.ok;\r",528"});\r",529"pm.test(\"Test list user response\", function () {\r",530" pm.response.to.be.withBody;\r",531" pm.response.to.be.json;\r",532"});\r",533"pm.test(\"Test user[0] 'id' field\", function () {\r",534" var jsonData = pm.response.json();\r",535" pm.expect(jsonData[0]).to.have.property('id');\r",536" pm.expect(jsonData[0].id, '\"id\" must be 1').to.eql(1);\r",537"});\r",538""539],540"type": "text/javascript"541}542}543],544"request": {545"method": "GET",546"header": [547{548"key": "Accept",549"value": "*/*"550}551],552"url": {553"raw": "{{baseUrl}}/users",554"host": [555"{{baseUrl}}"556],557"path": [558"users"559]560}561},562"response": []563}564]565},566{567"name": "friends",568"item": [569{570"name": "Friend add",571"event": [572{573"listen": "test",574"script": {575"exec": [576"const user1_id = pm.collectionVariables.get(\"id\");\r",577"const user2_id = pm.collectionVariables.get(\"friend_id\");\r",578"\r",579"pm.test(\"Status code is 200\", function () {\r",580" pm.expect(pm.response.code).to.be.oneOf([200,204]);\r",581"});\r",582"\r",583"pm.sendRequest({\r",584" url : \"http://localhost:8080/users/\" + user1_id + '/friends',\r",585" method : \"GET\",\r",586" header: { \"Content-Type\": \"application/json\" }\r",587"}, (error, response) => {\r",588" pm.test(\"user1 has user2 friend\", function () {\r",589" pm.expect(response.json()[0].id).to.be.equal(user2_id);\r",590" });\r",591"});\r",592"\r",593"pm.sendRequest({\r",594" url : \"http://localhost:8080/users/\" + user2_id + '/friends',\r",595" method : \"GET\",\r",596" header: { \"Content-Type\": \"application/json\" }\r",597"}, (error, response) => {\r",598" pm.test(\"user2 doesn't have user1 friend\", function () {\r",599" pm.expect(response.json().length).to.be.equal(0);\r",600" });\r",601"});\r",602""603],604"type": "text/javascript"605}606},607{608"listen": "prerequest",609"script": {610"exec": [611"const main = async () => {\r",612" const api = new API(pm);\r",613" const rnd = new RandomUtils();\r",614"\r",615" let user1, user2;\r",616" try {\r",617" user1 = await api.addUser(rnd.getUser());\r",618" user2 = await api.addUser(rnd.getUser());\r",619" pm.collectionVariables.set(\"id\", user1.id);\r",620" pm.collectionVariables.set(\"friend_id\", user2.id);\r",621" } catch(err) {\r",622" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",623" }\r",624"\r",625"};\r",626"\r",627"const interval = setInterval(() => {}, 1000);\r",628"\r",629"setTimeout(async () => \r",630" {\r",631" try {\r",632" await main();\r",633" } catch (e) {\r",634" console.error(e);\r",635" } finally {\r",636" clearInterval(interval);\r",637" }\r",638" }, \r",639" 100 \r",640");"641],642"type": "text/javascript"643}644}645],646"request": {647"method": "PUT",648"header": [649{650"key": "Content-Type",651"value": "application/json"652},653{654"key": "Accept",655"value": "*/*"656}657],658"body": {659"mode": "raw",660"raw": "",661"options": {662"raw": {663"language": "json"664}665}666},667"url": {668"raw": "{{baseUrl}}/users/{{id}}/friends/{{friend_id}}",669"host": [670"{{baseUrl}}"671],672"path": [673"users",674"{{id}}",675"friends",676"{{friend_id}}"677]678}679},680"response": []681},682{683"name": "Friend add unknown id",684"event": [685{686"listen": "test",687"script": {688"exec": [689"pm.test(\"Status code is 404\", function () {\r",690" pm.expect(pm.response.code).to.be.equal(404);\r",691"});\r",692"\r",693"pm.test(\"Has error response\", function () {\r",694" pm.response.to.be.withBody;\r",695" pm.response.to.be.json;\r",696"});"697],698"type": "text/javascript",699"packages": {}700}701},702{703"listen": "prerequest",704"script": {705"exec": [706"const main = async () => {\r",707" const api = new API(pm);\r",708" const rnd = new RandomUtils();\r",709"\r",710" let user1, user2;\r",711" try {\r",712" user1 = await api.addUser(rnd.getUser());\r",713" user2 = await api.addUser(rnd.getUser());\r",714" pm.collectionVariables.set(\"id\", user1.id);\r",715" pm.collectionVariables.set(\"friend_id\", user2.id+1);\r",716" } catch(err) {\r",717" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",718" }\r",719"\r",720"};\r",721"\r",722"const interval = setInterval(() => {}, 1000);\r",723"\r",724"setTimeout(async () => \r",725" {\r",726" try {\r",727" await main();\r",728" } catch (e) {\r",729" console.error(e);\r",730" } finally {\r",731" clearInterval(interval);\r",732" }\r",733" }, \r",734" 100 \r",735");"736],737"type": "text/javascript",738"packages": {}739}740}741],742"request": {743"method": "PUT",744"header": [745{746"key": "Content-Type",747"value": "application/json"748},749{750"key": "Accept",751"value": "*/*"752}753],754"body": {755"mode": "raw",756"raw": "",757"options": {758"raw": {759"language": "json"760}761}762},763"url": {764"raw": "{{baseUrl}}/users/{{id}}/friends/{{friend_id}}",765"host": [766"{{baseUrl}}"767],768"path": [769"users",770"{{id}}",771"friends",772"{{friend_id}}"773]774}775},776"response": []777},778{779"name": "Friend get",780"event": [781{782"listen": "test",783"script": {784"exec": [785"const user_friends = pm.collectionVariables.get(\"user_friends\");\r",786"\r",787"pm.test(\"Status code is 200\", function () {\r",788" pm.expect(pm.response.code).to.be.oneOf([200,204]);\r",789"});\r",790"\r",791"pm.test(\"initially user1 should have 0 friends\", function () {\r",792" pm.expect(user_friends.length).to.be.equal(0);\r",793"});\r",794"\r",795"pm.test(\"finally user1 should have 1 friend\", function () {\r",796" pm.expect(pm.response.json().length).to.be.equal(1);\r",797"});"798],799"type": "text/javascript"800}801},802{803"listen": "prerequest",804"script": {805"exec": [806"const main = async () => {\r",807" const api = new API(pm);\r",808" const rnd = new RandomUtils();\r",809"\r",810" let user1, user2, user1_friends;\r",811" try {\r",812" user1 = await api.addUser(rnd.getUser());\r",813" user2 = await api.addUser(rnd.getUser());\r",814" user1_friends = await api.getFriends(user1.id);\r",815" await api.addFriend(user1.id, user2.id);\r",816" pm.collectionVariables.set(\"id\", user1.id);\r",817" pm.collectionVariables.set(\"user_friends\", user1_friends);\r",818" } catch(err) {\r",819" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",820" }\r",821"\r",822"};\r",823"\r",824"const interval = setInterval(() => {}, 1000);\r",825"\r",826"setTimeout(async () => \r",827" {\r",828" try {\r",829" await main();\r",830" } catch (e) {\r",831" console.error(e);\r",832" } finally {\r",833" clearInterval(interval);\r",834" }\r",835" }, \r",836" 100 \r",837");"838],839"type": "text/javascript"840}841}842],843"protocolProfileBehavior": {844"disableBodyPruning": true845},846"request": {847"method": "GET",848"header": [849{850"key": "Content-Type",851"value": "application/json"852},853{854"key": "Accept",855"value": "*/*"856}857],858"body": {859"mode": "raw",860"raw": "",861"options": {862"raw": {863"language": "json"864}865}866},867"url": {868"raw": "{{baseUrl}}/users/{{id}}/friends",869"host": [870"{{baseUrl}}"871],872"path": [873"users",874"{{id}}",875"friends"876]877}878},879"response": []880},881{882"name": "Friend get unknown id",883"event": [884{885"listen": "test",886"script": {887"exec": [888"pm.test(\"Status code is 404\", function () {\r",889" pm.expect(pm.response.code).to.be.equal(404);\r",890"});\r",891"\r",892"pm.test(\"Has error response\", function () {\r",893" pm.response.to.be.withBody;\r",894" pm.response.to.be.json;\r",895"});"896],897"type": "text/javascript",898"packages": {}899}900},901{902"listen": "prerequest",903"script": {904"exec": [905"const main = async () => {\r",906" const api = new API(pm);\r",907" const rnd = new RandomUtils();\r",908"\r",909" let user;\r",910" try {\r",911" user = await api.addUser(rnd.getUser());\r",912" pm.collectionVariables.set(\"id\", user.id+1);\r",913" } catch(err) {\r",914" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",915" }\r",916"\r",917"};\r",918"\r",919"const interval = setInterval(() => {}, 1000);\r",920"\r",921"setTimeout(async () => \r",922" {\r",923" try {\r",924" await main();\r",925" } catch (e) {\r",926" console.error(e);\r",927" } finally {\r",928" clearInterval(interval);\r",929" }\r",930" }, \r",931" 100 \r",932");"933],934"type": "text/javascript",935"packages": {}936}937}938],939"protocolProfileBehavior": {940"disableBodyPruning": true941},942"request": {943"method": "GET",944"header": [945{946"key": "Content-Type",947"value": "application/json"948},949{950"key": "Accept",951"value": "*/*"952}953],954"body": {955"mode": "raw",956"raw": "",957"options": {958"raw": {959"language": "json"960}961}962},963"url": {964"raw": "{{baseUrl}}/users/{{id}}/friends",965"host": [966"{{baseUrl}}"967],968"path": [969"users",970"{{id}}",971"friends"972]973}974},975"response": []976},977{978"name": "Friend remove",979"event": [980{981"listen": "test",982"script": {983"exec": [984"const user1_id = pm.collectionVariables.get(\"id\");\r",985"const user2_id = pm.collectionVariables.get(\"friend_id\");\r",986"\r",987"pm.test(\"Status code is 200\", function () {\r",988" pm.expect(pm.response.code).to.be.oneOf([200,204]);\r",989"});\r",990"\r",991"pm.sendRequest({\r",992" url : \"http://localhost:8080/users/\" + user1_id + '/friends',\r",993" method : \"GET\",\r",994" header: { \"Content-Type\": \"application/json\" }\r",995"}, (error, response) => {\r",996" pm.test(\"user1 should have 0 friends\", function () {\r",997" pm.expect(response.json().length).to.be.equal(0);\r",998" });\r",999"});\r",1000"\r",1001"pm.sendRequest({\r",1002" url : \"http://localhost:8080/users/\" + user2_id + '/friends',\r",1003" method : \"GET\",\r",1004" header: { \"Content-Type\": \"application/json\" }\r",1005"}, (error, response) => {\r",1006" pm.test(\"user2 should have 0 friends\", function () {\r",1007" pm.expect(response.json().length).to.be.equal(0);\r",1008" });\r",1009"});\r",1010""1011],1012"type": "text/javascript",1013"packages": {}1014}1015},1016{1017"listen": "prerequest",1018"script": {1019"exec": [1020"const main = async () => {\r",1021" const api = new API(pm);\r",1022" const rnd = new RandomUtils();\r",1023"\r",1024" let user1, user2;\r",1025" try {\r",1026" user1 = await api.addUser(rnd.getUser());\r",1027" user2 = await api.addUser(rnd.getUser());\r",1028" await api.addFriend(user1.id, user2.id);\r",1029" pm.collectionVariables.set(\"id\", user1.id);\r",1030" pm.collectionVariables.set(\"friend_id\", user2.id);\r",1031" } catch(err) {\r",1032" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",1033" }\r",1034"\r",1035"};\r",1036"\r",1037"const interval = setInterval(() => {}, 1000);\r",1038"\r",1039"setTimeout(async () => \r",1040" {\r",1041" try {\r",1042" await main();\r",1043" } catch (e) {\r",1044" console.error(e);\r",1045" } finally {\r",1046" clearInterval(interval);\r",1047" }\r",1048" }, \r",1049" 100 \r",1050");"1051],1052"type": "text/javascript",1053"packages": {}1054}1055}1056],1057"request": {1058"method": "DELETE",1059"header": [1060{1061"key": "Content-Type",1062"value": "application/json"1063},1064{1065"key": "Accept",1066"value": "*/*"1067}1068],1069"body": {1070"mode": "raw",1071"raw": "",1072"options": {1073"raw": {1074"language": "json"1075}1076}1077},1078"url": {1079"raw": "{{baseUrl}}/users/{{id}}/friends/{{friend_id}}",1080"host": [1081"{{baseUrl}}"1082],1083"path": [1084"users",1085"{{id}}",1086"friends",1087"{{friend_id}}"1088]1089}1090},1091"response": []1092},1093{1094"name": "Not friend remove",1095"event": [1096{1097"listen": "test",1098"script": {1099"exec": [1100"const user1_id = pm.collectionVariables.get(\"id\");\r",1101"const user2_id = pm.collectionVariables.get(\"friend_id\");\r",1102"\r",1103"pm.test(\"Status code is 200\", function () {\r",1104" pm.expect(pm.response.code).to.be.oneOf([200,204]);\r",1105"});\r",1106"\r",1107"pm.sendRequest({\r",1108" url : \"http://localhost:8080/users/\" + user1_id + '/friends',\r",1109" method : \"GET\",\r",1110" header: { \"Content-Type\": \"application/json\" }\r",1111"}, (error, response) => {\r",1112" pm.test(\"user1 should have 0 friends\", function () {\r",1113" pm.expect(response.json().length).to.be.equal(0);\r",1114" });\r",1115"});\r",1116"\r",1117"pm.sendRequest({\r",1118" url : \"http://localhost:8080/users/\" + user2_id + '/friends',\r",1119" method : \"GET\",\r",1120" header: { \"Content-Type\": \"application/json\" }\r",1121"}, (error, response) => {\r",1122" pm.test(\"user2 should have 0 friends\", function () {\r",1123" pm.expect(response.json().length).to.be.equal(0);\r",1124" });\r",1125"});\r",1126""1127],1128"type": "text/javascript",1129"packages": {}1130}1131},1132{1133"listen": "prerequest",1134"script": {1135"exec": [1136"const main = async () => {\r",1137" const api = new API(pm);\r",1138" const rnd = new RandomUtils();\r",1139"\r",1140" let user1, user2;\r",1141" try {\r",1142" user1 = await api.addUser(rnd.getUser());\r",1143" user2 = await api.addUser(rnd.getUser());\r",1144" pm.collectionVariables.set(\"id\", user1.id);\r",1145" pm.collectionVariables.set(\"friend_id\", user2.id);\r",1146" } catch(err) {\r",1147" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",1148" }\r",1149"\r",1150"};\r",1151"\r",1152"const interval = setInterval(() => {}, 1000);\r",1153"\r",1154"setTimeout(async () => \r",1155" {\r",1156" try {\r",1157" await main();\r",1158" } catch (e) {\r",1159" console.error(e);\r",1160" } finally {\r",1161" clearInterval(interval);\r",1162" }\r",1163" }, \r",1164" 100 \r",1165");"1166],1167"type": "text/javascript",1168"packages": {}1169}1170}1171],1172"request": {1173"method": "DELETE",1174"header": [1175{1176"key": "Content-Type",1177"value": "application/json"1178},1179{1180"key": "Accept",1181"value": "*/*"1182}1183],1184"body": {1185"mode": "raw",1186"raw": "",1187"options": {1188"raw": {1189"language": "json"1190}1191}1192},1193"url": {1194"raw": "{{baseUrl}}/users/{{id}}/friends/{{friend_id}}",1195"host": [1196"{{baseUrl}}"1197],1198"path": [1199"users",1200"{{id}}",1201"friends",1202"{{friend_id}}"1203]1204}1205},1206"response": []1207},1208{1209"name": "Friend reciprocity",1210"event": [1211{1212"listen": "test",1213"script": {1214"exec": [1215"const user1_id = pm.collectionVariables.get(\"id\");\r",1216"const user2_id = pm.collectionVariables.get(\"friend_id\");\r",1217"\r",1218"pm.test(\"Status code is 200\", function () {\r",1219" pm.expect(pm.response.code).to.be.oneOf([200,204]);\r",1220"});\r",1221"\r",1222"pm.sendRequest({\r",1223" url : \"http://localhost:8080/users/\" + user1_id + '/friends',\r",1224" method : \"GET\",\r",1225" header: { \"Content-Type\": \"application/json\" }\r",1226"}, (error, response) => {\r",1227" pm.test(\"user1 should have 0 friends\", function () {\r",1228" pm.expect(response.json().length).to.be.equal(0);\r",1229" });\r",1230"});\r",1231"\r",1232"pm.sendRequest({\r",1233" url : \"http://localhost:8080/users/\" + user2_id + '/friends',\r",1234" method : \"GET\",\r",1235" header: { \"Content-Type\": \"application/json\" }\r",1236"}, (error, response) => {\r",1237" pm.test(\"user2 should have 1 friends\", function () {\r",1238" pm.expect(response.json().length).to.be.equal(1);\r",1239" });\r",1240"});\r",1241""1242],1243"type": "text/javascript",1244"packages": {}1245}1246},1247{1248"listen": "prerequest",1249"script": {1250"exec": [1251"const main = async () => {\r",1252" const api = new API(pm);\r",1253" const rnd = new RandomUtils();\r",1254"\r",1255" let user1, user2;\r",1256" try {\r",1257" user1 = await api.addUser(rnd.getUser());\r",1258" user2 = await api.addUser(rnd.getUser());\r",1259" await api.addFriend(user1.id, user2.id);\r",1260" pm.collectionVariables.set(\"id\", user2.id);\r",1261" pm.collectionVariables.set(\"friend_id\", user1.id);\r",1262" } catch(err) {\r",1263" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",1264" }\r",1265"\r",1266"};\r",1267"\r",1268"const interval = setInterval(() => {}, 1000);\r",1269"\r",1270"setTimeout(async () => \r",1271" {\r",1272" try {\r",1273" await main();\r",1274" } catch (e) {\r",1275" console.error(e);\r",1276" } finally {\r",1277" clearInterval(interval);\r",1278" }\r",1279" }, \r",1280" 100 \r",1281");"1282],1283"type": "text/javascript",1284"packages": {}1285}1286}1287],1288"request": {1289"method": "DELETE",1290"header": [1291{1292"key": "Content-Type",1293"value": "application/json"1294},1295{1296"key": "Accept",1297"value": "*/*"1298}1299],1300"body": {1301"mode": "raw",1302"raw": "",1303"options": {1304"raw": {1305"language": "json"1306}1307}1308},1309"url": {1310"raw": "{{baseUrl}}/users/{{id}}/friends/{{friend_id}}",1311"host": [1312"{{baseUrl}}"1313],1314"path": [1315"users",1316"{{id}}",1317"friends",1318"{{friend_id}}"1319]1320}1321},1322"response": []1323},1324{1325"name": "Friend remove unknown id",1326"event": [1327{1328"listen": "test",1329"script": {1330"exec": [1331"pm.test(\"Status code is 404\", function () {\r",1332" pm.expect(pm.response.code).to.be.equal(404);\r",1333"});\r",1334"\r",1335"pm.test(\"Has error response\", function () {\r",1336" pm.response.to.be.withBody;\r",1337" pm.response.to.be.json;\r",1338"});"1339],1340"type": "text/javascript",1341"packages": {}1342}1343},1344{1345"listen": "prerequest",1346"script": {1347"exec": [1348"const main = async () => {\r",1349" const api = new API(pm);\r",1350" const rnd = new RandomUtils();\r",1351"\r",1352" let user1, user2;\r",1353" try {\r",1354" user1 = await api.addUser(rnd.getUser());\r",1355" user2 = await api.addUser(rnd.getUser());\r",1356" await api.addFriend(user1.id, user2.id);\r",1357" pm.collectionVariables.set(\"id\", user1.id + 4);\r",1358" pm.collectionVariables.set(\"friend_id\", user2.id);\r",1359" } catch(err) {\r",1360" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",1361" }\r",1362"\r",1363"};\r",1364"\r",1365"const interval = setInterval(() => {}, 1000);\r",1366"\r",1367"setTimeout(async () => \r",1368" {\r",1369" try {\r",1370" await main();\r",1371" } catch (e) {\r",1372" console.error(e);\r",1373" } finally {\r",1374" clearInterval(interval);\r",1375" }\r",1376" }, \r",1377" 100 \r",1378");"1379],1380"type": "text/javascript",1381"packages": {}1382}1383}1384],1385"request": {1386"method": "DELETE",1387"header": [1388{1389"key": "Content-Type",1390"value": "application/json"1391},1392{1393"key": "Accept",1394"value": "*/*"1395}1396],1397"body": {1398"mode": "raw",1399"raw": "",1400"options": {1401"raw": {1402"language": "json"1403}1404}1405},1406"url": {1407"raw": "{{baseUrl}}/users/{{id}}/friends/{{friend_id}}",1408"host": [1409"{{baseUrl}}"1410],1411"path": [1412"users",1413"{{id}}",1414"friends",1415"{{friend_id}}"1416]1417}1418},1419"response": []1420},1421{1422"name": "Friend remove unknown friend id",1423"event": [1424{1425"listen": "test",1426"script": {1427"exec": [1428"pm.test(\"Status code is 404\", function () {\r",1429" pm.expect(pm.response.code).to.be.equal(404);\r",1430"});\r",1431"\r",1432"pm.test(\"Has error response\", function () {\r",1433" pm.response.to.be.withBody;\r",1434" pm.response.to.be.json;\r",1435"});"1436],1437"type": "text/javascript",1438"packages": {}1439}1440},1441{1442"listen": "prerequest",1443"script": {1444"exec": [1445"const main = async () => {\r",1446" const api = new API(pm);\r",1447" const rnd = new RandomUtils();\r",1448"\r",1449" let user1, user2;\r",1450" try {\r",1451" user1 = await api.addUser(rnd.getUser());\r",1452" user2 = await api.addUser(rnd.getUser());\r",1453" await api.addFriend(user1.id, user2.id);\r",1454" pm.collectionVariables.set(\"id\", user1.id);\r",1455" pm.collectionVariables.set(\"friend_id\", user2.id+1);\r",1456" } catch(err) {\r",1457" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",1458" }\r",1459"\r",1460"};\r",1461"\r",1462"const interval = setInterval(() => {}, 1000);\r",1463"\r",1464"setTimeout(async () => \r",1465" {\r",1466" try {\r",1467" await main();\r",1468" } catch (e) {\r",1469" console.error(e);\r",1470" } finally {\r",1471" clearInterval(interval);\r",1472" }\r",1473" }, \r",1474" 100 \r",1475");"1476],1477"type": "text/javascript",1478"packages": {}1479}1480}1481],1482"request": {1483"method": "DELETE",1484"header": [1485{1486"key": "Content-Type",1487"value": "application/json"1488},1489{1490"key": "Accept",1491"value": "*/*"1492}1493],1494"body": {1495"mode": "raw",1496"raw": "",1497"options": {1498"raw": {1499"language": "json"1500}1501}1502},1503"url": {1504"raw": "{{baseUrl}}/users/{{id}}/friends/{{friend_id}}",1505"host": [1506"{{baseUrl}}"1507],1508"path": [1509"users",1510"{{id}}",1511"friends",1512"{{friend_id}}"1513]1514}1515},1516"response": []1517},1518{1519"name": "Get common friends",1520"event": [1521{1522"listen": "test",1523"script": {1524"exec": [1525"const user3_id = pm.collectionVariables.get(\"user3_id\");\r",1526"\r",1527"pm.test(\"Status code is 200\", function () {\r",1528" pm.expect(pm.response.code).to.be.oneOf([200,204]);\r",1529"});\r",1530"\r",1531"pm.test(\"user1 should have 1 common friend with user2\", function () {\r",1532" pm.expect(pm.response.json().length).to.be.equal(1);\r",1533" pm.expect(pm.response.json()[0].id).to.be.equal(user3_id);\r",1534"});\r",1535""1536],1537"type": "text/javascript"1538}1539},1540{1541"listen": "prerequest",1542"script": {1543"exec": [1544"const main = async () => {\r",1545" const api = new API(pm);\r",1546" const rnd = new RandomUtils();\r",1547"\r",1548" let user1, user2, user3;\r",1549" try {\r",1550" user1 = await api.addUser(rnd.getUser());\r",1551" user2 = await api.addUser(rnd.getUser());\r",1552" user3 = await api.addUser(rnd.getUser());\r",1553" await api.addFriend(user1.id, user3.id);\r",1554" await api.addFriend(user1.id, user2.id);\r",1555" await api.addFriend(user2.id, user3.id);\r",1556" pm.collectionVariables.set(\"id\", user1.id);\r",1557" pm.collectionVariables.set(\"friend_id\", user2.id);\r",1558" pm.collectionVariables.set(\"user3_id\", user3.id);\r",1559" } catch(err) {\r",1560" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",1561" }\r",1562"\r",1563"};\r",1564"\r",1565"const interval = setInterval(() => {}, 1000);\r",1566"\r",1567"setTimeout(async () => \r",1568" {\r",1569" try {\r",1570" await main();\r",1571" } catch (e) {\r",1572" console.error(e);\r",1573" } finally {\r",1574" clearInterval(interval);\r",1575" }\r",1576" }, \r",1577" 100 \r",1578");"1579],1580"type": "text/javascript"1581}1582}1583],1584"protocolProfileBehavior": {1585"disableBodyPruning": true1586},1587"request": {1588"method": "GET",1589"header": [1590{1591"key": "Content-Type",1592"value": "application/json"1593},1594{1595"key": "Accept",1596"value": "*/*"1597}1598],1599"body": {1600"mode": "raw",1601"raw": "",1602"options": {1603"raw": {1604"language": "json"1605}1606}1607},1608"url": {1609"raw": "{{baseUrl}}/users/{{id}}/friends/common/{{friend_id}}",1610"host": [1611"{{baseUrl}}"1612],1613"path": [1614"users",1615"{{id}}",1616"friends",1617"common",1618"{{friend_id}}"1619]1620}1621},1622"response": []1623}1624]1625},1626{1627"name": "films",1628"item": [1629{1630"name": "Film create",1631"event": [1632{1633"listen": "test",1634"script": {1635"exec": [1636"const source = JSON.parse(pm.request.body.raw)\r",1637"\r",1638"pm.test(\"Status code is 200 or 201\", function () {\r",1639" pm.expect(pm.response.code).to.be.oneOf([200,201]);\r",1640"});\r",1641"pm.test(\"Has film create response\", function () {\r",1642" pm.response.to.be.withBody;\r",1643" pm.response.to.be.json;\r",1644"});\r",1645"pm.test(\"Test film 'id' field\", function () {\r",1646" var jsonData = pm.response.json();\r",1647" pm.expect(jsonData).to.have.property('id');\r",1648"});\r",1649"pm.test(\"Test film 'name' field\", function () {\r",1650" var jsonData = pm.response.json();\r",1651" pm.expect(jsonData).to.have.property('name');\r",1652" pm.expect(jsonData.name, `\"name\" must be \"${source.name}\"`).to.eql(source.name);\r",1653"});\r",1654"pm.test(\"Test film 'description' field\", function () {\r",1655" var jsonData = pm.response.json();\r",1656" pm.expect(jsonData).to.have.property('description');\r",1657" pm.expect(jsonData.description, `\"description\" must be \"${source.description}\"`).to.eql(source.description);\r",1658"});\r",1659"pm.test(\"Test film 'releaseDate' field\", function () {\r",1660" var jsonData = pm.response.json();\r",1661" pm.expect(jsonData).to.have.property('releaseDate');\r",1662" pm.expect(jsonData.releaseDate, `\"releaseDate\" field must be \"${source.releaseDate}\"`).to.eql(source.releaseDate);\r",1663"});\r",1664"pm.test(\"Test film 'duration' field\", function () {\r",1665" var jsonData = pm.response.json();\r",1666" pm.expect(jsonData).to.have.property('duration');\r",1667" pm.expect(jsonData.duration, `\"duration\" field must be %{source.duration}`).to.eql(source.duration); \r",1668"});\r",1669"pm.test(\"Test film 'mpa' field\", function () {\r",1670" var jsonData = pm.response.json();\r",1671" pm.expect(jsonData).to.have.property('mpa');\r",1672" pm.expect(jsonData.mpa.id, `\"mpa.id\" field must be %{source.mpa.id}`).to.eql(source.mpa.id); \r",1673"});\r",1674"pm.test(\"Test film 'genres' field\", function () {\r",1675" var jsonData = pm.response.json();\r",1676" let responseGenres = [];\r",1677" let requestGenres = [];\r",1678" source.genres.forEach((element) => requestGenres.push(element.id));\r",1679" jsonData.genres.forEach((element) => responseGenres.push(element.id));\r",1680" pm.expect(jsonData).to.have.property('genres');\r",1681" pm.expect(responseGenres, `\"genres\" field must be %{requestGenres}`).to.eql(requestGenres); \r",1682"});\r",1683"\r",1684""1685],1686"type": "text/javascript"1687}1688},1689{1690"listen": "prerequest",1691"script": {1692"exec": [1693"const main = async () => {\r",1694" const api = new API(pm);\r",1695" const rnd = new RandomUtils();\r",1696"\r",1697" let film;\r",1698" try {\r",1699" film = rnd.getFilm();\r",1700" } catch(err) {\r",1701" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",1702" }\r",1703"\r",1704" pm.request.body.update({\r",1705" mode: 'raw',\r",1706" raw: JSON.stringify(film),\r",1707" options: { raw: { language: 'json' } }\r",1708" });\r",1709"};\r",1710"\r",1711"const interval = setInterval(() => {}, 1000);\r",1712"\r",1713"setTimeout(async () => \r",1714" {\r",1715" try {\r",1716" await main();\r",1717" } catch (e) {\r",1718" console.error(e);\r",1719" } finally {\r",1720" clearInterval(interval);\r",1721" }\r",1722" }, \r",1723" 100 \r",1724");"1725],1726"type": "text/javascript"1727}1728}1729],1730"request": {1731"method": "POST",1732"header": [1733{1734"key": "Content-Type",1735"value": "application/json"1736},1737{1738"key": "Accept",1739"value": "*/*"1740}1741],1742"body": {1743"mode": "raw",1744"raw": "{\n \"name\": \"nisi eiusmod\",\n \"description\": \"adipisicing\",\n \"releaseDate\": \"1967-03-25\",\n \"duration\": 100\n}",1745"options": {1746"raw": {1747"language": "json"1748}1749}1750},1751"url": {1752"raw": "{{baseUrl}}/films",1753"host": [1754"{{baseUrl}}"1755],1756"path": [1757"films"1758]1759}1760},1761"response": []1762},1763{1764"name": "Film create several genres",1765"event": [1766{1767"listen": "test",1768"script": {1769"exec": [1770"const source = JSON.parse(pm.request.body.raw)\r",1771"\r",1772"pm.test(\"Status code is 200 or 201\", function () {\r",1773" pm.expect(pm.response.code).to.be.oneOf([200,201]);\r",1774"});\r",1775"pm.test(\"Has film create response\", function () {\r",1776" pm.response.to.be.withBody;\r",1777" pm.response.to.be.json;\r",1778"});\r",1779"pm.test(\"Test film 'id' field\", function () {\r",1780" var jsonData = pm.response.json();\r",1781" pm.expect(jsonData).to.have.property('id');\r",1782"});\r",1783"pm.test(\"Test film 'name' field\", function () {\r",1784" var jsonData = pm.response.json();\r",1785" pm.expect(jsonData).to.have.property('name');\r",1786" pm.expect(jsonData.name, `\"name\" must be \"${source.name}\"`).to.eql(source.name);\r",1787"});\r",1788"pm.test(\"Test film 'description' field\", function () {\r",1789" var jsonData = pm.response.json();\r",1790" pm.expect(jsonData).to.have.property('description');\r",1791" pm.expect(jsonData.description, `\"description\" must be \"${source.description}\"`).to.eql(source.description);\r",1792"});\r",1793"pm.test(\"Test film 'releaseDate' field\", function () {\r",1794" var jsonData = pm.response.json();\r",1795" pm.expect(jsonData).to.have.property('releaseDate');\r",1796" pm.expect(jsonData.releaseDate, `\"releaseDate\" field must be \"${source.releaseDate}\"`).to.eql(source.releaseDate);\r",1797"});\r",1798"pm.test(\"Test film 'duration' field\", function () {\r",1799" var jsonData = pm.response.json();\r",1800" pm.expect(jsonData).to.have.property('duration');\r",1801" pm.expect(jsonData.duration, `\"duration\" field must be %{source.duration}`).to.eql(source.duration); \r",1802"});\r",1803"pm.test(\"Test film 'mpa' field\", function () {\r",1804" var jsonData = pm.response.json();\r",1805" pm.expect(jsonData).to.have.property('mpa');\r",1806" pm.expect(jsonData.mpa.id, `\"mpa.id\" field must be %{source.mpa.id}`).to.eql(source.mpa.id); \r",1807"});\r",1808"pm.test(\"Test film 'genres' field\", function () {\r",1809" var jsonData = pm.response.json();\r",1810" let responseGenres = [];\r",1811" let requestGenres = [];\r",1812" source.genres.forEach((element) => requestGenres.push(element.id));\r",1813" jsonData.genres.forEach((element) => responseGenres.push(element.id));\r",1814" pm.expect(jsonData).to.have.property('genres');\r",1815" pm.expect(responseGenres, `\"genres\" field must be %{requestGenres}`).to.eql(requestGenres); \r",1816"});\r",1817"\r",1818""1819],1820"type": "text/javascript"1821}1822},1823{1824"listen": "prerequest",1825"script": {1826"exec": [1827"const main = async () => {\r",1828" const api = new API(pm);\r",1829" const rnd = new RandomUtils();\r",1830"\r",1831" let film;\r",1832" try {\r",1833" film = rnd.getFilm();\r",1834" film.genres = [\r",1835" {\"id\": 3},\r",1836" {\"id\": 5}\r",1837" ]\r",1838" } catch(err) {\r",1839" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",1840" }\r",1841"\r",1842" pm.request.body.update({\r",1843" mode: 'raw',\r",1844" raw: JSON.stringify(film),\r",1845" options: { raw: { language: 'json' } }\r",1846" });\r",1847"};\r",1848"\r",1849"const interval = setInterval(() => {}, 1000);\r",1850"\r",1851"setTimeout(async () => \r",1852" {\r",1853" try {\r",1854" await main();\r",1855" } catch (e) {\r",1856" console.error(e);\r",1857" } finally {\r",1858" clearInterval(interval);\r",1859" }\r",1860" }, \r",1861" 100 \r",1862");"1863],1864"type": "text/javascript"1865}1866}1867],1868"request": {1869"method": "POST",1870"header": [1871{1872"key": "Content-Type",1873"value": "application/json"1874},1875{1876"key": "Accept",1877"value": "*/*"1878}1879],1880"body": {1881"mode": "raw",1882"raw": "{\n \"name\": \"nisi eiusmod\",\n \"description\": \"adipisicing\",\n \"releaseDate\": \"1967-03-25\",\n \"duration\": 100\n}",1883"options": {1884"raw": {1885"language": "json"1886}1887}1888},1889"url": {1890"raw": "{{baseUrl}}/films",1891"host": [1892"{{baseUrl}}"1893],1894"path": [1895"films"1896]1897}1898},1899"response": []1900},1901{1902"name": "Film create Fail name",1903"event": [1904{1905"listen": "test",1906"script": {1907"exec": [1908"pm.test(\"Status code is 400\", function () {\r",1909" pm.expect(pm.response.code).to.be.equal(400);\r",1910"});\r",1911"pm.test(\"Has error response\", function () {\r",1912" pm.response.to.be.withBody;\r",1913" pm.response.to.be.json;\r",1914"});\r",1915""1916],1917"type": "text/javascript",1918"packages": {}1919}1920}1921],1922"request": {1923"method": "POST",1924"header": [1925{1926"key": "Content-Type",1927"value": "application/json"1928},1929{1930"key": "Accept",1931"value": "*/*"1932}1933],1934"body": {1935"mode": "raw",1936"raw": "{\n \"name\": \"\",\n \"description\": \"Description\",\n \"releaseDate\": \"1900-03-25\",\n \"duration\": 200,\n \"mpa\": { \"id\": 1}\n}",1937"options": {1938"raw": {1939"language": "json"1940}1941}1942},1943"url": {1944"raw": "{{baseUrl}}/films",1945"host": [1946"{{baseUrl}}"1947],1948"path": [1949"films"1950]1951}1952},1953"response": []1954},1955{1956"name": "Film create Fail description",1957"event": [1958{1959"listen": "test",1960"script": {1961"exec": [1962"pm.test(\"Status code is 400\", function () {\r",1963" pm.expect(pm.response.code).to.be.equal(400);\r",1964"});\r",1965"pm.test(\"Has error response\", function () {\r",1966" pm.response.to.be.withBody;\r",1967" pm.response.to.be.json;\r",1968"});\r",1969""1970],1971"type": "text/javascript",1972"packages": {}1973}1974}1975],1976"request": {1977"method": "POST",1978"header": [1979{1980"key": "Content-Type",1981"value": "application/json"1982},1983{1984"key": "Accept",1985"value": "*/*"1986}1987],1988"body": {1989"mode": "raw",1990"raw": "{\n \"name\": \"Film name\",\n \"description\": \"Пятеро друзей ( комик-группа «Шарло»), приезжают в город Бризуль. Здесь они хотят разыскать господина Огюста Куглова, который задолжал им деньги, а именно 20 миллионов. о Куглов, который за время «своего отсутствия», стал кандидатом Коломбани.\",\n \"releaseDate\": \"1900-03-25\",\n \"duration\": 200,\n \"mpa\": { \"id\": 1}\n}",1991"options": {1992"raw": {1993"language": "json"1994}1995}1996},1997"url": {1998"raw": "{{baseUrl}}/films",1999"host": [2000"{{baseUrl}}"2001],2002"path": [2003"films"2004]2005}2006},2007"response": []2008},2009{2010"name": "Film create Fail releaseDate",2011"event": [2012{2013"listen": "test",2014"script": {2015"exec": [2016"pm.test(\"Status code is 400\", function () {\r",2017" pm.expect(pm.response.code).to.be.equal(400);\r",2018"});\r",2019"pm.test(\"Has error response\", function () {\r",2020" pm.response.to.be.withBody;\r",2021" pm.response.to.be.json;\r",2022"});\r",2023""2024],2025"type": "text/javascript",2026"packages": {}2027}2028}2029],2030"request": {2031"method": "POST",2032"header": [2033{2034"key": "Content-Type",2035"value": "application/json"2036},2037{2038"key": "Accept",2039"value": "*/*"2040}2041],2042"body": {2043"mode": "raw",2044"raw": "{\n \"name\": \"Name\",\n \"description\": \"Description\",\n \"releaseDate\": \"1890-03-25\",\n \"duration\": 200,\n \"mpa\": { \"id\": 1}\n}",2045"options": {2046"raw": {2047"language": "json"2048}2049}2050},2051"url": {2052"raw": "{{baseUrl}}/films",2053"host": [2054"{{baseUrl}}"2055],2056"path": [2057"films"2058]2059}2060},2061"response": []2062},2063{2064"name": "Film create Fail duration",2065"event": [2066{2067"listen": "test",2068"script": {2069"exec": [2070"pm.test(\"Status code is 400\", function () {\r",2071" pm.expect(pm.response.code).to.be.equal(400);\r",2072"});\r",2073"pm.test(\"Has error response\", function () {\r",2074" pm.response.to.be.withBody;\r",2075" pm.response.to.be.json;\r",2076"});\r",2077""2078],2079"type": "text/javascript",2080"packages": {}2081}2082}2083],2084"request": {2085"method": "POST",2086"header": [2087{2088"key": "Content-Type",2089"value": "application/json"2090},2091{2092"key": "Accept",2093"value": "*/*"2094}2095],2096"body": {2097"mode": "raw",2098"raw": "{\n \"name\": \"Name\",\n \"description\": \"Descrition\",\n \"releaseDate\": \"1980-03-25\",\n \"duration\": -200,\n \"mpa\": { \"id\": 1}\n}",2099"options": {2100"raw": {2101"language": "json"2102}2103}2104},2105"url": {2106"raw": "{{baseUrl}}/films",2107"host": [2108"{{baseUrl}}"2109],2110"path": [2111"films"2112]2113}2114},2115"response": []2116},2117{2118"name": "Film create Fail MPA",2119"event": [2120{2121"listen": "test",2122"script": {2123"exec": [2124"pm.test(\"Status code is 400\", function () {\r",2125" pm.expect(pm.response.code).to.be.equal(400);\r",2126"});\r",2127"pm.test(\"Has error response\", function () {\r",2128" pm.response.to.be.withBody;\r",2129" pm.response.to.be.json;\r",2130"});\r",2131""2132],2133"type": "text/javascript",2134"packages": {}2135}2136}2137],2138"request": {2139"method": "POST",2140"header": [2141{2142"key": "Content-Type",2143"value": "application/json"2144},2145{2146"key": "Accept",2147"value": "*/*"2148}2149],2150"body": {2151"mode": "raw",2152"raw": "{\n \"name\": \"Name\",\n \"description\": \"Descrition\",\n \"releaseDate\": \"1980-03-25\",\n \"duration\": 200,\n \"mpa\": { \"id\": 10}\n}",2153"options": {2154"raw": {2155"language": "json"2156}2157}2158},2159"url": {2160"raw": "{{baseUrl}}/films",2161"host": [2162"{{baseUrl}}"2163],2164"path": [2165"films"2166]2167}2168},2169"response": []2170},2171{2172"name": "Film create Fail Genre",2173"event": [2174{2175"listen": "test",2176"script": {2177"exec": [2178"pm.test(\"Status code is 400\", function () {\r",2179" pm.expect(pm.response.code).to.be.equal(400);\r",2180"});\r",2181"pm.test(\"Has error response\", function () {\r",2182" pm.response.to.be.withBody;\r",2183" pm.response.to.be.json;\r",2184"});\r",2185""2186],2187"type": "text/javascript",2188"packages": {}2189}2190}2191],2192"request": {2193"method": "POST",2194"header": [2195{2196"key": "Content-Type",2197"value": "application/json"2198},2199{2200"key": "Accept",2201"value": "*/*"2202}2203],2204"body": {2205"mode": "raw",2206"raw": "{\n \"name\": \"Name\",\n \"description\": \"Descrition\",\n \"releaseDate\": \"1980-03-25\",\n \"duration\": 200,\n \"mpa\": { \"id\": 5},\n \"genres\": [\n {\"id\": 500}\n ]\n}",2207"options": {2208"raw": {2209"language": "json"2210}2211}2212},2213"url": {2214"raw": "{{baseUrl}}/films",2215"host": [2216"{{baseUrl}}"2217],2218"path": [2219"films"2220]2221}2222},2223"response": []2224},2225{2226"name": "Film update",2227"event": [2228{2229"listen": "test",2230"script": {2231"exec": [2232"const source = pm.collectionVariables.get(\"film\")\r",2233"\r",2234"pm.test(\"Status code is 200\", function () {\r",2235" pm.response.to.be.ok;\r",2236"});\r",2237"pm.test(\"Has film update response\", function () {\r",2238" pm.response.to.be.withBody;\r",2239" pm.response.to.be.json;\r",2240"});\r",2241"\r",2242"pm.test(\"Test film 'id' field\", function () {\r",2243" var jsonData = pm.response.json();\r",2244" pm.expect(jsonData).to.have.property('id');\r",2245" pm.expect(jsonData.id, `\"id\" must be ${source.id}`).to.eql(source.id);\r",2246"});\r",2247"pm.test(\"Test film 'name' field\", function () {\r",2248" var jsonData = pm.response.json();\r",2249" pm.expect(jsonData).to.have.property('name');\r",2250" pm.expect(jsonData.name, '\"name\" must be \"Film Updated\"').to.eql('Film Updated');\r",2251"});\r",2252"pm.test(\"Test film 'description' field\", function () {\r",2253" var jsonData = pm.response.json();\r",2254" pm.expect(jsonData).to.have.property('description');\r",2255" pm.expect(jsonData.description, '\"description\" must be \"New film update decription\"').to.eql('New film update decription');\r",2256"});\r",2257"pm.test(\"Test film 'releaseDate' field\", function () {\r",2258" var jsonData = pm.response.json();\r",2259" pm.expect(jsonData).to.have.property('releaseDate');\r",2260" pm.expect(jsonData.releaseDate, '\"releaseDate\" field must be \"1989-04-17\"').to.eql('1989-04-17');\r",2261"});\r",2262"pm.test(\"Test film 'duration' field\", function () {\r",2263" var jsonData = pm.response.json();\r",2264" pm.expect(jsonData).to.have.property('duration');\r",2265" pm.expect(jsonData.duration, '\"duration\" field must be 190').to.eql(190); \r",2266"});\r",2267"\r",2268""2269],2270"type": "text/javascript"2271}2272},2273{2274"listen": "prerequest",2275"script": {2276"exec": [2277"const main = async () => {\r",2278" const api = new API(pm);\r",2279" const rnd = new RandomUtils();\r",2280"\r",2281" let user;\r",2282" try {\r",2283" film = await api.addFilm(rnd.getFilm());\r",2284" pm.collectionVariables.set(\"film\", film);\r",2285" } catch(err) {\r",2286" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",2287" }\r",2288"\r",2289" pm.request.body.update({\r",2290" mode: 'raw',\r",2291" raw: JSON.stringify({\r",2292" \"id\": film.id,\r",2293" \"name\": \"Film Updated\",\r",2294" \"releaseDate\": \"1989-04-17\",\r",2295" \"description\": \"New film update decription\",\r",2296" \"duration\": 190,\r",2297" \"rate\": 4,\r",2298" \"mpa\": { \"id\": 3}\r",2299" }),\r",2300" options: { raw: { language: 'json' } }\r",2301" });\r",2302"\r",2303"};\r",2304"\r",2305"const interval = setInterval(() => {}, 1000);\r",2306"\r",2307"setTimeout(async () => \r",2308" {\r",2309" try {\r",2310" await main();\r",2311" } catch (e) {\r",2312" console.error(e);\r",2313" } finally {\r",2314" clearInterval(interval);\r",2315" }\r",2316" }, \r",2317" 100 \r",2318");"2319],2320"type": "text/javascript"2321}2322}2323],2324"request": {2325"method": "PUT",2326"header": [2327{2328"key": "Content-Type",2329"value": "application/json"2330},2331{2332"key": "Accept",2333"value": "*/*"2334}2335],2336"body": {2337"mode": "raw",2338"raw": "",2339"options": {2340"raw": {2341"language": "json"2342}2343}2344},2345"url": {2346"raw": "{{baseUrl}}/films",2347"host": [2348"{{baseUrl}}"2349],2350"path": [2351"films"2352]2353}2354},2355"response": []2356},2357{2358"name": "Film update unknown",2359"event": [2360{2361"listen": "test",2362"script": {2363"exec": [2364"pm.test(\"Status code is 500\", function () {\r",2365" pm.expect(pm.response.code).to.be.oneOf([500, 404]);\r",2366"});\r",2367"pm.test(\"Has error response\", function () {\r",2368" pm.response.to.be.withBody;\r",2369" pm.response.to.be.json;\r",2370"});\r",2371""2372],2373"type": "text/javascript"2374}2375},2376{2377"listen": "prerequest",2378"script": {2379"exec": [2380"const main = async () => {\r",2381" const api = new API(pm);\r",2382" const rnd = new RandomUtils();\r",2383"\r",2384" let user;\r",2385" try {\r",2386" film = await api.addFilm(rnd.getFilm());\r",2387" pm.collectionVariables.set(\"film\", film);\r",2388" } catch(err) {\r",2389" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",2390" }\r",2391"\r",2392" pm.request.body.update({\r",2393" mode: 'raw',\r",2394" raw: JSON.stringify({\r",2395" \"id\": film.id+1,\r",2396" \"name\": \"Film Updated\",\r",2397" \"releaseDate\": \"1989-04-17\",\r",2398" \"description\": \"New film update decription\",\r",2399" \"duration\": 190,\r",2400" \"rate\": 4,\r",2401" \"mpa\": { \"id\": 3}\r",2402" }),\r",2403" options: { raw: { language: 'json' } }\r",2404" });\r",2405"\r",2406"};\r",2407"\r",2408"const interval = setInterval(() => {}, 1000);\r",2409"\r",2410"setTimeout(async () => \r",2411" {\r",2412" try {\r",2413" await main();\r",2414" } catch (e) {\r",2415" console.error(e);\r",2416" } finally {\r",2417" clearInterval(interval);\r",2418" }\r",2419" }, \r",2420" 100 \r",2421");"2422],2423"type": "text/javascript"2424}2425}2426],2427"request": {2428"method": "PUT",2429"header": [2430{2431"key": "Content-Type",2432"value": "application/json"2433},2434{2435"key": "Accept",2436"value": "*/*"2437}2438],2439"body": {2440"mode": "raw",2441"raw": "",2442"options": {2443"raw": {2444"language": "json"2445}2446}2447},2448"url": {2449"raw": "{{baseUrl}}/films",2450"host": [2451"{{baseUrl}}"2452],2453"path": [2454"films"2455]2456}2457},2458"response": []2459},2460{2461"name": "Film get All",2462"event": [2463{2464"listen": "test",2465"script": {2466"exec": [2467"pm.test(\"Status code is 200\", function () {\r",2468" pm.response.to.be.ok;\r",2469"});\r",2470"pm.test(\"Test list film response\", function () {\r",2471" pm.response.to.be.withBody;\r",2472" pm.response.to.be.json;\r",2473"});\r",2474"pm.test(\"Test film[0] 'id' field\", function () {\r",2475" var jsonData = pm.response.json();\r",2476" pm.expect(jsonData[0]).to.have.property('id');\r",2477" pm.expect(jsonData[0].id, '\"id\" must be 1').to.eql(1);\r",2478"});\r",2479""2480],2481"type": "text/javascript"2482}2483}2484],2485"request": {2486"method": "GET",2487"header": [2488{2489"key": "Accept",2490"value": "*/*"2491}2492],2493"url": {2494"raw": "{{baseUrl}}/films",2495"host": [2496"{{baseUrl}}"2497],2498"path": [2499"films"2500]2501}2502},2503"response": []2504},2505{2506"name": "Film get Popular",2507"event": [2508{2509"listen": "test",2510"script": {2511"exec": [2512"const film1_id = pm.collectionVariables.get(\"film1_id\");\r",2513"const film2_id = pm.collectionVariables.get(\"film2_id\");\r",2514"const film3_id = pm.collectionVariables.get(\"film3_id\");\r",2515"\r",2516"pm.test(\"Status code is 200\", function () {\r",2517" pm.response.to.be.ok;\r",2518"});\r",2519"pm.test(\"Test list popular film response\", function () {\r",2520" pm.response.to.be.withBody;\r",2521" pm.response.to.be.json;\r",2522"});\r",2523"\r",2524"const index1 = pm.response.json().findIndex(x => x.id == film1_id);\r",2525"const index2 = pm.response.json().findIndex(x => x.id == film2_id);\r",2526"const index3 = pm.response.json().findIndex(x => x.id == film3_id);\r",2527"\r",2528"pm.test(\"Test films сonsistency\", function () {\r",2529" pm.expect(index1).to.be.above(index2);\r",2530" pm.expect(index1).to.be.above(index3);\r",2531" pm.expect(index3).to.be.above(index2);\r",2532"});\r",2533"\r",2534""2535],2536"type": "text/javascript"2537}2538},2539{2540"listen": "prerequest",2541"script": {2542"exec": [2543"const main = async () => {\r",2544" const api = new API(pm);\r",2545" const rnd = new RandomUtils();\r",2546"\r",2547" let user1, user2, user3, film1, film2, film3;\r",2548" try {\r",2549" user1 = await api.addUser(rnd.getUser());\r",2550" user2 = await api.addUser(rnd.getUser());\r",2551" user3 = await api.addUser(rnd.getUser());\r",2552" film1 = await api.addFilm(rnd.getFilm());\r",2553" film2 = await api.addFilm(rnd.getFilm());\r",2554" film3 = await api.addFilm(rnd.getFilm());\r",2555" await api.addLike(film2.id, user1.id);\r",2556" await api.addLike(film2.id, user2.id);\r",2557" await api.addLike(film2.id, user3.id);\r",2558" await api.addLike(film3.id, user1.id);\r",2559" await api.addLike(film3.id, user2.id);\r",2560" await api.addLike(film1.id, user1.id);\r",2561" pm.collectionVariables.set(\"film1_id\", film1.id);\r",2562" pm.collectionVariables.set(\"film2_id\", film2.id);\r",2563" pm.collectionVariables.set(\"film3_id\", film3.id);\r",2564" } catch(err) {\r",2565" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",2566" }\r",2567"\r",2568"};\r",2569"\r",2570"const interval = setInterval(() => {}, 1000);\r",2571"\r",2572"setTimeout(async () => \r",2573" {\r",2574" try {\r",2575" await main();\r",2576" } catch (e) {\r",2577" console.error(e);\r",2578" } finally {\r",2579" clearInterval(interval);\r",2580" }\r",2581" }, \r",2582" 100 \r",2583");"2584],2585"type": "text/javascript"2586}2587}2588],2589"request": {2590"method": "GET",2591"header": [2592{2593"key": "Accept",2594"value": "*/*"2595}2596],2597"url": {2598"raw": "{{baseUrl}}/films/popular?count=1000",2599"host": [2600"{{baseUrl}}"2601],2602"path": [2603"films",2604"popular"2605],2606"query": [2607{2608"key": "count",2609"value": "1000"2610}2611]2612}2613},2614"response": []2615}2616]2617},2618{2619"name": "like",2620"item": [2621{2622"name": "Add like",2623"event": [2624{2625"listen": "test",2626"script": {2627"exec": [2628"pm.test(\"Status code is 200\", function () {\r",2629" pm.expect(pm.response.code).to.be.oneOf([200,204]);\r",2630"});\r",2631""2632],2633"type": "text/javascript"2634}2635},2636{2637"listen": "prerequest",2638"script": {2639"exec": [2640"const main = async () => {\r",2641" const api = new API(pm);\r",2642" const rnd = new RandomUtils();\r",2643"\r",2644" let user, film;\r",2645" try {\r",2646" user = await api.addUser(rnd.getUser());\r",2647" film = await api.addFilm(rnd.getFilm());\r",2648" pm.collectionVariables.set(\"id\", user.id);\r",2649" pm.collectionVariables.set(\"film_id\", film.id);\r",2650" } catch(err) {\r",2651" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",2652" }\r",2653"\r",2654"};\r",2655"\r",2656"const interval = setInterval(() => {}, 1000);\r",2657"\r",2658"setTimeout(async () => \r",2659" {\r",2660" try {\r",2661" await main();\r",2662" } catch (e) {\r",2663" console.error(e);\r",2664" } finally {\r",2665" clearInterval(interval);\r",2666" }\r",2667" }, \r",2668" 100 \r",2669");"2670],2671"type": "text/javascript"2672}2673}2674],2675"request": {2676"method": "PUT",2677"header": [2678{2679"key": "Content-Type",2680"value": "application/json"2681},2682{2683"key": "Accept",2684"value": "*/*"2685}2686],2687"body": {2688"mode": "raw",2689"raw": "",2690"options": {2691"raw": {2692"language": "json"2693}2694}2695},2696"url": {2697"raw": "{{baseUrl}}/films/{{film_id}}/like/{{id}}",2698"host": [2699"{{baseUrl}}"2700],2701"path": [2702"films",2703"{{film_id}}",2704"like",2705"{{id}}"2706]2707}2708},2709"response": []2710},2711{2712"name": "Remove like",2713"event": [2714{2715"listen": "test",2716"script": {2717"exec": [2718"pm.test(\"Status code is 200\", function () {\r",2719" pm.expect(pm.response.code).to.be.oneOf([200,204]);\r",2720"});\r",2721""2722],2723"type": "text/javascript"2724}2725},2726{2727"listen": "prerequest",2728"script": {2729"exec": [2730"const main = async () => {\r",2731" const api = new API(pm);\r",2732" const rnd = new RandomUtils();\r",2733"\r",2734" let user, film;\r",2735" try {\r",2736" user = await api.addUser(rnd.getUser());\r",2737" film = await api.addFilm(rnd.getFilm());\r",2738" await api.addLike(film.id, user.id);\r",2739" pm.collectionVariables.set(\"id\", user.id);\r",2740" pm.collectionVariables.set(\"film_id\", film.id);\r",2741" } catch(err) {\r",2742" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",2743" }\r",2744"\r",2745"};\r",2746"\r",2747"const interval = setInterval(() => {}, 1000);\r",2748"\r",2749"setTimeout(async () => \r",2750" {\r",2751" try {\r",2752" await main();\r",2753" } catch (e) {\r",2754" console.error(e);\r",2755" } finally {\r",2756" clearInterval(interval);\r",2757" }\r",2758" }, \r",2759" 100 \r",2760");"2761],2762"type": "text/javascript"2763}2764}2765],2766"request": {2767"method": "DELETE",2768"header": [2769{2770"key": "Content-Type",2771"value": "application/json"2772},2773{2774"key": "Accept",2775"value": "*/*"2776}2777],2778"body": {2779"mode": "raw",2780"raw": "",2781"options": {2782"raw": {2783"language": "json"2784}2785}2786},2787"url": {2788"raw": "{{baseUrl}}/films/{{film_id}}/like/{{id}}",2789"host": [2790"{{baseUrl}}"2791],2792"path": [2793"films",2794"{{film_id}}",2795"like",2796"{{id}}"2797]2798}2799},2800"response": []2801}2802]2803},2804{2805"name": "MPA",2806"item": [2807{2808"name": "Get MPA name by id",2809"event": [2810{2811"listen": "test",2812"script": {2813"exec": [2814"pm.test(\"Status code is 200\", function () {\r",2815" pm.response.to.be.ok;\r",2816"});\r",2817"pm.test(\"Get MPA response\", function () {\r",2818" pm.response.to.be.withBody;\r",2819" pm.response.to.be.json;\r",2820"});\r",2821"\r",2822"const source = pm.collectionVariables.get(\"source\");\r",2823"\r",2824"pm.test(\"Test MPA 'id' field\", function () {\r",2825" var jsonData = pm.response.json();\r",2826" pm.expect(jsonData).to.have.property('id');\r",2827" pm.expect(jsonData.id, `\"id\" must be ${source}`).to.eql(source);\r",2828"});\r",2829"\r",2830"const MPAS = {\r",2831" 1: \"G\",\r",2832" 2: \"PG\",\r",2833" 3: \"PG-13\",\r",2834" 4: \"R\",\r",2835" 5: \"NC-17\"\r",2836"}\r",2837"\r",2838"pm.test(\"Test MPA 'name' field\", function () {\r",2839" var jsonData = pm.response.json();\r",2840" pm.expect(jsonData).to.have.property('name');\r",2841" pm.expect(jsonData.name, `\"name\" must be \"${MPAS[source]}\"`).to.eql(MPAS[source]);\r",2842"});\r",2843""2844],2845"type": "text/javascript"2846}2847},2848{2849"listen": "prerequest",2850"script": {2851"exec": [2852"const mpa = Math.floor(Math.random() * (5 - 1 + 1) + 1);\r",2853"pm.collectionVariables.set(\"id\", mpa);\r",2854"pm.collectionVariables.set(\"source\", mpa)"2855],2856"type": "text/javascript"2857}2858}2859],2860"request": {2861"method": "GET",2862"header": [2863{2864"key": "Accept",2865"value": "*/*"2866}2867],2868"url": {2869"raw": "{{baseUrl}}/mpa/{{id}}",2870"host": [2871"{{baseUrl}}"2872],2873"path": [2874"mpa",2875"{{id}}"2876]2877}2878},2879"response": [2880{2881"name": "OK",2882"originalRequest": {2883"method": "GET",2884"header": [],2885"url": {2886"raw": "{{baseUrl}}/users/:id",2887"host": [2888"{{baseUrl}}"2889],2890"path": [2891"users",2892":id"2893],2894"variable": [2895{2896"key": "id",2897"value": "-29029902",2898"description": "(Required) "2899}2900]2901}2902},2903"status": "OK",2904"code": 200,2905"_postman_previewlanguage": "text",2906"header": [2907{2908"key": "Content-Type",2909"value": "*/*"2910}2911],2912"cookie": [],2913"body": ""2914},2915{2916"name": "Not Found",2917"originalRequest": {2918"method": "GET",2919"header": [],2920"url": {2921"raw": "{{baseUrl}}/users/:id",2922"host": [2923"{{baseUrl}}"2924],2925"path": [2926"users",2927":id"2928],2929"variable": [2930{2931"key": "id",2932"value": "-29029902",2933"description": "(Required) "2934}2935]2936}2937},2938"status": "Not Found",2939"code": 404,2940"_postman_previewlanguage": "text",2941"header": [2942{2943"key": "Content-Type",2944"value": "*/*"2945}2946],2947"cookie": [],2948"body": ""2949},2950{2951"name": "Conflict",2952"originalRequest": {2953"method": "GET",2954"header": [],2955"url": {2956"raw": "{{baseUrl}}/users/:id",2957"host": [2958"{{baseUrl}}"2959],2960"path": [2961"users",2962":id"2963],2964"variable": [2965{2966"key": "id",2967"value": "-29029902",2968"description": "(Required) "2969}2970]2971}2972},2973"status": "Conflict",2974"code": 409,2975"_postman_previewlanguage": "text",2976"header": [2977{2978"key": "Content-Type",2979"value": "*/*"2980}2981],2982"cookie": [],2983"body": ""2984},2985{2986"name": "Internal Server Error",2987"originalRequest": {2988"method": "GET",2989"header": [],2990"url": {2991"raw": "{{baseUrl}}/users/:id",2992"host": [2993"{{baseUrl}}"2994],2995"path": [2996"users",2997":id"2998],2999"variable": [3000{3001"key": "id",3002"value": "-29029902",3003"description": "(Required) "3004}3005]3006}3007},3008"status": "Internal Server Error",3009"code": 500,3010"_postman_previewlanguage": "text",3011"header": [3012{3013"key": "Content-Type",3014"value": "*/*"3015}3016],3017"cookie": [],3018"body": ""3019}3020]3021},3022{3023"name": "MPA id=9999 get not found",3024"event": [3025{3026"listen": "test",3027"script": {3028"exec": [3029"pm.test(\"Status code is 404\", function () {\r",3030" pm.response.to.have.status(404);\r",3031"});"3032],3033"type": "text/javascript"3034}3035}3036],3037"request": {3038"method": "GET",3039"header": [3040{3041"key": "Accept",3042"value": "*/*"3043}3044],3045"url": {3046"raw": "{{baseUrl}}/mpa/:id",3047"host": [3048"{{baseUrl}}"3049],3050"path": [3051"mpa",3052":id"3053],3054"variable": [3055{3056"key": "id",3057"value": "9999",3058"description": "(Required) "3059}3060]3061}3062},3063"response": [3064{3065"name": "OK",3066"originalRequest": {3067"method": "GET",3068"header": [],3069"url": {3070"raw": "{{baseUrl}}/users/:id",3071"host": [3072"{{baseUrl}}"3073],3074"path": [3075"users",3076":id"3077],3078"variable": [3079{3080"key": "id",3081"value": "-29029902",3082"description": "(Required) "3083}3084]3085}3086},3087"status": "OK",3088"code": 200,3089"_postman_previewlanguage": "text",3090"header": [3091{3092"key": "Content-Type",3093"value": "*/*"3094}3095],3096"cookie": [],3097"body": ""3098},3099{3100"name": "Not Found",3101"originalRequest": {3102"method": "GET",3103"header": [],3104"url": {3105"raw": "{{baseUrl}}/users/:id",3106"host": [3107"{{baseUrl}}"3108],3109"path": [3110"users",3111":id"3112],3113"variable": [3114{3115"key": "id",3116"value": "-29029902",3117"description": "(Required) "3118}3119]3120}3121},3122"status": "Not Found",3123"code": 404,3124"_postman_previewlanguage": "text",3125"header": [3126{3127"key": "Content-Type",3128"value": "*/*"3129}3130],3131"cookie": [],3132"body": ""3133},3134{3135"name": "Conflict",3136"originalRequest": {3137"method": "GET",3138"header": [],3139"url": {3140"raw": "{{baseUrl}}/users/:id",3141"host": [3142"{{baseUrl}}"3143],3144"path": [3145"users",3146":id"3147],3148"variable": [3149{3150"key": "id",3151"value": "-29029902",3152"description": "(Required) "3153}3154]3155}3156},3157"status": "Conflict",3158"code": 409,3159"_postman_previewlanguage": "text",3160"header": [3161{3162"key": "Content-Type",3163"value": "*/*"3164}3165],3166"cookie": [],3167"body": ""3168},3169{3170"name": "Internal Server Error",3171"originalRequest": {3172"method": "GET",3173"header": [],3174"url": {3175"raw": "{{baseUrl}}/users/:id",3176"host": [3177"{{baseUrl}}"3178],3179"path": [3180"users",3181":id"3182],3183"variable": [3184{3185"key": "id",3186"value": "-29029902",3187"description": "(Required) "3188}3189]3190}3191},3192"status": "Internal Server Error",3193"code": 500,3194"_postman_previewlanguage": "text",3195"header": [3196{3197"key": "Content-Type",3198"value": "*/*"3199}3200],3201"cookie": [],3202"body": ""3203}3204]3205},3206{3207"name": "MPA get All",3208"event": [3209{3210"listen": "test",3211"script": {3212"exec": [3213"pm.test(\"Status code is 200\", function () {\r",3214" pm.response.to.be.ok;\r",3215"});\r",3216"pm.test(\"Test list MPA response\", function () {\r",3217" pm.response.to.be.withBody;\r",3218" pm.response.to.be.json;\r",3219" var jsonData = pm.response.json();\r",3220" pm.expect(jsonData.length, 'List length must be 5').to.eql(5);\r",3221"});\r",3222"pm.test(\"Test MPA[0] 'id' field\", function () {\r",3223" var jsonData = pm.response.json();\r",3224" pm.expect(jsonData[0]).to.have.property('id');\r",3225" pm.expect(jsonData[0].id, '\"id\" must be 1').to.eql(1);\r",3226"});\r",3227"pm.test(\"Test MPA[0] 'name' field\", function () {\r",3228" var jsonData = pm.response.json();\r",3229" pm.expect(jsonData[0]).to.have.property('name');\r",3230" pm.expect(jsonData[0].name, '\"name\" must be \"G\"').to.eql('G');\r",3231"});\r",3232"pm.test(\"Test MPA[1] 'id' field\", function () {\r",3233" var jsonData = pm.response.json();\r",3234" pm.expect(jsonData[1]).to.have.property('id');\r",3235" pm.expect(jsonData[1].id, '\"id\" must be 2').to.eql(2);\r",3236"});\r",3237"pm.test(\"Test MPA[1] 'name' field\", function () {\r",3238" var jsonData = pm.response.json();\r",3239" pm.expect(jsonData[1]).to.have.property('name');\r",3240" pm.expect(jsonData[1].name, '\"name\" must be \"PG\"').to.eql('PG');\r",3241"});\r",3242"pm.test(\"Test MPA[2] 'id' field\", function () {\r",3243" var jsonData = pm.response.json();\r",3244" pm.expect(jsonData[2]).to.have.property('id');\r",3245" pm.expect(jsonData[2].id, '\"id\" must be 3').to.eql(3);\r",3246"});\r",3247"pm.test(\"Test MPA[2] 'name' field\", function () {\r",3248" var jsonData = pm.response.json();\r",3249" pm.expect(jsonData[2]).to.have.property('name');\r",3250" pm.expect(jsonData[2].name, '\"name\" must be \"PG-13\"').to.eql('PG-13');\r",3251"});\r",3252"pm.test(\"Test MPA[3] 'id' field\", function () {\r",3253" var jsonData = pm.response.json();\r",3254" pm.expect(jsonData[3]).to.have.property('id');\r",3255" pm.expect(jsonData[3].id, '\"id\" must be 4').to.eql(4);\r",3256"});\r",3257"pm.test(\"Test MPA[3] 'name' field\", function () {\r",3258" var jsonData = pm.response.json();\r",3259" pm.expect(jsonData[3]).to.have.property('name');\r",3260" pm.expect(jsonData[3].name, '\"name\" must be \"R\"').to.eql('R');\r",3261"});\r",3262"pm.test(\"Test MPA[4] 'id' field\", function () {\r",3263" var jsonData = pm.response.json();\r",3264" pm.expect(jsonData[4]).to.have.property('id');\r",3265" pm.expect(jsonData[4].id, '\"id\" must be 5').to.eql(5);\r",3266"});\r",3267"pm.test(\"Test MPA[4] 'name' field\", function () {\r",3268" var jsonData = pm.response.json();\r",3269" pm.expect(jsonData[4]).to.have.property('name');\r",3270" pm.expect(jsonData[4].name, '\"name\" must be \"NC-17\"').to.eql('NC-17');\r",3271"});\r",3272""3273],3274"type": "text/javascript"3275}3276}3277],3278"request": {3279"method": "GET",3280"header": [3281{3282"key": "Accept",3283"value": "*/*"3284}3285],3286"url": {3287"raw": "{{baseUrl}}/mpa",3288"host": [3289"{{baseUrl}}"3290],3291"path": [3292"mpa"3293]3294}3295},3296"response": [3297{3298"name": "OK",3299"originalRequest": {3300"method": "GET",3301"header": [],3302"url": {3303"raw": "{{baseUrl}}/users",3304"host": [3305"{{baseUrl}}"3306],3307"path": [3308"users"3309]3310}3311},3312"status": "OK",3313"code": 200,3314"_postman_previewlanguage": "text",3315"header": [3316{3317"key": "Content-Type",3318"value": "*/*"3319}3320],3321"cookie": [],3322"body": ""3323}3324]3325}3326]3327},3328{3329"name": "Genre",3330"item": [3331{3332"name": "Get Genre name by id",3333"event": [3334{3335"listen": "test",3336"script": {3337"exec": [3338"pm.test(\"Status code is 200\", function () {\r",3339" pm.response.to.be.ok;\r",3340"});\r",3341"pm.test(\"Get MPA response\", function () {\r",3342" pm.response.to.be.withBody;\r",3343" pm.response.to.be.json;\r",3344"});\r",3345"\r",3346"const source = pm.collectionVariables.get(\"source\");\r",3347"\r",3348"pm.test(\"Test MPA 'id' field\", function () {\r",3349" var jsonData = pm.response.json();\r",3350" pm.expect(jsonData).to.have.property('id');\r",3351" pm.expect(jsonData.id, `\"id\" must be ${source}`).to.eql(source);\r",3352"});\r",3353"\r",3354"const MPAS = {\r",3355" 1: \"Комедия\",\r",3356" 2: \"Драма\",\r",3357" 3: \"Мультфильм\",\r",3358" 4: \"Триллер\",\r",3359" 5: \"Документальный\",\r",3360" 6: \"Боевик\"\r",3361"}\r",3362"\r",3363"pm.test(\"Test MPA 'name' field\", function () {\r",3364" var jsonData = pm.response.json();\r",3365" pm.expect(jsonData).to.have.property('name');\r",3366" pm.expect(jsonData.name, `\"name\" must be \"${MPAS[source]}\"`).to.eql(MPAS[source]);\r",3367"});\r",3368""3369],3370"type": "text/javascript"3371}3372},3373{3374"listen": "prerequest",3375"script": {3376"exec": [3377"const mpa = Math.floor(Math.random() * (6 - 1 + 1) + 1);\r",3378"pm.collectionVariables.set(\"id\", mpa);\r",3379"pm.collectionVariables.set(\"source\", mpa)"3380],3381"type": "text/javascript"3382}3383}3384],3385"request": {3386"method": "GET",3387"header": [3388{3389"key": "Accept",3390"value": "*/*"3391}3392],3393"url": {3394"raw": "{{baseUrl}}/genres/{{id}}",3395"host": [3396"{{baseUrl}}"3397],3398"path": [3399"genres",3400"{{id}}"3401]3402}3403},3404"response": [3405{3406"name": "OK",3407"originalRequest": {3408"method": "GET",3409"header": [],3410"url": {3411"raw": "{{baseUrl}}/users/:id",3412"host": [3413"{{baseUrl}}"3414],3415"path": [3416"users",3417":id"3418],3419"variable": [3420{3421"key": "id",3422"value": "-29029902",3423"description": "(Required) "3424}3425]3426}3427},3428"status": "OK",3429"code": 200,3430"_postman_previewlanguage": "text",3431"header": [3432{3433"key": "Content-Type",3434"value": "*/*"3435}3436],3437"cookie": [],3438"body": ""3439},3440{3441"name": "Not Found",3442"originalRequest": {3443"method": "GET",3444"header": [],3445"url": {3446"raw": "{{baseUrl}}/users/:id",3447"host": [3448"{{baseUrl}}"3449],3450"path": [3451"users",3452":id"3453],3454"variable": [3455{3456"key": "id",3457"value": "-29029902",3458"description": "(Required) "3459}3460]3461}3462},3463"status": "Not Found",3464"code": 404,3465"_postman_previewlanguage": "text",3466"header": [3467{3468"key": "Content-Type",3469"value": "*/*"3470}3471],3472"cookie": [],3473"body": ""3474},3475{3476"name": "Conflict",3477"originalRequest": {3478"method": "GET",3479"header": [],3480"url": {3481"raw": "{{baseUrl}}/users/:id",3482"host": [3483"{{baseUrl}}"3484],3485"path": [3486"users",3487":id"3488],3489"variable": [3490{3491"key": "id",3492"value": "-29029902",3493"description": "(Required) "3494}3495]3496}3497},3498"status": "Conflict",3499"code": 409,3500"_postman_previewlanguage": "text",3501"header": [3502{3503"key": "Content-Type",3504"value": "*/*"3505}3506],3507"cookie": [],3508"body": ""3509},3510{3511"name": "Internal Server Error",3512"originalRequest": {3513"method": "GET",3514"header": [],3515"url": {3516"raw": "{{baseUrl}}/users/:id",3517"host": [3518"{{baseUrl}}"3519],3520"path": [3521"users",3522":id"3523],3524"variable": [3525{3526"key": "id",3527"value": "-29029902",3528"description": "(Required) "3529}3530]3531}3532},3533"status": "Internal Server Error",3534"code": 500,3535"_postman_previewlanguage": "text",3536"header": [3537{3538"key": "Content-Type",3539"value": "*/*"3540}3541],3542"cookie": [],3543"body": ""3544}3545]3546},3547{3548"name": "Genre id=9999 get not found",3549"event": [3550{3551"listen": "test",3552"script": {3553"exec": [3554"pm.test(\"Status code is 404\", function () {\r",3555" pm.response.to.have.status(404);\r",3556"});"3557],3558"type": "text/javascript"3559}3560}3561],3562"request": {3563"method": "GET",3564"header": [3565{3566"key": "Accept",3567"value": "*/*"3568}3569],3570"url": {3571"raw": "{{baseUrl}}/genres/:id",3572"host": [3573"{{baseUrl}}"3574],3575"path": [3576"genres",3577":id"3578],3579"variable": [3580{3581"key": "id",3582"value": "9999",3583"description": "(Required) "3584}3585]3586}3587},3588"response": [3589{3590"name": "OK",3591"originalRequest": {3592"method": "GET",3593"header": [],3594"url": {3595"raw": "{{baseUrl}}/users/:id",3596"host": [3597"{{baseUrl}}"3598],3599"path": [3600"users",3601":id"3602],3603"variable": [3604{3605"key": "id",3606"value": "-29029902",3607"description": "(Required) "3608}3609]3610}3611},3612"status": "OK",3613"code": 200,3614"_postman_previewlanguage": "text",3615"header": [3616{3617"key": "Content-Type",3618"value": "*/*"3619}3620],3621"cookie": [],3622"body": ""3623},3624{3625"name": "Not Found",3626"originalRequest": {3627"method": "GET",3628"header": [],3629"url": {3630"raw": "{{baseUrl}}/users/:id",3631"host": [3632"{{baseUrl}}"3633],3634"path": [3635"users",3636":id"3637],3638"variable": [3639{3640"key": "id",3641"value": "-29029902",3642"description": "(Required) "3643}3644]3645}3646},3647"status": "Not Found",3648"code": 404,3649"_postman_previewlanguage": "text",3650"header": [3651{3652"key": "Content-Type",3653"value": "*/*"3654}3655],3656"cookie": [],3657"body": ""3658},3659{3660"name": "Conflict",3661"originalRequest": {3662"method": "GET",3663"header": [],3664"url": {3665"raw": "{{baseUrl}}/users/:id",3666"host": [3667"{{baseUrl}}"3668],3669"path": [3670"users",3671":id"3672],3673"variable": [3674{3675"key": "id",3676"value": "-29029902",3677"description": "(Required) "3678}3679]3680}3681},3682"status": "Conflict",3683"code": 409,3684"_postman_previewlanguage": "text",3685"header": [3686{3687"key": "Content-Type",3688"value": "*/*"3689}3690],3691"cookie": [],3692"body": ""3693},3694{3695"name": "Internal Server Error",3696"originalRequest": {3697"method": "GET",3698"header": [],3699"url": {3700"raw": "{{baseUrl}}/users/:id",3701"host": [3702"{{baseUrl}}"3703],3704"path": [3705"users",3706":id"3707],3708"variable": [3709{3710"key": "id",3711"value": "-29029902",3712"description": "(Required) "3713}3714]3715}3716},3717"status": "Internal Server Error",3718"code": 500,3719"_postman_previewlanguage": "text",3720"header": [3721{3722"key": "Content-Type",3723"value": "*/*"3724}3725],3726"cookie": [],3727"body": ""3728}3729]3730},3731{3732"name": "Genre get All",3733"event": [3734{3735"listen": "test",3736"script": {3737"exec": [3738"pm.test(\"Status code is 200\", function () {\r",3739" pm.response.to.be.ok;\r",3740"});\r",3741"pm.test(\"Test list genre response\", function () {\r",3742" pm.response.to.be.withBody;\r",3743" pm.response.to.be.json;\r",3744" var jsonData = pm.response.json();\r",3745" pm.expect(jsonData.length, 'List length must be 6').to.eql(6);\r",3746"});\r",3747"pm.test(\"Test genre[0] 'id' field\", function () {\r",3748" var jsonData = pm.response.json();\r",3749" pm.expect(jsonData[0]).to.have.property('id');\r",3750" pm.expect(jsonData[0].id, '\"id\" must be 1').to.eql(1);\r",3751"});\r",3752"pm.test(\"Test genre[0] 'name' field\", function () {\r",3753" var jsonData = pm.response.json();\r",3754" pm.expect(jsonData[0]).to.have.property('name');\r",3755" pm.expect(jsonData[0].name, '\"name\" must be \"Комедия\"').to.eql('Комедия');\r",3756"});\r",3757"pm.test(\"Test genre[1] 'id' field\", function () {\r",3758" var jsonData = pm.response.json();\r",3759" pm.expect(jsonData[1]).to.have.property('id');\r",3760" pm.expect(jsonData[1].id, '\"id\" must be 2').to.eql(2);\r",3761"});\r",3762"pm.test(\"Test genre[1] 'name' field\", function () {\r",3763" var jsonData = pm.response.json();\r",3764" pm.expect(jsonData[1]).to.have.property('name');\r",3765" pm.expect(jsonData[1].name, '\"name\" must be \"Драма\"').to.eql('Драма');\r",3766"});\r",3767"pm.test(\"Test genre[2] 'id' field\", function () {\r",3768" var jsonData = pm.response.json();\r",3769" pm.expect(jsonData[2]).to.have.property('id');\r",3770" pm.expect(jsonData[2].id, '\"id\" must be 3').to.eql(3);\r",3771"});\r",3772"pm.test(\"Test genre[2] 'name' field\", function () {\r",3773" var jsonData = pm.response.json();\r",3774" pm.expect(jsonData[2]).to.have.property('name');\r",3775" pm.expect(jsonData[2].name, '\"name\" must be \"Мультфильм\"').to.eql('Мультфильм');\r",3776"});\r",3777"pm.test(\"Test genre[3] 'id' field\", function () {\r",3778" var jsonData = pm.response.json();\r",3779" pm.expect(jsonData[3]).to.have.property('id');\r",3780" pm.expect(jsonData[3].id, '\"id\" must be 4').to.eql(4);\r",3781"});\r",3782"pm.test(\"Test genre[3] 'name' field\", function () {\r",3783" var jsonData = pm.response.json();\r",3784" pm.expect(jsonData[3]).to.have.property('name');\r",3785" pm.expect(jsonData[3].name, '\"name\" must be \"Триллер\"').to.eql('Триллер');\r",3786"});\r",3787"pm.test(\"Test genre[4] 'id' field\", function () {\r",3788" var jsonData = pm.response.json();\r",3789" pm.expect(jsonData[4]).to.have.property('id');\r",3790" pm.expect(jsonData[4].id, '\"id\" must be 5').to.eql(5);\r",3791"});\r",3792"pm.test(\"Test genre[4] 'name' field\", function () {\r",3793" var jsonData = pm.response.json();\r",3794" pm.expect(jsonData[4]).to.have.property('name');\r",3795" pm.expect(jsonData[4].name, '\"name\" must be \"Документальный\"').to.eql('Документальный');\r",3796"});\r",3797"pm.test(\"Test genre[5] 'id' field\", function () {\r",3798" var jsonData = pm.response.json();\r",3799" pm.expect(jsonData[5]).to.have.property('id');\r",3800" pm.expect(jsonData[5].id, '\"id\" must be 6').to.eql(6);\r",3801"});\r",3802"pm.test(\"Test genre[5] 'name' field\", function () {\r",3803" var jsonData = pm.response.json();\r",3804" pm.expect(jsonData[5]).to.have.property('name');\r",3805" pm.expect(jsonData[5].name, '\"name\" must be \"Боевик\"').to.eql('Боевик');\r",3806"});\r",3807"\r",3808""3809],3810"type": "text/javascript"3811}3812}3813],3814"request": {3815"method": "GET",3816"header": [3817{3818"key": "Accept",3819"value": "*/*"3820}3821],3822"url": {3823"raw": "{{baseUrl}}/genres",3824"host": [3825"{{baseUrl}}"3826],3827"path": [3828"genres"3829]3830}3831},3832"response": [3833{3834"name": "OK",3835"originalRequest": {3836"method": "GET",3837"header": [],3838"url": {3839"raw": "{{baseUrl}}/users",3840"host": [3841"{{baseUrl}}"3842],3843"path": [3844"users"3845]3846}3847},3848"status": "OK",3849"code": 200,3850"_postman_previewlanguage": "text",3851"header": [3852{3853"key": "Content-Type",3854"value": "*/*"3855}3856],3857"cookie": [],3858"body": ""3859}3860]3861},3862{3863"name": "Film get with genre",3864"event": [3865{3866"listen": "test",3867"script": {3868"exec": [3869"pm.test(\"Status code is 200\", function () {\r",3870" pm.response.to.be.ok;\r",3871"});\r",3872"pm.test(\"Get film response\", function () {\r",3873" pm.response.to.be.withBody;\r",3874" pm.response.to.be.json;\r",3875"});\r",3876"pm.test(\"Test film 'id' field\", function () {\r",3877" var jsonData = pm.response.json();\r",3878" pm.expect(jsonData).to.have.property('id');\r",3879" var filmId = pm.collectionVariables.get(\"id\");\r",3880" pm.expect(jsonData.id, `\"id\" must be ${filmId}`).to.eql(filmId);\r",3881"});\r",3882"pm.test(\"Test film 'name' field\", function () {\r",3883" var jsonData = pm.response.json();\r",3884" pm.expect(jsonData).to.have.property('name');\r",3885" pm.expect(jsonData.name, '\"name\" must be \"Film Updated\"').to.eql('Film Updated');\r",3886"});\r",3887"pm.test(\"Test film 'description' field\", function () {\r",3888" var jsonData = pm.response.json();\r",3889" pm.expect(jsonData).to.have.property('description');\r",3890" pm.expect(jsonData.description, '\"description\" must be \"New film update decription\"').to.eql('New film update decription');\r",3891"});\r",3892"pm.test(\"Test film 'releaseDate' field\", function () {\r",3893" var jsonData = pm.response.json();\r",3894" pm.expect(jsonData).to.have.property('releaseDate');\r",3895" pm.expect(jsonData.releaseDate, '\"releaseDate\" field must be \"1989-04-17\"').to.eql('1989-04-17');\r",3896"});\r",3897"pm.test(\"Test film 'duration' field\", function () {\r",3898" var jsonData = pm.response.json();\r",3899" pm.expect(jsonData).to.have.property('duration');\r",3900" pm.expect(jsonData.duration, '\"duration\" field must be 190').to.eql(190); \r",3901"});\r",3902"pm.test(\"Test film 'mpa' field\", function () {\r",3903" var jsonData = pm.response.json();\r",3904" pm.expect(jsonData).to.have.property('mpa');\r",3905" pm.expect(jsonData.mpa).to.have.property('id');\r",3906" pm.expect(jsonData.mpa.id, '\"mpa.id\" field must be 5').to.eql(5); \r",3907" pm.expect(jsonData.mpa).to.have.property('name');\r",3908" pm.expect(jsonData.mpa.name, '\"mpa.name\" field must be \"PG\"').to.eql(\"NC-17\"); \r",3909"});\r",3910"\r",3911"pm.test(\"Test film 'genres' field\", function () {\r",3912" var jsonData = pm.response.json();\r",3913" pm.expect(jsonData).to.have.property('genres');\r",3914" pm.expect(jsonData.genres.length, '\"genres\" field must be have 1 genre').to.eql(1);\r",3915" pm.expect(jsonData.genres[0]).to.have.property('id');\r",3916" pm.expect(jsonData.genres[0].id, '\"genres[0].id\" field must be 2').to.eql(2); \r",3917" pm.expect(jsonData.genres[0]).to.have.property('name');\r",3918" pm.expect(jsonData.genres[0].name, '\"genres[0].name\" field must be \"Драма\"').to.eql('Драма');\r",3919"});\r",3920""3921],3922"type": "text/javascript",3923"packages": {}3924}3925},3926{3927"listen": "prerequest",3928"script": {3929"exec": [3930"const main = async () => {\r",3931" const api = new API(pm);\r",3932" const rnd = new RandomUtils();\r",3933"\r",3934" try {\r",3935" film = await api.addFilm({\r",3936" \"name\": \"Film Updated\",\r",3937" \"releaseDate\": \"1989-04-17\",\r",3938" \"description\": \"New film update decription\",\r",3939" \"duration\": 190,\r",3940" \"rate\": 4,\r",3941" \"mpa\": { \"id\": 5},\r",3942" \"genres\": [{ \"id\": 2}]\r",3943" });\r",3944" pm.collectionVariables.set(\"id\", film.id);\r",3945" } catch(err) {\r",3946" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",3947" }\r",3948"\r",3949"};\r",3950"\r",3951"const interval = setInterval(() => {}, 1000);\r",3952"\r",3953"setTimeout(async () => \r",3954" {\r",3955" try {\r",3956" await main();\r",3957" } catch (e) {\r",3958" console.error(e);\r",3959" } finally {\r",3960" clearInterval(interval);\r",3961" }\r",3962" }, \r",3963" 100 \r",3964");"3965],3966"type": "text/javascript",3967"packages": {}3968}3969}3970],3971"request": {3972"method": "GET",3973"header": [3974{3975"key": "Accept",3976"value": "*/*"3977}3978],3979"url": {3980"raw": "{{baseUrl}}/films/:id",3981"host": [3982"{{baseUrl}}"3983],3984"path": [3985"films",3986":id"3987],3988"variable": [3989{3990"key": "id",3991"value": "{{id}}",3992"description": "(Required) "3993}3994]3995}3996},3997"response": [3998{3999"name": "OK",4000"originalRequest": {4001"method": "GET",4002"header": [],4003"url": {4004"raw": "{{baseUrl}}/films/:id",4005"host": [4006"{{baseUrl}}"4007],4008"path": [4009"films",4010":id"4011],4012"variable": [4013{4014"key": "id",4015"value": "-29029902",4016"description": "(Required) "4017}4018]4019}4020},4021"status": "OK",4022"code": 200,4023"_postman_previewlanguage": "text",4024"header": [4025{4026"key": "Content-Type",4027"value": "*/*"4028}4029],4030"cookie": [],4031"body": ""4032},4033{4034"name": "Not Found",4035"originalRequest": {4036"method": "GET",4037"header": [],4038"url": {4039"raw": "{{baseUrl}}/films/:id",4040"host": [4041"{{baseUrl}}"4042],4043"path": [4044"films",4045":id"4046],4047"variable": [4048{4049"key": "id",4050"value": "-29029902",4051"description": "(Required) "4052}4053]4054}4055},4056"status": "Not Found",4057"code": 404,4058"_postman_previewlanguage": "text",4059"header": [4060{4061"key": "Content-Type",4062"value": "*/*"4063}4064],4065"cookie": [],4066"body": ""4067},4068{4069"name": "Conflict",4070"originalRequest": {4071"method": "GET",4072"header": [],4073"url": {4074"raw": "{{baseUrl}}/films/:id",4075"host": [4076"{{baseUrl}}"4077],4078"path": [4079"films",4080":id"4081],4082"variable": [4083{4084"key": "id",4085"value": "-29029902",4086"description": "(Required) "4087}4088]4089}4090},4091"status": "Conflict",4092"code": 409,4093"_postman_previewlanguage": "text",4094"header": [4095{4096"key": "Content-Type",4097"value": "*/*"4098}4099],4100"cookie": [],4101"body": ""4102},4103{4104"name": "Internal Server Error",4105"originalRequest": {4106"method": "GET",4107"header": [],4108"url": {4109"raw": "{{baseUrl}}/films/:id",4110"host": [4111"{{baseUrl}}"4112],4113"path": [4114"films",4115":id"4116],4117"variable": [4118{4119"key": "id",4120"value": "-29029902",4121"description": "(Required) "4122}4123]4124}4125},4126"status": "Internal Server Error",4127"code": 500,4128"_postman_previewlanguage": "text",4129"header": [4130{4131"key": "Content-Type",4132"value": "*/*"4133}4134],4135"cookie": [],4136"body": ""4137}4138]4139},4140{4141"name": "Film get without genre",4142"event": [4143{4144"listen": "test",4145"script": {4146"exec": [4147"pm.test(\"Status code is 200\", function () {\r",4148" pm.response.to.be.ok;\r",4149"});\r",4150"pm.test(\"Get film response\", function () {\r",4151" pm.response.to.be.withBody;\r",4152" pm.response.to.be.json;\r",4153"});\r",4154"pm.test(\"Test film 'id' field\", function () {\r",4155" var jsonData = pm.response.json();\r",4156" pm.expect(jsonData).to.have.property('id');\r",4157" var filmId = pm.collectionVariables.get(\"id\");\r",4158" pm.expect(jsonData.id, `\"id\" must be ${filmId}`).to.eql(filmId);\r",4159"});\r",4160"pm.test(\"Test film 'name' field\", function () {\r",4161" var jsonData = pm.response.json();\r",4162" pm.expect(jsonData).to.have.property('name');\r",4163" pm.expect(jsonData.name, '\"name\" must be \"New film\"').to.eql('New film');\r",4164"});\r",4165"pm.test(\"Test film 'description' field\", function () {\r",4166" var jsonData = pm.response.json();\r",4167" pm.expect(jsonData).to.have.property('description');\r",4168" pm.expect(jsonData.description, '\"description\" must be \"New film about friends\"').to.eql('New film about friends');\r",4169"});\r",4170"pm.test(\"Test film 'releaseDate' field\", function () {\r",4171" var jsonData = pm.response.json();\r",4172" pm.expect(jsonData).to.have.property('releaseDate');\r",4173" pm.expect(jsonData.releaseDate, '\"releaseDate\" field must be \"1999-04-30\"').to.eql('1999-04-30');\r",4174"});\r",4175"pm.test(\"Test film 'duration' field\", function () {\r",4176" var jsonData = pm.response.json();\r",4177" pm.expect(jsonData).to.have.property('duration');\r",4178" pm.expect(jsonData.duration, '\"duration\" field must be 120').to.eql(120); \r",4179"});\r",4180"pm.test(\"Test film 'mpa' field\", function () {\r",4181" var jsonData = pm.response.json();\r",4182" pm.expect(jsonData).to.have.property('mpa');\r",4183" pm.expect(jsonData.mpa).to.have.property('id');\r",4184" pm.expect(jsonData.mpa.id, '\"mpa.id\" field must be 3').to.eql(3); \r",4185" pm.expect(jsonData.mpa).to.have.property('name');\r",4186" pm.expect(jsonData.mpa.name, '\"mpa.name\" field must be \"PG-13\"').to.eql(\"PG-13\"); \r",4187"});\r",4188"\r",4189"pm.test(\"Test film 'genres' field\", function () {\r",4190" var jsonData = pm.response.json();\r",4191" pm.expect(jsonData).to.have.property('genres');\r",4192" if (jsonData.genres != null) {\r",4193" pm.expect(jsonData.genres.length, '\"genres\" field must be have 0 genre').to.eql(0);\r",4194" }\r",4195"});\r",4196""4197],4198"type": "text/javascript",4199"packages": {}4200}4201},4202{4203"listen": "prerequest",4204"script": {4205"exec": [4206"const main = async () => {\r",4207" const api = new API(pm);\r",4208" const rnd = new RandomUtils();\r",4209"\r",4210" try {\r",4211" film = await api.addFilm({\r",4212" \"name\": \"New film\",\r",4213" \"releaseDate\": \"1999-04-30\",\r",4214" \"description\": \"New film about friends\",\r",4215" \"duration\": 120,\r",4216" \"mpa\": { \"id\": 3}\r",4217" });\r",4218" pm.collectionVariables.set(\"id\", film.id);\r",4219" } catch(err) {\r",4220" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",4221" }\r",4222"\r",4223"};\r",4224"\r",4225"const interval = setInterval(() => {}, 1000);\r",4226"\r",4227"setTimeout(async () => \r",4228" {\r",4229" try {\r",4230" await main();\r",4231" } catch (e) {\r",4232" console.error(e);\r",4233" } finally {\r",4234" clearInterval(interval);\r",4235" }\r",4236" }, \r",4237" 100 \r",4238");"4239],4240"type": "text/javascript",4241"packages": {}4242}4243}4244],4245"request": {4246"method": "GET",4247"header": [4248{4249"key": "Accept",4250"value": "*/*"4251}4252],4253"url": {4254"raw": "{{baseUrl}}/films/:id",4255"host": [4256"{{baseUrl}}"4257],4258"path": [4259"films",4260":id"4261],4262"variable": [4263{4264"key": "id",4265"value": "{{id}}",4266"description": "(Required) "4267}4268]4269}4270},4271"response": [4272{4273"name": "OK",4274"originalRequest": {4275"method": "GET",4276"header": [],4277"url": {4278"raw": "{{baseUrl}}/films/:id",4279"host": [4280"{{baseUrl}}"4281],4282"path": [4283"films",4284":id"4285],4286"variable": [4287{4288"key": "id",4289"value": "-29029902",4290"description": "(Required) "4291}4292]4293}4294},4295"status": "OK",4296"code": 200,4297"_postman_previewlanguage": "text",4298"header": [4299{4300"key": "Content-Type",4301"value": "*/*"4302}4303],4304"cookie": [],4305"body": ""4306},4307{4308"name": "Not Found",4309"originalRequest": {4310"method": "GET",4311"header": [],4312"url": {4313"raw": "{{baseUrl}}/films/:id",4314"host": [4315"{{baseUrl}}"4316],4317"path": [4318"films",4319":id"4320],4321"variable": [4322{4323"key": "id",4324"value": "-29029902",4325"description": "(Required) "4326}4327]4328}4329},4330"status": "Not Found",4331"code": 404,4332"_postman_previewlanguage": "text",4333"header": [4334{4335"key": "Content-Type",4336"value": "*/*"4337}4338],4339"cookie": [],4340"body": ""4341},4342{4343"name": "Conflict",4344"originalRequest": {4345"method": "GET",4346"header": [],4347"url": {4348"raw": "{{baseUrl}}/films/:id",4349"host": [4350"{{baseUrl}}"4351],4352"path": [4353"films",4354":id"4355],4356"variable": [4357{4358"key": "id",4359"value": "-29029902",4360"description": "(Required) "4361}4362]4363}4364},4365"status": "Conflict",4366"code": 409,4367"_postman_previewlanguage": "text",4368"header": [4369{4370"key": "Content-Type",4371"value": "*/*"4372}4373],4374"cookie": [],4375"body": ""4376},4377{4378"name": "Internal Server Error",4379"originalRequest": {4380"method": "GET",4381"header": [],4382"url": {4383"raw": "{{baseUrl}}/films/:id",4384"host": [4385"{{baseUrl}}"4386],4387"path": [4388"films",4389":id"4390],4391"variable": [4392{4393"key": "id",4394"value": "-29029902",4395"description": "(Required) "4396}4397]4398}4399},4400"status": "Internal Server Error",4401"code": 500,4402"_postman_previewlanguage": "text",4403"header": [4404{4405"key": "Content-Type",4406"value": "*/*"4407}4408],4409"cookie": [],4410"body": ""4411}4412]4413},4414{4415"name": "Film get with genres",4416"event": [4417{4418"listen": "test",4419"script": {4420"exec": [4421"pm.test(\"Status code is 200\", function () {\r",4422" pm.response.to.be.ok;\r",4423"});\r",4424"pm.test(\"Get film response\", function () {\r",4425" pm.response.to.be.withBody;\r",4426" pm.response.to.be.json;\r",4427"});\r",4428"pm.test(\"Test film 'id' field\", function () {\r",4429" var jsonData = pm.response.json();\r",4430" pm.expect(jsonData).to.have.property('id');\r",4431" var filmId = pm.collectionVariables.get(\"id\");\r",4432" pm.expect(jsonData.id, `\"id\" must be ${filmId}`).to.eql(filmId);\r",4433"});\r",4434"pm.test(\"Test film 'name' field\", function () {\r",4435" var jsonData = pm.response.json();\r",4436" pm.expect(jsonData).to.have.property('name');\r",4437" pm.expect(jsonData.name, '\"name\" must be \"New film\"').to.eql('New film');\r",4438"});\r",4439"pm.test(\"Test film 'description' field\", function () {\r",4440" var jsonData = pm.response.json();\r",4441" pm.expect(jsonData).to.have.property('description');\r",4442" pm.expect(jsonData.description, '\"description\" must be \"New film about friends\"').to.eql('New film about friends');\r",4443"});\r",4444"pm.test(\"Test film 'releaseDate' field\", function () {\r",4445" var jsonData = pm.response.json();\r",4446" pm.expect(jsonData).to.have.property('releaseDate');\r",4447" pm.expect(jsonData.releaseDate, '\"releaseDate\" field must be \"1999-04-30\"').to.eql('1999-04-30');\r",4448"});\r",4449"pm.test(\"Test film 'duration' field\", function () {\r",4450" var jsonData = pm.response.json();\r",4451" pm.expect(jsonData).to.have.property('duration');\r",4452" pm.expect(jsonData.duration, '\"duration\" field must be 100').to.eql(120); \r",4453"});\r",4454"\r",4455"pm.test(\"Test film 'mpa.id' field\", function () {\r",4456" var jsonData = pm.response.json();\r",4457" pm.expect(jsonData).to.have.property('mpa');\r",4458" pm.expect(jsonData.mpa).to.have.property('id');\r",4459" pm.expect(jsonData.mpa.id, '\"mpa.id\" field must be 3').to.eql(3);\r",4460" pm.expect(jsonData.mpa).to.have.property('name');\r",4461" pm.expect(jsonData.mpa.name, '\"mpa.name\" field must be \"PG-13\"').to.eql(\"PG-13\");\r",4462"});\r",4463"\r",4464"pm.test(\"Test film 'genres' field\", function () {\r",4465" var jsonData = pm.response.json();\r",4466" pm.expect(jsonData).to.have.property('genres');\r",4467" pm.expect(jsonData.genres.length, '\"genres\" field must be have 3 genres').to.eql(3);\r",4468" pm.expect(jsonData.genres[0]).to.have.property('id');\r",4469" pm.expect(jsonData.genres[0].id, '\"genres[0].id\" field must be 1').to.eql(1); \r",4470" pm.expect(jsonData.genres[0]).to.have.property('name');\r",4471" pm.expect(jsonData.genres[0].name, '\"genres[0].name\" field must be \"Комедия\"').to.eql('Комедия');\r",4472" pm.expect(jsonData.genres[1]).to.have.property('id');\r",4473" pm.expect(jsonData.genres[1].id, '\"genres[1].id\" field must be 2').to.eql(2);\r",4474" pm.expect(jsonData.genres[1]).to.have.property('name');\r",4475" pm.expect(jsonData.genres[1].name, '\"genres[1].name\" field must be \"Драма\"').to.eql('Драма');\r",4476" pm.expect(jsonData.genres[2]).to.have.property('id');\r",4477" pm.expect(jsonData.genres[2].id, '\"genres[2].id\" field must be 3').to.eql(3);\r",4478" pm.expect(jsonData.genres[2]).to.have.property('name');\r",4479" pm.expect(jsonData.genres[2].name, '\"genres[2].name\" field must be \"Мультфильм\"').to.eql('Мультфильм');\r",4480"});"4481],4482"type": "text/javascript",4483"packages": {}4484}4485},4486{4487"listen": "prerequest",4488"script": {4489"exec": [4490"const main = async () => {\r",4491" const api = new API(pm);\r",4492" const rnd = new RandomUtils();\r",4493"\r",4494" try {\r",4495" film = await api.addFilm({\r",4496" \"name\": \"New film\",\r",4497" \"releaseDate\": \"1999-04-30\",\r",4498" \"description\": \"New film about friends\",\r",4499" \"duration\": 120,\r",4500" \"mpa\": { \"id\": 3},\r",4501" \"genres\": [{ \"id\": 1}, { \"id\": 2}, { \"id\": 3}]\r",4502" });\r",4503" pm.collectionVariables.set(\"id\", film.id);\r",4504" } catch(err) {\r",4505" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",4506" }\r",4507"\r",4508"};\r",4509"\r",4510"const interval = setInterval(() => {}, 1000);\r",4511"\r",4512"setTimeout(async () => \r",4513" {\r",4514" try {\r",4515" await main();\r",4516" } catch (e) {\r",4517" console.error(e);\r",4518" } finally {\r",4519" clearInterval(interval);\r",4520" }\r",4521" }, \r",4522" 100 \r",4523");"4524],4525"type": "text/javascript",4526"packages": {}4527}4528}4529],4530"request": {4531"method": "GET",4532"header": [4533{4534"key": "Accept",4535"value": "*/*"4536}4537],4538"url": {4539"raw": "{{baseUrl}}/films/:id",4540"host": [4541"{{baseUrl}}"4542],4543"path": [4544"films",4545":id"4546],4547"variable": [4548{4549"key": "id",4550"value": "{{id}}",4551"description": "(Required) "4552}4553]4554}4555},4556"response": [4557{4558"name": "OK",4559"originalRequest": {4560"method": "GET",4561"header": [],4562"url": {4563"raw": "{{baseUrl}}/films/:id",4564"host": [4565"{{baseUrl}}"4566],4567"path": [4568"films",4569":id"4570],4571"variable": [4572{4573"key": "id",4574"value": "-29029902",4575"description": "(Required) "4576}4577]4578}4579},4580"status": "OK",4581"code": 200,4582"_postman_previewlanguage": "text",4583"header": [4584{4585"key": "Content-Type",4586"value": "*/*"4587}4588],4589"cookie": [],4590"body": ""4591},4592{4593"name": "Not Found",4594"originalRequest": {4595"method": "GET",4596"header": [],4597"url": {4598"raw": "{{baseUrl}}/films/:id",4599"host": [4600"{{baseUrl}}"4601],4602"path": [4603"films",4604":id"4605],4606"variable": [4607{4608"key": "id",4609"value": "-29029902",4610"description": "(Required) "4611}4612]4613}4614},4615"status": "Not Found",4616"code": 404,4617"_postman_previewlanguage": "text",4618"header": [4619{4620"key": "Content-Type",4621"value": "*/*"4622}4623],4624"cookie": [],4625"body": ""4626},4627{4628"name": "Conflict",4629"originalRequest": {4630"method": "GET",4631"header": [],4632"url": {4633"raw": "{{baseUrl}}/films/:id",4634"host": [4635"{{baseUrl}}"4636],4637"path": [4638"films",4639":id"4640],4641"variable": [4642{4643"key": "id",4644"value": "-29029902",4645"description": "(Required) "4646}4647]4648}4649},4650"status": "Conflict",4651"code": 409,4652"_postman_previewlanguage": "text",4653"header": [4654{4655"key": "Content-Type",4656"value": "*/*"4657}4658],4659"cookie": [],4660"body": ""4661},4662{4663"name": "Internal Server Error",4664"originalRequest": {4665"method": "GET",4666"header": [],4667"url": {4668"raw": "{{baseUrl}}/films/:id",4669"host": [4670"{{baseUrl}}"4671],4672"path": [4673"films",4674":id"4675],4676"variable": [4677{4678"key": "id",4679"value": "-29029902",4680"description": "(Required) "4681}4682]4683}4684},4685"status": "Internal Server Error",4686"code": 500,4687"_postman_previewlanguage": "text",4688"header": [4689{4690"key": "Content-Type",4691"value": "*/*"4692}4693],4694"cookie": [],4695"body": ""4696}4697]4698},4699{4700"name": "Film get with genre without duplicate",4701"event": [4702{4703"listen": "test",4704"script": {4705"exec": [4706"pm.test(\"Status code is 200\", function () {\r",4707" pm.response.to.be.ok;\r",4708"});\r",4709"pm.test(\"Get film response\", function () {\r",4710" pm.response.to.be.withBody;\r",4711" pm.response.to.be.json;\r",4712"});\r",4713"pm.test(\"Test film 'id' field\", function () {\r",4714" var jsonData = pm.response.json();\r",4715" pm.expect(jsonData).to.have.property('id');\r",4716" var filmId = pm.collectionVariables.get(\"id\");\r",4717" pm.expect(jsonData.id, `\"id\" must be ${filmId}`).to.eql(filmId);\r",4718"});\r",4719"pm.test(\"Test film 'name' field\", function () {\r",4720" var jsonData = pm.response.json();\r",4721" pm.expect(jsonData).to.have.property('name');\r",4722" pm.expect(jsonData.name, '\"name\" must be \"New film\"').to.eql('New film');\r",4723"});\r",4724"pm.test(\"Test film 'description' field\", function () {\r",4725" var jsonData = pm.response.json();\r",4726" pm.expect(jsonData).to.have.property('description');\r",4727" pm.expect(jsonData.description, '\"description\" must be \"New film about friends\"').to.eql('New film about friends');\r",4728"});\r",4729"pm.test(\"Test film 'releaseDate' field\", function () {\r",4730" var jsonData = pm.response.json();\r",4731" pm.expect(jsonData).to.have.property('releaseDate');\r",4732" pm.expect(jsonData.releaseDate, '\"releaseDate\" field must be \"1999-04-30\"').to.eql('1999-04-30');\r",4733"});\r",4734"pm.test(\"Test film 'duration' field\", function () {\r",4735" var jsonData = pm.response.json();\r",4736" pm.expect(jsonData).to.have.property('duration');\r",4737" pm.expect(jsonData.duration, '\"duration\" field must be 100').to.eql(120); \r",4738"});\r",4739"\r",4740"pm.test(\"Test film 'mpa.id' field\", function () {\r",4741" var jsonData = pm.response.json();\r",4742" pm.expect(jsonData).to.have.property('mpa');\r",4743" pm.expect(jsonData.mpa).to.have.property('id');\r",4744" pm.expect(jsonData.mpa.id, '\"mpa.id\" field must be 3').to.eql(3);\r",4745" pm.expect(jsonData.mpa).to.have.property('name');\r",4746" pm.expect(jsonData.mpa.name, '\"mpa.name\" field must be \"PG-13\"').to.eql(\"PG-13\");\r",4747"});\r",4748"\r",4749"pm.test(\"Test film 'genres' field\", function () {\r",4750" var jsonData = pm.response.json();\r",4751" pm.expect(jsonData).to.have.property('genres');\r",4752" pm.expect(jsonData.genres.length, '\"genres\" field must be have 2 genres').to.eql(2);\r",4753" pm.expect(jsonData.genres[0]).to.have.property('id');\r",4754" pm.expect(jsonData.genres[0].id, '\"genres[0].id\" field must be 1').to.eql(1); \r",4755" pm.expect(jsonData.genres[0]).to.have.property('name');\r",4756" pm.expect(jsonData.genres[0].name, '\"genres[0].name\" field must be \"Комедия\"').to.eql('Комедия');\r",4757" pm.expect(jsonData.genres[1]).to.have.property('id');\r",4758" pm.expect(jsonData.genres[1].id, '\"genres[1].id\" field must be 2').to.eql(2);\r",4759" pm.expect(jsonData.genres[1]).to.have.property('name');\r",4760" pm.expect(jsonData.genres[1].name, '\"genres[1].name\" field must be \"Драма\"').to.eql('Драма');\r",4761"});"4762],4763"type": "text/javascript",4764"packages": {}4765}4766},4767{4768"listen": "prerequest",4769"script": {4770"exec": [4771"const main = async () => {\r",4772" const api = new API(pm);\r",4773" const rnd = new RandomUtils();\r",4774"\r",4775" try {\r",4776" film = await api.addFilm({\r",4777" \"name\": \"New film\",\r",4778" \"releaseDate\": \"1999-04-30\",\r",4779" \"description\": \"New film about friends\",\r",4780" \"duration\": 120,\r",4781" \"mpa\": { \"id\": 3},\r",4782" \"genres\": [{ \"id\": 1}, { \"id\": 2}, { \"id\": 1}]\r",4783" });\r",4784" pm.collectionVariables.set(\"id\", film.id);\r",4785" } catch(err) {\r",4786" console.error(\"Ошибка при подготовке тестовых данных.\", err);\r",4787" }\r",4788"\r",4789"};\r",4790"\r",4791"const interval = setInterval(() => {}, 1000);\r",4792"\r",4793"setTimeout(async () => \r",4794" {\r",4795" try {\r",4796" await main();\r",4797" } catch (e) {\r",4798" console.error(e);\r",4799" } finally {\r",4800" clearInterval(interval);\r",4801" }\r",4802" }, \r",4803" 100 \r",4804");"4805],4806"type": "text/javascript",4807"packages": {}4808}4809}4810],4811"request": {4812"method": "GET",4813"header": [4814{4815"key": "Accept",4816"value": "*/*"4817}4818],4819"url": {4820"raw": "{{baseUrl}}/films/:id",4821"host": [4822"{{baseUrl}}"4823],4824"path": [4825"films",4826":id"4827],4828"variable": [4829{4830"key": "id",4831"value": "{{id}}",4832"description": "(Required) "4833}4834]4835}4836},4837"response": [4838{4839"name": "OK",4840"originalRequest": {4841"method": "GET",4842"header": [],4843"url": {4844"raw": "{{baseUrl}}/films/:id",4845"host": [4846"{{baseUrl}}"4847],4848"path": [4849"films",4850":id"4851],4852"variable": [4853{4854"key": "id",4855"value": "-29029902",4856"description": "(Required) "4857}4858]4859}4860},4861"status": "OK",4862"code": 200,4863"_postman_previewlanguage": "text",4864"header": [4865{4866"key": "Content-Type",4867"value": "*/*"4868}4869],4870"cookie": [],4871"body": ""4872},4873{4874"name": "Not Found",4875"originalRequest": {4876"method": "GET",4877"header": [],4878"url": {4879"raw": "{{baseUrl}}/films/:id",4880"host": [4881"{{baseUrl}}"4882],4883"path": [4884"films",4885":id"4886],4887"variable": [4888{4889"key": "id",4890"value": "-29029902",4891"description": "(Required) "4892}4893]4894}4895},4896"status": "Not Found",4897"code": 404,4898"_postman_previewlanguage": "text",4899"header": [4900{4901"key": "Content-Type",4902"value": "*/*"4903}4904],4905"cookie": [],4906"body": ""4907},4908{4909"name": "Conflict",4910"originalRequest": {4911"method": "GET",4912"header": [],4913"url": {4914"raw": "{{baseUrl}}/films/:id",4915"host": [4916"{{baseUrl}}"4917],4918"path": [4919"films",4920":id"4921],4922"variable": [4923{4924"key": "id",4925"value": "-29029902",4926"description": "(Required) "4927}4928]4929}4930},4931"status": "Conflict",4932"code": 409,4933"_postman_previewlanguage": "text",4934"header": [4935{4936"key": "Content-Type",4937"value": "*/*"4938}4939],4940"cookie": [],4941"body": ""4942},4943{4944"name": "Internal Server Error",4945"originalRequest": {4946"method": "GET",4947"header": [],4948"url": {4949"raw": "{{baseUrl}}/films/:id",4950"host": [4951"{{baseUrl}}"4952],4953"path": [4954"films",4955":id"4956],4957"variable": [4958{4959"key": "id",4960"value": "-29029902",4961"description": "(Required) "4962}4963]4964}4965},4966"status": "Internal Server Error",4967"code": 500,4968"_postman_previewlanguage": "text",4969"header": [4970{4971"key": "Content-Type",4972"value": "*/*"4973}4974],4975"cookie": [],4976"body": ""4977}4978]4979}4980]4981}4982],4983"event": [4984{4985"listen": "prerequest",4986"script": {4987"type": "text/javascript",4988"exec": [4989"API = class {",4990" constructor(postman, verbose = false, baseUrl = \"http://localhost:8080\") {",4991" this.baseUrl = baseUrl;",4992" this.pm = postman;",4993" this._verbose = verbose;",4994" }",4995"",4996" async addUser(user, verbose=null) {",4997" return this.post(\"/users\", user, \"Ошибка при добавлении нового пользователя: \", verbose);",4998" }",4999"",5000" async addFilm(film, verbose=null) {",5001" return this.post(\"/films\", film, \"Ошибка при добавлении нового фильма: \", verbose);",5002" }",5003"",5004" async addFriend(userId, friendId, verbose=null) {",5005" return this.put(\"/users/\" + userId + '/friends/' + friendId, null, \"Ошибка при добавлении нового фильма: \", verbose);",5006" }",5007"",5008" async addLike(filmId, userId, verbose=null) {",5009" return this.put(\"/films/\" + filmId + '/like/' + userId, null, \"Ошибка при добавлении лайка на фильм: \", verbose);",5010" }",5011"",5012" async getFriends(userId, verbose=null) {",5013" return this.get('/users/' + userId + '/friends', null, \"Ошибка при поиске друзей по id пользователя\", verbose);",5014" }",5015"",5016" async post(path, body, errorText = \"Ошибка при выполнении post-запроса: \", verbose=null) {",5017" return this.sendRequest(\"POST\", path, body, errorText, verbose);",5018" }",5019"",5020" async patch(path, body = null, errorText = \"Ошибка при выполнении patch-запроса: \", verbose=null) {",5021" return this.sendRequest(\"PATCH\", path, body, errorText, verbose);",5022" }",5023"",5024" async get(path, body = null, errorText = \"Ошибка при выполнении get-запроса: \", verbose=null) {",5025" return this.sendRequest(\"GET\", path, body, errorText, verbose);",5026" }",5027"",5028" async put(path, body = null, errorText = \"Ошибка при выполнении put-запроса: \", verbose=null) {",5029" return this.sendRequest(\"PUT\", path, body, errorText, verbose);",5030" }",5031"",5032" async sendRequest(method, path, body=null, errorText = \"Ошибка при выполнении запроса: \", verbose=null) {",5033" return new Promise((resolve, reject) => {",5034" verbose = verbose == null ? this._verbose : verbose;",5035" const request = {",5036" url: this.baseUrl + path,",5037" method: method,",5038" body: body == null ? \"\" : JSON.stringify(body),",5039" header: { \"Content-Type\": \"application/json\" },",5040" };",5041" if(verbose) {",5042" console.log(\"Отправляю запрос: \", request);",5043" }",5044"",5045" try {",5046" this.pm.sendRequest(request, (error, response) => {",5047" if(error || (response.code >= 400 && response.code <= 599)) {",5048" let err = error ? error : JSON.stringify(response.json());",5049" console.error(\"При выполнении запроса к серверу возникла ошика.\\n\", err,",5050" \"\\nДля отладки проблемы повторите такой же запрос к вашей программе \" + ",5051" \"на локальном компьютере. Данные запроса:\\n\", JSON.stringify(request));",5052"",5053" reject(new Error(errorText + err));",5054" }",5055" if(verbose) {",5056" console.log(\"Результат обработки запроса: код состояния - \", response.code, \", тело: \", response.json());",5057" }",5058" if (response.stream.length === 0){",5059" resolve(null);",5060" }else{",5061" resolve(response.json());",5062" }",5063" });",5064" ",5065" } catch(err) {",5066" if(verbose) {",5067" console.error(errorText, err);",5068" }",5069" return Promise.reject(err);",5070" }",5071" });",5072" }",5073"};",5074"",5075"RandomUtils = class {",5076" constructor() {}",5077"",5078" getUser() {",5079" let date = new Date(new Date(1960, 0, 1).getTime() + Math.random() * (new Date(2010, 0, 1).getTime() - new Date(1960, 0, 1).getTime()));",5080" return {",5081" name: pm.variables.replaceIn('{{$randomFullName}}'),",5082" login: this.getWord(10),",5083" email: pm.variables.replaceIn('{{$randomEmail}}'),",5084" birthday: date.toISOString().slice(0,10)",5085" };",5086" }",5087"",5088" getFilm() {",5089" let date = new Date(new Date(1960, 0, 1).getTime() + Math.random() * (new Date(2010, 0, 1).getTime() - new Date(1960, 0, 1).getTime()));",5090" return {",5091" name: this.getWord(15),",5092" description: this.getWord(50),",5093" releaseDate: date.toISOString().slice(0,10),",5094" duration: Math.floor(Math.random() * (180 - 60 + 1) + 60),",5095" mpa: { id: Math.floor(Math.random() * (5 - 1 + 1) + 1)},",5096" genres: [{ id: Math.floor(Math.random() * (6 - 1 + 1) + 1)}]",5097" };",5098" }",5099"",5100" getWord(length = 1) {",5101" let result = '';",5102" const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';",5103" const charactersLength = characters.length;",5104" let counter = 0;",5105" while (counter < length) {",5106" result += characters.charAt(Math.floor(Math.random() * charactersLength));",5107" counter += 1;",5108" }",5109" return result;",5110" }",5111"",5112"}"5113]5114}5115},5116{5117"listen": "test",5118"script": {5119"type": "text/javascript",5120"exec": [5121""5122]5123}5124}5125],5126"variable": [5127{5128"key": "baseUrl",5129"value": "http://localhost:8080",5130"type": "string"5131},5132{5133"key": "id",5134"value": ""5135},5136{5137"key": "friend_id",5138"value": ""5139},5140{5141"key": "user_friends",5142"value": ""5143},5144{5145"key": "user3_id",5146"value": ""5147},5148{5149"key": "film",5150"value": ""5151},5152{5153"key": "film1_id",5154"value": ""5155},5156{5157"key": "film2_id",5158"value": ""5159},5160{5161"key": "film3_id",5162"value": ""5163},5164{5165"key": "source",5166"value": ""5167},5168{5169"key": "user",5170"value": ""5171},5172{5173"key": "film_id",5174"value": ""5175},5176{5177"key": "new_user_info",5178"value": ""5179}5180]5181}
5182