From 176d2bbbb4581e9b112cc68699092af76a235a00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9A=D1=80?= =?UTF-8?q?=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Mon, 1 Apr 2024 13:48:00 +0400 Subject: [PATCH] lab_2 done ( new entityes order orderline, refresh entity product) --- .../8.5/executionHistory/executionHistory.bin | Bin 210029 -> 283130 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.5/fileHashes/fileHashes.bin | Bin 25597 -> 27647 bytes .gradle/8.5/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.5/fileHashes/resourceHashesCache.bin | Bin 21183 -> 25433 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .vscode/launch.json | 14 +-- .../stash-dir/DemoApplication.class.uniqueId5 | Bin 0 -> 4395 bytes .../OrderLineController.class.uniqueId3 | Bin 0 -> 5568 bytes .../stash-dir/OrderLineEntity.class.uniqueId0 | Bin 0 -> 2379 bytes .../OrderLineRepository.class.uniqueId8 | Bin 0 -> 603 bytes .../OrderLineService.class.uniqueId9 | Bin 0 -> 4410 bytes .../ProductController.class.uniqueId7 | Bin 0 -> 4841 bytes .../stash-dir/ProductDto.class.uniqueId2 | Bin 0 -> 2487 bytes .../stash-dir/ProductEntity.class.uniqueId6 | Bin 0 -> 2562 bytes .../ProductRepository.class.uniqueId1 | Bin 0 -> 586 bytes .../stash-dir/ProductService.class.uniqueId4 | Bin 0 -> 4353 bytes .../stash-dir/UserController.class.uniqueId0 | Bin 4088 -> 0 bytes .../stash-dir/UserService.class.uniqueId1 | Bin 3151 -> 0 bytes .../compileJava/previous-compilation-data.bin | Bin 38871 -> 39200 bytes .../UserServiceTests.class.uniqueId0 | Bin 3750 -> 0 bytes .../previous-compilation-data.bin | Bin 26353 -> 26845 bytes .../com/example/demo/DemoApplication.java | 50 +++++++---- .../demo/items/api/ItemController.java | 69 -------------- .../demo/items/repository/ItemRepository.java | 10 --- .../order_lines/api/OrderLineController.java | 85 ++++++++++++++++++ .../demo/order_lines/api/OrderLineDto.java | 52 +++++++++++ .../order_lines/model/OrderLineEntity.java | 68 ++++++++++++++ .../repository/OrderLineRepository.java | 10 +++ .../order_lines/service/OrderLineService.java | 51 +++++++++++ .../demo/orders/api/OrderController.java | 69 ++++++++++++++ .../com/example/demo/orders/api/OrderDto.java | 41 +++++++++ .../demo/orders/model/OrderEntity.java | 55 ++++++++++++ .../orders/repository/OrderRepository.java | 10 +++ .../demo/orders/service/OrderService.java | 50 +++++++++++ .../demo/products/api/ProductController.java | 69 ++++++++++++++ .../api/ProductDto.java} | 28 +++--- .../model/ProductEntity.java} | 38 ++++---- .../repository/ProductRepository.java | 10 +++ .../service/ProductService.java} | 30 +++---- .../demo/speaker/api/SpeakerController.java | 23 ----- .../configuration/SpeakerConfiguration.java | 27 ------ .../example/demo/speaker/domain/Speaker.java | 5 -- .../demo/speaker/domain/SpeakerDeu.java | 28 ------ .../demo/speaker/domain/SpeakerEng.java | 26 ------ .../demo/speaker/domain/SpeakerRus.java | 21 ----- .../demo/speaker/service/SpeakerService.java | 20 ----- .../com/example/demo/users/api/UserDto.java | 2 + .../example/demo/OrderLineServiceTests.java | 69 ++++++++++++++ .../com/example/demo/OrderServiceTests.java | 69 ++++++++++++++ .../com/example/demo/ProductServiceTests.java | 57 ++++++++++++ .../com/example/demo/SpeakerSrviceTests.java | 38 -------- .../com/example/demo/TypeServiceTests.java | 8 +- .../com/example/demo/UserServiceTests.java | 1 - 55 files changed, 856 insertions(+), 347 deletions(-) create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DemoApplication.class.uniqueId5 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderLineController.class.uniqueId3 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderLineEntity.class.uniqueId0 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderLineRepository.class.uniqueId8 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderLineService.class.uniqueId9 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ProductController.class.uniqueId7 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ProductDto.class.uniqueId2 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ProductEntity.class.uniqueId6 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ProductRepository.class.uniqueId1 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ProductService.class.uniqueId4 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/UserController.class.uniqueId0 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/UserService.class.uniqueId1 delete mode 100644 build/tmp/compileTestJava/compileTransaction/stash-dir/UserServiceTests.class.uniqueId0 delete mode 100644 src/main/java/com/example/demo/items/api/ItemController.java delete mode 100644 src/main/java/com/example/demo/items/repository/ItemRepository.java create mode 100644 src/main/java/com/example/demo/order_lines/api/OrderLineController.java create mode 100644 src/main/java/com/example/demo/order_lines/api/OrderLineDto.java create mode 100644 src/main/java/com/example/demo/order_lines/model/OrderLineEntity.java create mode 100644 src/main/java/com/example/demo/order_lines/repository/OrderLineRepository.java create mode 100644 src/main/java/com/example/demo/order_lines/service/OrderLineService.java create mode 100644 src/main/java/com/example/demo/orders/api/OrderController.java create mode 100644 src/main/java/com/example/demo/orders/api/OrderDto.java create mode 100644 src/main/java/com/example/demo/orders/model/OrderEntity.java create mode 100644 src/main/java/com/example/demo/orders/repository/OrderRepository.java create mode 100644 src/main/java/com/example/demo/orders/service/OrderService.java create mode 100644 src/main/java/com/example/demo/products/api/ProductController.java rename src/main/java/com/example/demo/{items/api/ItemDto.java => products/api/ProductDto.java} (73%) rename src/main/java/com/example/demo/{items/model/ItemEntity.java => products/model/ProductEntity.java} (59%) create mode 100644 src/main/java/com/example/demo/products/repository/ProductRepository.java rename src/main/java/com/example/demo/{items/service/ItemService.java => products/service/ProductService.java} (50%) delete mode 100644 src/main/java/com/example/demo/speaker/api/SpeakerController.java delete mode 100644 src/main/java/com/example/demo/speaker/configuration/SpeakerConfiguration.java delete mode 100644 src/main/java/com/example/demo/speaker/domain/Speaker.java delete mode 100644 src/main/java/com/example/demo/speaker/domain/SpeakerDeu.java delete mode 100644 src/main/java/com/example/demo/speaker/domain/SpeakerEng.java delete mode 100644 src/main/java/com/example/demo/speaker/domain/SpeakerRus.java delete mode 100644 src/main/java/com/example/demo/speaker/service/SpeakerService.java create mode 100644 src/test/java/com/example/demo/OrderLineServiceTests.java create mode 100644 src/test/java/com/example/demo/OrderServiceTests.java create mode 100644 src/test/java/com/example/demo/ProductServiceTests.java delete mode 100644 src/test/java/com/example/demo/SpeakerSrviceTests.java diff --git a/.gradle/8.5/executionHistory/executionHistory.bin b/.gradle/8.5/executionHistory/executionHistory.bin index b7bef7de05e830b1e2e62580248822cb739f203d..d59e707320f9bb3c88a39b65eabf83ac15e17e35 100644 GIT binary patch delta 8652 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 delta 739 zcmY+?T}YEr7zc3w@7^=SWI8r;B{}T_i4e6emWhcpU1?I{MS=)TqHYpKH_=73i`JwM z($0JzopV}|GR4#ets7BLi9pEEa)F^BLeQ5?2nx#Hb5@WSFZ|yBd7g8g1Lx;s^Ouk5 z?N+EASw~Pc?tYQo;j!^uwu1&Gl89E>_I4Xv%_%9ZX4;A<`HFfkmOpLSG)6C+S#~0q z+_Oq4Z78sFZ{SkY{@cj-@ooprq@s~Fd@#{@AL{9K8yMwS&>*sUB)I$6Ir82@6J4?D zg=Y^dc|6opM~J`$Dne5pKE)}_x0BjcKmIi;hBFHa?J z6l&~S2FO5@?I?{+T5wIFbdICs*@=)k_;%Arnb{~|!@AbB01DZ2A?|&0l1&NGjQ}du z8Bv&KL!J6ksL6&y>blTv8%~hF6PYX_t3#b|u-SK_G2V&&?3E-mRI-SqOG6ENB&lg| zvOdWb4J~X=vYODq;*w!P1^Xb#iz5YWRfeW66tFePV}i?)7rWqMi-He^n$=G_=>8rY zU|;2GdAEN4Q$hY_sD?e0${TjF4!N8YL^Jy#c|E8P-L@p=9|-DAKFQBPedxQAWj%1J zUY)dM$8PHFfiD)$Ll|~#(Q3JRs=VdS^vFV5e4#M@Uf-o;X;e|6KhRt<8P&4E%z$F{ PPZUA_l-NX(VNCr4&Ob+@ diff --git a/.gradle/8.5/executionHistory/executionHistory.lock b/.gradle/8.5/executionHistory/executionHistory.lock index 8ca11a9af408d117e3b21469d218a4d9dfb115c1..4395df6d45837dca4b259bfd72c2025f715b4d01 100644 GIT binary patch literal 17 VcmZQxIe8oRyZa7@7{Gur4FEiA1vdZy literal 17 UcmZQxIe8oRyZa7@7$Cq206awn5&!@I diff --git a/.gradle/8.5/fileHashes/fileHashes.bin b/.gradle/8.5/fileHashes/fileHashes.bin index 1f9f1154d6ba26ccb324bc490dc6eda639d8e577..34397a491506dffa8c37c275faa358ec8bf0f744 100644 GIT binary patch delta 3522 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 diff --git a/.gradle/8.5/fileHashes/fileHashes.lock b/.gradle/8.5/fileHashes/fileHashes.lock index d45f28a5b0c20503b5d0cd53f50ab1be70f68388..4c3ec78885cfc7b6d20ff92e539f0f3c28a4e183 100644 GIT binary patch literal 17 VcmZSfoXN4SeP)al0~jz*1^_7&1IPdX literal 17 VcmZSfoXN4SeP)al0~j!h0sttH14sY> diff --git a/.gradle/8.5/fileHashes/resourceHashesCache.bin b/.gradle/8.5/fileHashes/resourceHashesCache.bin index 7fe8d3a773909486567b432a70a34d2878b5cb21..1f1a38147c259d4528b87610546f6363ef42c052 100644 GIT binary patch literal 25433 zcmeI3c{G*ZyTHj5BEFF^8B&=tWlDrHkH*KSYz4x>Ce%^h~*)HMX(NpbUe(?VLhxWf; z;$Go0fXe_b1Go&}GJwkfE(5p>;4*;A04@W#4B#?=%K$C|xD4PjfXe_b1Go&}GJwm# z|CbEt{W}mcFc^B?1G_H{d*a~<9QyY~M__k^t71^R7WlQ63H1Fz;8wEe$baaLC;OoI{42oqDti9>8@)Af9`1XRS`f5ECEO1@p9H3x~C(FmX(qApZDvC0$zeEGExJ z@Va`Op!1Wy807`x8-+stQ%P>EgbB0oRy>`K98w z#2r4YfUC4X{Pjb@e*7Iq6O0eH`+8fOyS-Y$8E_+6$S?OXcZl)2iix9Z0P~0nJ;Gu7 z^O*Q>e=4$T*z>I-#Q;|&hy2Ry-)^PCTGW7Bkifk1$hp>q3`~CvenPy8_god1>PdNw zUj*^mi(NMvbv<1lm*=C6vP`*P+xY`uN z+s-g#uPi*r%$L3%%r`VbGWs$XfscasQD+E){O6H5O-!61$p4sQ6ipq8M+~@XDa;E= zt{s`tY6M)51LEDvQz?C^MwtC;WDWBVPXb?rj$rD!-W`bdNUK%)$Jm8~IHqv_dv8s> z81|+20bCj07oR@~41Ck`tpZ$20*cemntqp%<`yO3s3?dJ99#PxJ%Nv@s|L?te&Ucq z-p&$c9!)GE{zcH(=xXovAP~o_1m<=M6b)rHcK|m$4DrG4)dvj~j)s7nNl9X7-V7cU`7h_7l|)FbRO{lJ_=rkb2V?S-RH{M z1YENR@_*^bPRKJ`v18h0fcWBPUS~mm!IOX+m%)6y^w-R7f6RK&QH1zXtm3t0>hDlJ zhv(~e&Ld}sczs$BM_UZ?e-BPrFv;AC1Ki*p#8(xDhJsU$rvYvWuZLBG*LC*?M4)x} z1ooE%AD!Y*`vQCmxbCejNE<~L*De6AClC4SVv<+pl2%v&*Cc_t|2>i%-U-ZeK@T6| zn`YhyLj^ygfNx0$^O)v_)v6}#JD@T|+ zF7s!vEMfLF8s3jvPd`polBpyBU-dKO|Mi!B{ku{Mv#(8BAil$iC-+Xpp&R(h{1C@C z61clA%wr0;-g}sP)kdCTP2d9@eI4SY=H50X2iD2}H@N_Da*0fyQ*+a;fNPCI{7_18 z=*b2&R0kFyPVrq|q}A|97x0zfxEW7)t9$x z9(bn9fSbZ~jONiZN)$g6W`F5DhvLwxjj?rCw$uP09S8GhJs3Fd9l@9}Fa z)_|`e32`O@`?Axmrb~dMHDT^Y|1LlMJ7%Anxj>w`$j#u2DMu&pmE9oD5*1B-lA*{P za8q-L9~ULO6?A?SQxEm*AJVr9Mx+p@-uD!&xn-BS1YqF#dHf{w1u1o=O?vh2Th+Jt*Jy(U- z8~2bm&!N#UH1O3+AfJbXsERqgz7lW?E{LBQq*!|-7)cMfQ5(ehjW#Y2ehLxNwc^8pf5BAjjf$67t1LTW& z__(UHblPCzut8k>#=5udM?+q~&9h*B>zTs%L=qw3=yjO)OuqU2X)X(JC0UqHjqr7l z5nBSTZ3OZ2d79PEu_R1@t7Su6CgoT%+Z*6(szO|8(4&E`jR})Coy!nc_7SbIC<>_uzM&4x^D-XV9gGzP zTqPIcD*Q7oDeF`p0N1C6xT-{6f`$TLAmFC(xKt}xjO)1{;{$GV9P-sAzosk~#LEC~ zSON2di4va1gYtkICqP_Ft13b!>>K7>rvcBSmR;nk4SMqd@U?3pAJucW@O(54=KYkW zGsJbvtPZXwEN22=89txr6KW(~%yjz!xSBcS>p#}*Hbs-P1FqBt^UAvW!g9S6fNOF= z+<;*_OuzW61K`@U5H}=lWYORpkpkRM5aLD;sBgNE*<#j-1w3D9Z9g7q7IXmcb&o*4 zS(|zt*_U}8z)>$DZcgV^rI}5SStsgnT{TbH+-am+Rs_CMDD1E1xzqM3VBRmF$sul~ z9kXmSrc90L=OE0df@98Sx90$^Tn2HwbLgS+p=3KF$c@-b`mO@s1YU=iN9RwwWca%Sj&g+jD|Sl< zoY&GY`&9cI#2uYFN9WEp*Z|)O&YSa1c{A}}DCqM6f5>-UE@TO#|FHvnb@+L4%|w8M zeVWJ`aI-&vC=7%{?s*}Rpkm~vU zSNfRsYzpu98$TRwyz|MN0&%p{VSj~pFrI9q0&sm{hOakF#vAS197j1uO6jI zc5q?((*$v!j$G~ze(}2dB|0_L@-h4cdKdqL$B4J9 zX0HT&{ui?RPa|V-D~#nAk6kw(`qZrYEFID?#)iIrK_Z#Uw#sYuDuviMp)skC0b&RNg z_s-`Yql_hY-nr}YKl2<4m!&U;?%wLyV=NH{OB1pT-6>HY_IVlgRuXBv6}UNQF5My= zIi|mpK6Kg`X`IyzQpIz`7n!{<)kLh&=Y%wZL?q>zu0-WsdG+rJR6DemF=PJaQ0e_zsiguILj9{JCZ7?*A>bA8D9(wqI!6#4qqD8mqJDTiw0M zwWlA?v!13L`ZSV0O6gn`rn7@(_K&i~SRW|UDY6;6-4mlGeM9i) zAyJ(l6!R_UPxQZ#hWd$f{9_+Ivh#SXY7Rs!@7@F16XVs|F`LxDiZ#0Qk> z+U{+YJ)>=W9upwO7uP4?uyw+(=JjsL*kh!w+8eAe1V#CD-?pi3G}$dIdkkTlXU=JJ z4Fc{ma-0%Ly}NfA_ZR{%m*8zgL4S#o|$xqBmKk3oia(&+8F zk@#UDtD8l+nY+byk0IO6QC#36$k4Cq`zatS>NV1M_odlmLga~BV5H@Sr;h-Z6?Cm3 zc66gnG=%UX4MDTgB$j*>{iyb2do1W#>9u%?_=J)LvXz(!#@5TLjq0cCZYEYml3YdMyHB7on6jD5QMR^@*7;96q7gWqmb8u&`rpH~{ zy(7FQA3j3Ne8+AcP2u@|(vG_PpWWMldkh2Cvr*;dgIXsjo`j~*z4JsGw_|5WvxZ$p zA140rR`w9Mjx@@o9JFby3youqbAH|_ID@4hDb*`KX|lO$204b*TUkV#kufga{UefS zd;RC>-hRU7+hJIYj}_yq9Wy5EX?2w$)-G%xkug}(SxT~am76JiG^;H;7O?Ef;*5p( zNSXG2v%*}-0_MY5o~HZnms_TO1#j;RvHqi)Ht%u&0X?!Gnoea8r<5nS>~pdYEY&^~ zLmC8CH8V%Ey?#7%{lmqCCf~h9yk}k>2|p@x-;SlW$&8MOl%fhk8ck{1YQx6wo)elK zR{YS!HIFp7y&PLFBr;jb_|}I9kDS9&wW|j;*f>>xRdYSRlg|-SuYioP|7dO1@Elyd zIu#%5sSR^65||)kP&^@H_+-0IRYg*k#duS3_paWa(c*vVFzZe^;z9Jk0^|Z9jqT$bkRM>vghVSURF&B#C)qhnO04H zq39g46=##+RbnZ{C)XYfDw$YNd`B9_oW+@U@mu3_CrU?n{t(M zb&6d``QvPs%1VYbZd1*C{_M(M;rl381V7-+4AQ7R_37%x#qb*m!qh|G{+6{O4O-`@ z*+9MG=!JLR*XA6pvD6QfXH3pC?W8u>bt)>(GAd)K{AVwRD)2_PXUVfyQLfL$V>xZ@ z{}eO4ab1HX+DhQrG=+z0^cWkmrzd_Wn@~L{yHPh1^f|d+P8?}a4SGHjp8X({;haHN z<1L5fxqp?5;+MqZ*Dkf8TsmC7p;-3qR^02$rOZ+TTy()l8X}0We|f*{$tC-ioJP$Qb+2 z%l;MSb8at#wAxIlSP-plti+HOvX%X3PFtx`aL0ptYeS3Xa1_2Qmec1W;VGFg-ElHS zp_W4}D^^&l)c#|kR4qa{AQ1MKm{&rLLq2@?$+Iym^Wsc=jWftKZ`rQvBkQSb zts-QMS+=Itjo4VJbT+peLJUtbkOmL?#EYS4r9b|bnf&g5QF9h)?7vQZQlmJD{#5c! zMpTvi8U8Lo#u)K#bo{C>+9+5wd)Na-d zb4Ri4h9EsFo6sJD^=)3=0|Y`zqsSO%a#KF$PO|Wg)OyXg5m{&;jVPLN$@+Ht>|E2x ziaJ&zEa!DQt_M`KwjMte$^+AfovRCwF@)0UQb&mWzOY_7UE%tEpbTl?P1m^%wfgqo zNiL-6Oc(b;8e?V>D*=iL?W`64m+q<5`XUXZd-28dIcBe8ntRk=(Xp>Z;9GEm=hN zLvhP}i+uUp%i`zD<+J#Y7LZ0VQInqs>SbCv0lFokNGKF(WNnsOJHJ;Fzt;b&b|7Mz z0%?eBFTFSy{mkYuLnNx~Jz5uOPzk6jicnZ&)D?f@8dTZDvMW1xs0-3V#GD+G>ytYC z@eUwkOp7av=*xFU&NGJyjmV^>BaNZ(JS+V4l28Kp-23F_JQupSW46zq6`*>-M&oQ(*rg#kcOiTGm6`r_LWf(>DD$43AR&CpF^!eOC?z}>f;F8OZgsTjQSqO zTd9HrFK%+Dq*f2-Z6XcMd1kG+yFGE6DFyWUGk>vs?hxQr^wQi`a5`eE;c0pp0rCGP z#(b)sDoXf;`d9_`iK2^?Sn8?dEPoT8_+7Qi9f2k`*|bVzD?*of?-JVlC?BsNXFhj4 zKnZE=AA?e%(%xL{Jm<6dWuuKCawcR9&ih}`IlXjew^tJy>GVcUAdUT7x#DZnmy&r- z>w+S)x%q?>mg?X@&-jJ}jgC2xvU03cCh8QjmHk)Yi%#>6iOACAPm@hX&%67uoTOtm z5B`#{7n@JxKi#aG@@fm&N_Np$a4cc`L!HIK)%uE9ET1ZLB+60q|LM1`?wWP&e|K92 z8G|-5V|Yrj`z-#*hbh`=AuQ`7nmD6}Ls1Grf4{mNV|e z1Yr4O;s$g35uroIk|CGgOk8ZfiRBXk7pJ$PUUNN+JvnlDR)fL<$X52>`=#PBCq;bT zZnK{uh`puUei|7AC7t=brI~SyMDt;wxY-9R`EZ*oCl?TZ)kl%Gqus})u$;9C@2>^b-mRUwxi-L+Y$R_uZSG&rL{2Pn$ebI4W~>p^M|$xNMrxqa5-(V<$H|$=V7g8 z7xt1gGh~bc#Y1uPd5h6m-4D*#COKg_pYDI!>K~tw@zL(&K@FGFc4fc0hHT|rN#(V) SbL@R7x5w}Q)%ifaYy1~MhAKt? delta 225 zcmXZWzYf805C?D_8i^Pz()+2RwEk2ozb0xknEG496Ii{0!Qv4_@=a|Li^NF8C??*) zVC*9hi*SQWKDpt0m%IB-yKJ?6m$VT=l88yc6$&RoNSI$BOqp&9^h^UW_nR4^UzGS1 zIkyO7OJHF|2uljnDoS9_{Ol;n<2~Xx$2`83R19WNzrZt{pp~H6_!qpLYIT8H& y4tj$Svuk6CbyFeV;y>7y=^kO|1z33o9-f5TrtJ4$sZ@G)u;0c(ZgR(gnrD8aJWx&m diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 4a7187176c94043e565a03ac61b8b21346b5567c..9386d8de7a349e591faebbbfefc6729a998f51c0 100644 GIT binary patch literal 17 VcmZQpiA*%#__Jmq0~j#=2LLWr1mFMw literal 17 UcmZQpiA*%#__Jmq0|XQT04>D?Q2+n{ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 7020664fcc2316acc5f6e18efa017f8fa2236d42..828e72a7b5fdfb5f00630c90501d47be128aa503 100644 GIT binary patch literal 8 PcmZQzVC", "request": "launch", "cwd": "${workspaceFolder}", "mainClass": "com.example.demo.DemoApplication", - "projectName": "demo", + "projectName": "IP_PIbd-21_Kryukov_Backend", "args": "--populate", "envFile": "${workspaceFolder}/.env" - }, - { - "type": "java", - "name": "Spring Boot-DemoApplication", - "request": "launch", - "cwd": "${workspaceFolder}", - "mainClass": "com.example.demo.DemoApplication", - "projectName": "lab_2", - "args": "", - "envFile": "${workspaceFolder}/.env" } ] } \ No newline at end of file diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/DemoApplication.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/DemoApplication.class.uniqueId5 new file mode 100644 index 0000000000000000000000000000000000000000..ff4eabd6d515b4d6a20b93821dcd76a958710e5b GIT binary patch literal 4395 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 literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ProductDto.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/ProductDto.class.uniqueId2 new file mode 100644 index 0000000000000000000000000000000000000000..d192c3b503cccd0ca077c9f26eadf2720641cbca GIT binary patch literal 2487 zcmbW2?NZxD6o%h*uw^@PxDCOl7=xIX=DT@ zPRtjk(KMZ7WB2GpT7f|3zU|n-y1=E$7PM@<>(&*`{|_h@Fh9ft>+8d9q`fjpMpS{~PMUBd@D zKE(V;7`j3Nmm8sC-E4Na6=PA(;|3Nq+|+Rk9}8R=94%56$l6XY@TjO=7IiG)wt)6R zDeXQJm@btUhmaz2fw_I++AUePeVb?5a2z)<1KV|c2A&S5rWcq7W$Z>cZCG3iJd=C+ zM$HXson~`QVBt-sJGMi!bjXutR;WKAaBXz^Ltf4Zf?|FX!X`86l;UGsZi7)PRBcDr zI;|t=9hy9nx>?sUn|0H()i|0Q3!d9N<5Kl)vrFM0%b>yxn=B2-GR!dnBUE~3`hoOb zwwlI?X`TA6W0?Jr8rvK*UE9(NUQsS%T9)()v3fDrg^kdU3c3A98|9yOYt^TO^Sf|U z>e_nmD`Z=&Gud`z@Z4?enI4m!gxod9)2M)}6XodK`_?#L3!g-B$&lrs(-O!Z zxE;@uk8PC`g+bX^QQ;EMD~=<*t)}Vw(%0~Vz#WwuZ+)TBt!VgBVEICxWbEE3=2@0f zd>LuBtbP1Ssj|iP6Mh%iFSB0(vuzun;&TqBkeY&;X4_v#smd04WoZ2c4V7^gf@W%z zQdRAL=(5ON*h?n?3qRXC+}U6+*r%8NfcPy$xyx29139d+RSqf$U*aqF0{8GWHyw38 zgZ3*IQy4hUB{-|NjZ+Ds)GfTIBhc=*5zgS=)P2+kfI@7g^ zh!m~59)S&7rCGPx32YKGe#SG5$1&#J;R3i47CPStts3b5I<4m6=GHv6#B&K4V=`NX8&tX!j z-)EW$nX1@HV496H-AiPuVK<3sHqP{bOzY<`sfX2Px*9U=F;2bkk8u$wE}fzH8t=24 oeT|QPIsFr*IO66IVlhhCgjbNl_Y_QF9|!F7ls`lrKRulL4%gr{|?{|zK9`& zunx^Y1W|#j6{nuJzBTIyH7mbs)t!9BXGgf{8#7-s8+-Y6r?FSal+IunhK>;fXK_wo{zQ<2rnB3wxGg`>mbdK0 z(%k0vuT@iZ%0AKJ8xhVV**;ktaI~dfU4*=ZE{Jgq=6JJ2t*E=cBRkk zzSG{RS;}m}z(u@8vx?JhxJ)wOZLQ&2dsefcV@e=?ocq(AeXHWiAeRkHSG~Bnt1~Y$TJt3t`TUo$F7TX-M|ejve4GoZL>yyv%$jp!2&8^zZJb#k>{{&0wR`9IUkp@o6m)}XJ zr>Hrw)lWL`rIT8wL}_hUZq?b{GMkjVYc+|kw>kxwOTTeI=}T5_Q{9~2WB1`b&z?at zn5_R_x)@??zjQq&ei9v%Rj*>HpqF4)LsI-++1P8=1bUoxWyenB?CkembpI!{?zmN} zDKJuW&B|9B=7C?}SkY-WE7n6>Nua0gEXaF^E0kA=ol@hQy^FJuY%6MH<4_|z14jc4 zgDBrCTrF}G93$D65WjE|!bg0|MhUvn5XU{vQ>roMq3KABSFLLsGFPRXUPt zQY9ExGntyEW-_@59&(HU4pZUSdS{@4MXHdqE z@Yv6InWN;0W^+vTI5+RiE|X$fc}RIy-CUxITPVheP;3Hg_;>(Qyq{@iAk!194`Pb< zGtH7IeF~ElNta2UnUMW#08^r$DL0U51Dk`G68%hhGF>}`NmjMXBDBHgnQooJB=yy0^7QlxKJ}TNQG`-DxuM@MSq@WGmx^UgimOS?4fbe1*3UX&zMFQh+?yy=OO2^vVC`C^c_qb3Y=Y9p?VT+3X9Xb9{b4Bz&0r z1H&70FEGalmtNu8_qfZ|dtAlT>bk#*tJMrww7MR3{|J1}cL?SG0OKC$=l}o! literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ProductRepository.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/ProductRepository.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..7f8127d1fe534c3dd709c4bbb1361bdd97e22967 GIT binary patch literal 586 zcmbVJO-lnY5Pj*Vt<`E3!J{`npt*_AS`g9GD$+{t={DBrCRwsswLi;~;K3i@j}m8V zsf7g(Ch#V2GI_(Be15%u064{V9R(DtC^b+GaU}UzYRg0GBzH2liSpJ> z`IU(K3&v3CDx-Xlp}2oAtYU@XI42Q1J5EENEX&;d!K%+pS80PP3yBp7!4DLv70s1ikP&y2BNcx4TlJqoOw@FaH1Ozxb}^4Ypa zo_Oh`_0w4L-*I-ZhbsMTwis>tUBVhMKI1_7@D1#h5(U%=vujYnDq&-GE>m11R>V4C Q0ZnYo;wD-Yv-&OI8zIH2ng9R* literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ProductService.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/ProductService.class.uniqueId4 new file mode 100644 index 0000000000000000000000000000000000000000..cf1c50c1abb3c799e5db2175cc5b4048d9e5c9f8 GIT binary patch literal 4353 zcmbtX`F9i78NE+l2FovC>;T1Xfuv3%FJug9X^037IM9#^Ly_w=bjw(JHiJhqVrFEZ zTavEnlBRo`?)#dyv`rL}p3~Exd-^x^^u9MEc@zl;w?4<3<$d4%?zg@-|N77C{{ZkX zUd#+J}%H#m|7abHVj$FOAJE_%vFM# zt*$w>x~J@_ss(mE462Pv9NCcy*WHS;&nGX+$)i9%RP`Wo;~=~)@L=iI02^{Gj04;vdD-Flv&3%Q8b`q0f_nWDUd5mMi!doTYhJ6A@{x`>HcvZzGJWpV>kn%RfN^TSv zhj9RRS-4x`?U-zN-Cm|{6o<;G2~2e8CU5PsSuBn+@%KvHhk`(VtRkj(F6*NXU@>cY zrQug%H}IJTRdp*)tVm=UGZtng4&r`+JsSb+uti2It{1CN;Am>Xujxy>fp@Yh883l{dU(*4fl3f6yB1WHXPJZ8ffGIa-BMb}`UuWSEZ`g`0PAAGsgd@bt!6L| zvI|@mxE6h%#08Wo8nr}sWhtbRQ%hR*{Sr%fB7t4JUMK7fVY}$XT#C{f(_(3jX@n;w zF5-iUwFF_dM?7xQz>eepQ#a zVqUQmRje#<%yu`RsVo(SL1-@o@oBQEp1M|1ror+E(a>Agx*qVEah$XX4PV1`3m=pC zI6lD{ew%p`7+?U-R5QcZ)QmyZTh6ESj`6e(PR3@dpDzj&dt|gdNH*Qjrj|I3=Q*1M zc9dLSEi`J&DqKv)$7m_2INp*Iy81bN*&knW8MwpUMcB63dk-#hn?I}KOF{L#6S6}% zpNVsK)}^j#W40eXe_7KyJ|h|bjj+HS<=CmLoptIdzoD|b>N{~Gq)X*D1wXcl8$Bj) z@i@K6xn%OxW+CsT*`sUQ0qZ4Cua(&;IFYwVQlQ@D_!c3y&Q_{x+#;i7@(4)JsV!HX zNf!3xq1zm?o3$R}zGDNDCzZ)Lfs_BYn{1weAgt=6LcSa{!iqZW>YZ~e-FVaU;0B{y=}5hr{%2lAt*G{2y8=MS+ zn5PY=p7cYsV-P>i<0ts3g`Y|M9KT>+n9bdc0oPv-)|6c`0i}ks;#87z>@d4%Zxe56a;IHdiETdZZ?^=>QK}hMppdx7Za14>t+uCDe}DId1aSJy%9Xk zsQg-Q)W4DVHoh~0-*M_}x$7>D;16%yuF}a#{6A{^KS_KO-x|RUePZcR_-|5{@{I4R zaNcvGNJSR@CU8$z?s}!c!Ycy%HW%d(NOFd|NHoVIH1`Po4aB=`ydS_beETe)PV=hQ z^V6?FOwYUm>o0uD;nV!xjz0eGL_c+hFow_YX?G%x&*F1@qMkt&_&o0ic#z{o@RQ;T zRMqg$@~YwIW`=I!j++>J5yR6j!)jvhjr95&_VaY|I_?2p!&Htxw!jVQ^cfQ4807tK zBJUxEy%ZbgX?_AW?>7j|wF%APIed{EzGM)@Sc};gkR#q3Wr>@(PhS=`GHCmrnR#6p|W;nY`JHRN*CoW(at zv(L~R%25DZ(lNNwj`<>~_VL}Qp?X$RA*-N+ivH3EKcfZ-txX?DG}@*|Q`3ViYHcvr ziVF>n^FYI+JK0F!(YNGN>AWqay`qXN+-WB(F|4@yVA6 zn3P06MY#9Bu8pth literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/UserController.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/UserController.class.uniqueId0 deleted file mode 100644 index 1f91c3928897fe7111344fb7e3ee7f5e9b9d73d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4088 zcmb_fYj+b>6x}zZ4Na%7pkTowZ`!mlfI!hyv@LH_sBNi=&q*?EhfZd~%%o5e^(X0C zQWt!1`Pt=fa=Gu#B$+gsuITbZ=W*|xv-jEO+>_Hk|9<^DfDiCf8VT%6A*rDUy#m9J zjV(jB4QE|{P1A*Qd%dvv%0{g}%R{O9YeJP|h^g|PvD7t0cd}fp@wyBrQva45p z)AMzsV(Ab0H19fr=i0XE3G~aYWz*ZTil)F+KE{+EZCSpl%)_s95_M3+5Qgcd?3PS> z!KhTE)3Lnkt?O#3td{hJ=5{WHjKGN)pgPAJft$t~cr%5A8V=ztfg^kPqznWSm>$pX zmMRxnnYRt!&rL*DYI2g&VS%$TlvErl@|#Xz1>0%7jj(lCoTYE@)$1U$nl|3fSt zk#1Q!_lk0Rdx>P08vbk#c z7G;=q95*mzUtkcImAHPzvz+xc8QW9W+ti<$1-)Q7CEaLztKT*Q`TM}{=<;e?>BNfA z8dAb4QOrmOSErvRdCRb?46{dnZk1l}_obC{L-!W)SGy*^XapPeG9dk=!$`YntTGQ> zMs}rpGOizya;!DdmF-Gvh7MD#O~VTeof26*xw4_J%0~v$J?N78q-y%XoLkza-J`br zbyG}TD$#vSEmk8!Om{8d4b?`P)tFv(t6tH(Wyv#tpmjt#FMr~Ae7bhNM3q{O{=YF* z8aIgzsG05J`3q`-W8u%aZouD5qf%=p{!lL}X*_|Kg0CS!m6hL|fGlUr-8A*QQ7)7W zS{Q3aF>pPO1pRD6&9}dz*$j!mcfOgk$I2gKv6>m~;{o63K*0$0B!LoG)RPq4&&>ApwsMY`tr)7kZ? zay`1+^~o65%UEf;UZ!gyCvUQqtZx%S@){%S)DDik!g0>zuW=T5g~63O`E%xgC7ify1Q;hmi({ z5wyuzkF-FqMgH|c9OSLUKS`xu5YG%31o78GB^Jp@mS?7>M0QG1neRYlT2ZN0Wu`$T z6Urg$SdwZ~r4&Zyw=T{)1&E51k*SV|BgqMlhOsHS-GS3gM4qlvw6TjtYl@Pv$RdHq kigkuhn|!w$Hf1<`m!;-Xv@JZtHooIZnk&!o0zYE(A2|(B(f|Me diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/UserService.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/UserService.class.uniqueId1 deleted file mode 100644 index 9471d9756dd1dc88197977d16ab8c3d5d8adfcab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3151 zcmb7G{ZkWH6g@8>A?vHA_*I~#exQbcu43(nQ7clYwgD|cthKdWk_W78cGKMrVn6r$2Z4H+6d6?vgA992kbYeQ)nQ_uTu=yKn#b@5NsLZs11)8T4e)D{%mQ z0{N%bhGjaIyK3HBeyXaWK;L!SwZoeNJ%zEQ9Qu*V!jL!!DNw9>byICx^@gL&nyPzd zGf;kD@@K;il=*-U75!XQ0*0>|USNlw|6E|Qyo+ncDDqxt`;-hE!r?6P60c)G;L?5p zn98aOryNIMpfFaBGHr&oW0vh8jL?rt9K&&DN;`pTh1e#lM%i;$OJm)ntDdjSx>r+< zdD{xqj2qhF^HLUX2%O)AU~H{R6I&Y?!f+OEO1y;;a_bPg*9dLTwMf|TR_2?IV=X%@ zWFbu~-X>D(b}J2Vk5B5HP6?Q4rzD$>%SzL&>R4u_*=RVn@>!1|oRJvCS%HI|KjQ>y zan1Lh30zK)qS|#kCQMQqifVgaqJS~(LDg4Q$Sf8Ld#&c4%WhDe<2v67fzl57?r}rN z_XI9Vn7G8;sfAgV-nHr^eRNAWQF@iowo(e?5N64x}0L73F?b;+|z>wa3#)Ggc5wjWB|(zgAyZ7<%InBJm&-wJ|fo?p|( zGZM2~{5tE0a7W^9v@Oj>joYHn*ryWZXo;d$p~_-j;6hjFBH=6F_k45S3unEiTbtRe zsz|X0=5Swkl+Of?q)QO%Zb{(k4x1mhj@{4y82x&udDH|Bmu*+gH|xvFUyRShK-sHW z&XVQZdY&xyhHG{pFwrfvUE5TNJ#bEiYhLZX<#SU)wljfT#a?x-u<0}QjV%eZd&l+N z@LxXZrJID$*fqv@xwQx^?pl&Am>mv8oKTk~&zp)`lE8kPYF(SQ=M?u7MygG=-XLy+ z0@AVS%Qb71A|IvLr@Bb&fc+{Nve-t&Yx-3+YwNz5*F876jxOrnCos6sWO?dp$qsDl zX3BNF(9(^Nn_eh;{;C-?^ci2#THsk)Hv=j{dExVhG7~5*ncJQh2BB{?V(kQn`|#Aj zI-D%(5-vP}(^0pL`iAXpc&*U5S0HhU1KhFPnxlfzvgfTg z8>N(*k}i{4+2*)N;%W1}zl=k^+Be<%6Xa>jaVmDGN_l+ya{o;3E*2}$tvi%hMm3KO zeaGy7ujO6WRsOWYuBU=5_>pn8tK>UXFN^O5MqX{oa}<{vr${uzdzBZp{s!Vxmd^*U zz|{(8vmEt%qxd^Sar`%Af8i{HMgAT_4}bIM_Y>gevekpAYap z;UM$}56v|EBxizSfALpjTX^kfKF8pF(fY9nRK_+5=%dKy3$F2IOmH4@)HH`R&Ugz) z{>F(vFgX4KZv!oy=ClJH^B%-eeiIB~FvWYg&3hP+@g+kfydM*rM+jdf@opvYWD@V( zwg55rkrc3O14}%?*B#&|5%67nlK}t3v6pL;MP^Z)zcA6lg%&RB@oEe2>#@|rO+8Mv z@R1JB_aAQyKZHIaoaXNt?$Idsx z0KU>SD7S0ANJA}vfr#pyrb1SqY@?#T$AR$(P|M?F?9mQAkc94|^mM>Xs^ED;pC5+Q zLb*amEtK4!n0rJm-s@~J*Z8j$WfQUiA5A>tiouml Je1{(}_&;*bIe7p8 diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 93eee6a98bb20ef00eaf4ab061dd431a31436a2e..7f222578b036c1e1d737bc37a3ce2b37fe5fcd52 100644 GIT binary patch literal 39200 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 R>G4xo4euYb;M1 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 MmYxk~k1u@vFVghzivR!s literal 38871 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

Ek`GXWVw*ycB;Q_qkv(nurybP!t-GoB1Ga@f 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 E0UkG*X#fBK diff --git a/build/tmp/compileTestJava/compileTransaction/stash-dir/UserServiceTests.class.uniqueId0 b/build/tmp/compileTestJava/compileTransaction/stash-dir/UserServiceTests.class.uniqueId0 deleted file mode 100644 index 026053e57679e2908c11789a5742f1e4cbc6efd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3750 zcmbVOd3O`n9lcMIEm;h)5e|vj7YA%(7!uYXNHJi7i7+HKh9srUSbCPn9?ghZyb!Xq z&C(@l(H_D678d*f|=?YS;ixAT1YUG4Q3p^}a%rmK&aQ$D})F z7Uj6~d@tW$aNM#!6VN`NRnwQQZd6TuDzJ-6wLToGGbSyW&*Cw3rqQKg6LJE(TT2dk zw4p>j0nG>pB)7YZn2|OvV=PMx#YzP`G z2n;r}q}Dy155sgcr{K|!LiHv82&NeHNW;u|3nrC(3eKP zh5;ND7+3>P3kI01MOPXszs6hSS8F1eWouYiO<6vJL*#78k_#E=%;p!|#bDN%%iw8& zO;gjdET`RbM zHRbhnW@}te)N$gORGaCa$lxU+A0HkYS6Mi&;RYsDu1fz>U|F_NAtT)@T!y%6NtnSc z3i@m(3dAcKUd1=be^4!jX;O;YkMelE$?#}^zop^Z3UFuCbl4@MNGY!j4U>x6c2=nL zJ3hI=GGNu_%LLDi^5~d!!u=C9*K4%pNS7L=20#XIlgXD_Vlt9l*0b4*tPMDs_ z);VO`j&IbO;;FFbc~w=xQ!aUB<!$|(AdyQmv=0evX&oq5xhr94@_z!pP< z1=E(JL1j|9(4)wnj9@~2Ja>AvRTi?y`q7+`u5z4{i|zD7@0tMnlo z)qk`%#U@UX^#@8|#~SLdxh3gRe_L25NtTqLu_%ioW4RdbwcKMwW!P&8z_CiBVU~8- zaz5(7N=t%TqNpn^Y9`4;*fJ`UC8M_ny7ve-)sIszjUTW|8%I_BwBfEXCvc1MlBrmK zd^L}Um5jiN))96bU-#()&vM(B3%))U=D>N*E7yqqz#81B<*U-4c1kNO9baQ-Y?pL< z!`+SKqlGSI>KO8twEt+ws#Zeuj_J_(a3c@e6^y4dkXh=gdmI5VA!Hqn4m-43+rk zKk*{32}K4j8+OT(UT?v1W`k|Q8*C_=lNFqHs;a;56}TDW8=++5_L-kJ<#YwL(#^Xq7|R! zl};?wmHq>nP;O@6b8P-6dR`W}ZMhw}UAaB?v2O|cZ#L!!bBA+BTFyVym@l*|fh8RK z0;dE$eD0tccjNprE-vB9GDaI7Z>1N&4*I(jN3e^>{vO=IUYOVyBG?jnRzq-^D~q^G z3KW)3t|=_9b9`?EZ}9WYI;j7W9d(x2xfcr$nZG)?gt5`almeWkXStivFU0)v>C|cv zJ*kFFgd+E1Pl~#T=TPnAb_3Xc6&>^;iGD_P09$Ynr!Yu>hwusxqr^n05V8u>vB=XJ z$RuV-!CM5i3Agb!;U*}33*X^fk~&V{yPQk4qTqW}_D-FG2i&e&^=om*U%T0+hOy{G ztHmfdg>DoNE>bYIC4NLppW-wA|C%#73j7AY!yg#mKjP2$ HD|-G9)0^p; diff --git a/build/tmp/compileTestJava/previous-compilation-data.bin b/build/tmp/compileTestJava/previous-compilation-data.bin index f34352f31f82e65041dd85bb7ff55b720cb6eea8..a5646ec97dbb5e235ae1cad3cdbeeeb3d9efa25f 100644 GIT binary patch literal 26845 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 Mr}x)`3WC4?1|=yR*Z=?k literal 26353 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

OJ z0Am2D7YqcFtRLY^YODElmbFo^sQW6K7UtSi9$o1rM4aOo-5$U zJgHB3B;{k=<6$9=e0ruXj)me`5Dg{3j*`cOaH@hqnEFA{&4qa;xQsDEqd3q4B9HrIR%M9cv%4)YDkXqhR?S16uHJM8L}c5W18!<|G9em(DHk ze4bS?8b(P67+LWAA`_;;>EPYreQP-O60{PAy9)n^#uvI!%N@=>VL|u^<1!(~`@?HC zbTQt_##{YNw0_D$Su7}lWWzm$&>n*)0zJkzP@S@xa*WzaPZy3npOpiAhU20W_m`V= zrmH*&UdSCkVM2Sk!DqoUAU?ja^1hP^$?x2{UfsQSzS6I$7Qvy=VyI>%3KKC=fW0yi? zFI;W;^Q+V@YNC_{PY+>r#-alI;-ykYlV*y7oMl~8-m=g;7WhmOr*x#q@BEA!i)Pd0 z*_p$A#j#~9R1PBeuisI*?!_pbm?BfD)E^!!bbIxlrS%=&ZE}wHzgN7%upGPnAwnw3 zYb2urv<*;+nv4tW^|;3Q%U7Bz#Rn@lF!KX?D_N=^S&CIG%|DD!IHx(_Es0}{aRz6L zOq-RQpp%RRg`e`N3eKx$!8-`pAvrAfoZ(5Cv|^9wpf-(%FKbw+7RMYeKZ`OK`9&(s zsG0NLY){g6%Argu$JyGkmAPS9{YCSrnSQt7@;Vl($2Dmej_Rb~s@)}bb{%MvJv>Wf z+5V=11x_`LGxzMF?X8a3oS~MU?|!pnq>%-Mzt6b-FyUmiJXh(hNZog#(dEF7=okG> zEahgF>KB&IT{@(+!5j3DXAI4FWuK@y`n5x4;Pkr|7HVZ76$wH;ce@nUT;4caxlQY; zV9zYZSC)1gOS_$=-bn0VLEX{HM*IypR?>n25ozDSnv;DM4$C+%&ejk=xOa83(03L* zuL;L(P}mKn=aa>6q8=N+e0Ff+uuT^Wb>o!lVc`#L|9y=BOry!ySn_tv+15DORHH7R zuMdxbE9nq8$~STfj_ul^obPlycVFzLtUea{fg`3L&gbJ#Fk$V=hwC(=>M*-`xsI(D zO5z3wSnz@l#-+-Q^C<78`5rXp}?wx;FXp9ARSkiacx>;`YSsC^9aLU!6y`t4Sd#RixSBq^` zYgN)Jnh7VezaAJEXF&)A`*g(REx(r_@))l_Xkh#P>ZS?MytoL2Cm2t0i+NwsT5GoG z;d=44zbr_5z>sea$z?DG}@6^v~~-c4Z?s zHuMBU;Lt5pD~mR9=sPBreKDzbWLL5~8+ouHMeoTbctDXBUS+|g?>h@=I+I6Vyhu!{ zq?IUd_F^M%Hk5oMxjFBYB^JYr?y>dy*=}~YcDp}YD}b$ZlMRm-0%04l z+3=Ma0!uT{fGaf`)AnAgmY;f9LG#yvg5yDKm0?IkhkHt z9aqRJgD#J7HY6J1J29X-%84_GGgE-43s*^cDw`JuXGY-H1sIMFXKc-n5k}8>zY|lk z+;Hy&iL)=TKSLa1k+8vj`{AN0f$tqQiey86AIIuM(J@kWZNB}5C7c`GYjdyPWuquI zI7HEK6ubks0)~TGAKbXV#zQH;R`1&Ui>WhP@g7_AK3g+}t@f8xLVm!8M6^g83pW%B z@ah`mU5~D?-0yX;c>ay;+sqt7*A~aIp#=^$IzeVf8~cdc=kvuOZx4iNWvNmuytXhA*Cw=+A)z z?NfhhEs!SAr<8{fN3RsI(JMBX!PmfI__I!cW1#Q%@E!9*OJ_yzfiLDF+%0Awe#4e4 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 0 && Objects.equals("--populate", args[0])) { log.info("Create default types values"); - final var type1 = typeService.create(new TypeEntity(null, "Ноутбук")); - final var type2 = typeService.create(new TypeEntity(null, "Телефон")); - final var type3 = typeService.create(new TypeEntity(null, "Игровая приставка")); + final var type1 = typeService.create(new TypeEntity(null, "Пицца")); + final var type2 = typeService.create(new TypeEntity(null, "Напиток")); + final var type3 = typeService.create(new TypeEntity(null, "Закуска")); - log.info("Create default items values"); - itemService.create(new ItemEntity(null, type1, 49999.00, 20)); - itemService.create(new ItemEntity(null, type1, 129999.00, 3)); - itemService.create(new ItemEntity(null, type2, 15450.50, 30)); - itemService.create(new ItemEntity(null, type2, 69900.50, 10)); - itemService.create(new ItemEntity(null, type2, 150000.00, 6)); - itemService.create(new ItemEntity(null, type3, 75000.00, 6)); - itemService.create(new ItemEntity(null, type3, 67800.00, 3)); + log.info("Create default products values"); + productService.create(new ProductEntity(null, "Маргарита", type1, 499.00)); + productService.create(new ProductEntity(null, "Эль Дьябло", type1, 699.00)); + productService.create(new ProductEntity(null, "Гавайская", type1, 399.00)); + productService.create(new ProductEntity(null, "Лимонад", type2, 99.00)); + productService.create(new ProductEntity(null, "Сок", type2, 99.00)); + productService.create(new ProductEntity(null, "Чай", type2, 49.00)); + productService.create(new ProductEntity(null, "Картошка фри", type3, 199.00)); + productService.create(new ProductEntity(null, "Нагетсы", type3, 199.00)); + + log.info("Create default users values"); + userService.create(new UserEntity(null, "Alex", "Kryukov", "akryu@mail.ru", "password123")); + userService.create(new UserEntity(null, "Oleg", "Zyngin", "@mail.ru", "password")); + + log.info("Create default orders values"); + final var user1 = userService.create(new UserEntity(null, "Alex", "Kryukov", "akryu@mail.ru", "password")); + orderService.create(new OrderEntity(null, user1, "31-03-2024")); } } } diff --git a/src/main/java/com/example/demo/items/api/ItemController.java b/src/main/java/com/example/demo/items/api/ItemController.java deleted file mode 100644 index 8de1407..0000000 --- a/src/main/java/com/example/demo/items/api/ItemController.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.example.demo.items.api; - -import java.util.List; - -import org.modelmapper.ModelMapper; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import com.example.demo.core.configuration.Constants; -import com.example.demo.items.model.ItemEntity; -import com.example.demo.items.service.ItemService; -import com.example.demo.types.service.TypeService; - -import jakarta.validation.Valid; - -@RestController -@RequestMapping(Constants.API_URL + "/item") -public class ItemController { - private final ItemService itemService; - private final TypeService typeService; - private final ModelMapper modelMapper; - - public ItemController(ItemService itemService, TypeService typeService, ModelMapper modelMapper) { - this.itemService = itemService; - this.typeService = typeService; - this.modelMapper = modelMapper; - } - - private ItemDto toDto(ItemEntity entity) { - return modelMapper.map(entity, ItemDto.class); - } - - private ItemEntity toEntity(ItemDto dto) { - final ItemEntity entity = modelMapper.map(dto, ItemEntity.class); - entity.setType(typeService.get(dto.getTypeId())); - return entity; - } - - @GetMapping - public List getAll(@RequestParam(name = "typeId", defaultValue = "0") Long typeId) { - return itemService.getAll(typeId).stream().map(this::toDto).toList(); - } - - @GetMapping("/{id}") - public ItemDto get(@PathVariable(name = "id") Long id) { - return toDto(itemService.get(id)); - } - - @PostMapping - public ItemDto create(@RequestBody @Valid ItemDto dto) { - return toDto(itemService.create(toEntity(dto))); - } - - @PutMapping("/{id}") - public ItemDto update(@PathVariable(name = "id") Long id, @RequestBody ItemDto dto) { - return toDto(itemService.update(id, toEntity(dto))); - } - - @DeleteMapping("/{id}") - public ItemDto delete(@PathVariable(name = "id") Long id) { - return toDto(itemService.delete(id)); - } -} diff --git a/src/main/java/com/example/demo/items/repository/ItemRepository.java b/src/main/java/com/example/demo/items/repository/ItemRepository.java deleted file mode 100644 index 6488c26..0000000 --- a/src/main/java/com/example/demo/items/repository/ItemRepository.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.demo.items.repository; - -import org.springframework.stereotype.Repository; - -import com.example.demo.core.repository.MapRepository; -import com.example.demo.items.model.ItemEntity; - -@Repository -public class ItemRepository extends MapRepository { -} diff --git a/src/main/java/com/example/demo/order_lines/api/OrderLineController.java b/src/main/java/com/example/demo/order_lines/api/OrderLineController.java new file mode 100644 index 0000000..49c7c2f --- /dev/null +++ b/src/main/java/com/example/demo/order_lines/api/OrderLineController.java @@ -0,0 +1,85 @@ +package com.example.demo.order_lines.api; + +import java.util.List; + +import org.modelmapper.ModelMapper; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import com.example.demo.core.configuration.Constants; +import com.example.demo.order_lines.model.OrderLineEntity; +import com.example.demo.order_lines.service.OrderLineService; +import com.example.demo.orders.model.OrderEntity; +import com.example.demo.orders.service.OrderService; +import com.example.demo.products.model.ProductEntity; +import com.example.demo.products.service.ProductService; + +import jakarta.validation.Valid; + +@RestController +@RequestMapping(Constants.API_URL + "/orderLine") +public class OrderLineController { + private final OrderService orderService; + private final OrderLineService orderLineService; + private final ProductService productService; + private final ModelMapper modelMapper; + + public OrderLineController(OrderLineService orderLineService, OrderService orderService, + ProductService productService, ModelMapper modelMapper) { + this.orderService = orderService; + this.orderLineService = orderLineService; + this.productService = productService; + this.modelMapper = modelMapper; + } + + private OrderLineDto toDto(OrderLineEntity orderLineEntity) { + return modelMapper.map(orderLineEntity, OrderLineDto.class); + } + + private OrderLineEntity toEntity(OrderLineDto dto) { + // Получаем заказ и товар из соответствующих сервисов по их идентификаторам из + // OrderLineDto + OrderEntity order = orderService.get(dto.getOrderId()); + ProductEntity product = productService.get(dto.getProductId()); + + // Создаем новый экземпляр OrderLineEntity с помощью модельного маппера + OrderLineEntity entity = modelMapper.map(dto, OrderLineEntity.class); + + // Устанавливаем полученные заказ и товар в OrderLineEntity + entity.setOrder(order); + entity.setProduct(product); + + return entity; + } + + @GetMapping + public List getAll(@RequestParam(name = "orderId", defaultValue = "0") Long orderId) { + return orderLineService.getAll(orderId).stream().map(this::toDto).toList(); + } + + @GetMapping("/{id}") + public OrderLineDto get(@PathVariable(name = "id") Long id) { + return toDto(orderLineService.get(id)); + } + + @PostMapping + public OrderLineDto create(@RequestBody @Valid OrderLineDto dto) { + return toDto(orderLineService.create(toEntity(dto))); + } + + @PutMapping("/{id}") + public OrderLineDto update(@PathVariable(name = "id") Long id, @RequestBody OrderLineDto dto) { + return toDto(orderLineService.update(id, toEntity(dto))); + } + + @DeleteMapping("/{id}") + public OrderLineDto delete(@PathVariable(name = "id") Long id) { + return toDto(orderLineService.delete(id)); + } +} diff --git a/src/main/java/com/example/demo/order_lines/api/OrderLineDto.java b/src/main/java/com/example/demo/order_lines/api/OrderLineDto.java new file mode 100644 index 0000000..d686e57 --- /dev/null +++ b/src/main/java/com/example/demo/order_lines/api/OrderLineDto.java @@ -0,0 +1,52 @@ +package com.example.demo.order_lines.api; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; + +public class OrderLineDto { + private Long id; + @NotNull + @Min(1) + private Long orderId; + @NotNull + @Min(1) + private Long productId; + @NotBlank + private Integer count; + + @JsonProperty(access = JsonProperty.Access.READ_ONLY) + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getOrderId() { + return orderId; + } + + public void setOrderId(Long orderId) { + this.orderId = orderId; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } +} diff --git a/src/main/java/com/example/demo/order_lines/model/OrderLineEntity.java b/src/main/java/com/example/demo/order_lines/model/OrderLineEntity.java new file mode 100644 index 0000000..de79b9c --- /dev/null +++ b/src/main/java/com/example/demo/order_lines/model/OrderLineEntity.java @@ -0,0 +1,68 @@ +package com.example.demo.order_lines.model; + +import java.util.Objects; + +import com.example.demo.core.model.BaseEntity; +import com.example.demo.orders.model.OrderEntity; +import com.example.demo.products.model.ProductEntity; + +public class OrderLineEntity extends BaseEntity { + + private OrderEntity order; + private Integer count; + private ProductEntity product; + + public OrderLineEntity() { + + } + + public OrderLineEntity(Long id, OrderEntity order, ProductEntity product, Integer count) { + super(id); + this.order = order; + this.count = count; + this.product = product; + } + + public ProductEntity getProduct() { + return product; + } + + public void setProduct(ProductEntity product) { + this.product = product; + } + + public OrderEntity getOrder() { + return order; + } + + public void setOrder(OrderEntity order) { + this.order = order; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + @Override + public int hashCode() { + return Objects.hash(id, order, product, count); + } + + @SuppressWarnings("unlikely-arg-order-product") + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null || getClass() != obj.getClass()) + return false; + final OrderLineEntity other = (OrderLineEntity) obj; + return Objects.equals(other.getId(), id) + && Objects.equals(other.getOrder(), order) + && Objects.equals(other.getProduct(), product) + && Objects.equals(other.getCount(), count); + } +} diff --git a/src/main/java/com/example/demo/order_lines/repository/OrderLineRepository.java b/src/main/java/com/example/demo/order_lines/repository/OrderLineRepository.java new file mode 100644 index 0000000..3b0bb25 --- /dev/null +++ b/src/main/java/com/example/demo/order_lines/repository/OrderLineRepository.java @@ -0,0 +1,10 @@ +package com.example.demo.order_lines.repository; + +import org.springframework.stereotype.Repository; + +import com.example.demo.core.repository.MapRepository; +import com.example.demo.order_lines.model.OrderLineEntity; + +@Repository +public class OrderLineRepository extends MapRepository { +} diff --git a/src/main/java/com/example/demo/order_lines/service/OrderLineService.java b/src/main/java/com/example/demo/order_lines/service/OrderLineService.java new file mode 100644 index 0000000..2b701a0 --- /dev/null +++ b/src/main/java/com/example/demo/order_lines/service/OrderLineService.java @@ -0,0 +1,51 @@ +package com.example.demo.order_lines.service; + +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import org.springframework.stereotype.Service; + +import com.example.demo.core.error.NotFoundException; +import com.example.demo.order_lines.model.OrderLineEntity; +import com.example.demo.order_lines.repository.OrderLineRepository; + +@Service +public class OrderLineService { + private final OrderLineRepository repository; + + public OrderLineService(OrderLineRepository repository) { + this.repository = repository; + } + + public List getAll(Long orderLineId) { + if (Objects.equals(orderLineId, 0L)) { + return repository.getAll(); + } + return repository.getAll().stream() + .filter(orderLine -> orderLine.getOrder().getId().equals(orderLineId)) + .toList(); + } + + public OrderLineEntity get(Long id) { + return Optional.ofNullable(repository.get(id)) + .orElseThrow(() -> new NotFoundException(id)); + } + + public OrderLineEntity create(OrderLineEntity entity) { + return repository.create(entity); + } + + public OrderLineEntity update(Long id, OrderLineEntity entity) { + final OrderLineEntity existsEntity = get(id); + existsEntity.setOrder(entity.getOrder()); + existsEntity.setProduct(entity.getProduct()); + existsEntity.setCount(entity.getCount()); + return repository.update(existsEntity); + } + + public OrderLineEntity delete(Long id) { + final OrderLineEntity existsEntity = get(id); + return repository.delete(existsEntity); + } +} diff --git a/src/main/java/com/example/demo/orders/api/OrderController.java b/src/main/java/com/example/demo/orders/api/OrderController.java new file mode 100644 index 0000000..9ef168d --- /dev/null +++ b/src/main/java/com/example/demo/orders/api/OrderController.java @@ -0,0 +1,69 @@ +package com.example.demo.orders.api; + +import java.util.List; + +import org.modelmapper.ModelMapper; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import com.example.demo.core.configuration.Constants; +import com.example.demo.orders.model.OrderEntity; +import com.example.demo.orders.service.OrderService; +import com.example.demo.users.service.UserService; + +import jakarta.validation.Valid; + +@RestController +@RequestMapping(Constants.API_URL + "/order") +public class OrderController { + private final OrderService orderService; + private final UserService userService; + private final ModelMapper modelMapper; + + public OrderController(OrderService orderService, UserService userService, ModelMapper modelMapper) { + this.orderService = orderService; + this.userService = userService; + this.modelMapper = modelMapper; + } + + private OrderDto toDto(OrderEntity entity) { + return modelMapper.map(entity, OrderDto.class); + } + + private OrderEntity toEntity(OrderDto dto) { + final OrderEntity entity = modelMapper.map(dto, OrderEntity.class); + entity.setUser(userService.get(dto.getUserId())); + return entity; + } + + @GetMapping + public List getAll(@RequestParam(name = "userId", defaultValue = "0") Long userId) { + return orderService.getAll(userId).stream().map(this::toDto).toList(); + } + + @GetMapping("/{id}") + public OrderDto get(@PathVariable(name = "id") Long id) { + return toDto(orderService.get(id)); + } + + @PostMapping + public OrderDto create(@RequestBody @Valid OrderDto dto) { + return toDto(orderService.create(toEntity(dto))); + } + + @PutMapping("/{id}") + public OrderDto update(@PathVariable(name = "id") Long id, @RequestBody OrderDto dto) { + return toDto(orderService.update(id, toEntity(dto))); + } + + @DeleteMapping("/{id}") + public OrderDto delete(@PathVariable(name = "id") Long id) { + return toDto(orderService.delete(id)); + } +} diff --git a/src/main/java/com/example/demo/orders/api/OrderDto.java b/src/main/java/com/example/demo/orders/api/OrderDto.java new file mode 100644 index 0000000..09293eb --- /dev/null +++ b/src/main/java/com/example/demo/orders/api/OrderDto.java @@ -0,0 +1,41 @@ +package com.example.demo.orders.api; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; + +public class OrderDto { + private Long id; + @NotNull + @Min(1) + private Long userId; + @NotBlank + private String date; + + @JsonProperty(access = JsonProperty.Access.READ_ONLY) + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } +} diff --git a/src/main/java/com/example/demo/orders/model/OrderEntity.java b/src/main/java/com/example/demo/orders/model/OrderEntity.java new file mode 100644 index 0000000..e3406f1 --- /dev/null +++ b/src/main/java/com/example/demo/orders/model/OrderEntity.java @@ -0,0 +1,55 @@ +package com.example.demo.orders.model; + +import java.util.Objects; + +import com.example.demo.core.model.BaseEntity; +import com.example.demo.users.model.UserEntity; + +public class OrderEntity extends BaseEntity { + private UserEntity user; + private String date; + + public OrderEntity() { + // Пустой конструктор + } + + public OrderEntity(Long id, UserEntity user, String date) { + super(id); + this.user = user; + this.date = date; + } + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + @Override + public int hashCode() { + return Objects.hash(id, user, date); + } + + @SuppressWarnings("unlikely-arg-user") + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null || getClass() != obj.getClass()) + return false; + final OrderEntity other = (OrderEntity) obj; + return Objects.equals(other.getId(), id) + && Objects.equals(other.getUser(), user) + && Objects.equals(other.getDate(), date); + } +} diff --git a/src/main/java/com/example/demo/orders/repository/OrderRepository.java b/src/main/java/com/example/demo/orders/repository/OrderRepository.java new file mode 100644 index 0000000..ae96b81 --- /dev/null +++ b/src/main/java/com/example/demo/orders/repository/OrderRepository.java @@ -0,0 +1,10 @@ +package com.example.demo.orders.repository; + +import org.springframework.stereotype.Repository; + +import com.example.demo.core.repository.MapRepository; +import com.example.demo.orders.model.OrderEntity; + +@Repository +public class OrderRepository extends MapRepository { +} diff --git a/src/main/java/com/example/demo/orders/service/OrderService.java b/src/main/java/com/example/demo/orders/service/OrderService.java new file mode 100644 index 0000000..f325cf8 --- /dev/null +++ b/src/main/java/com/example/demo/orders/service/OrderService.java @@ -0,0 +1,50 @@ +package com.example.demo.orders.service; + +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import org.springframework.stereotype.Service; + +import com.example.demo.core.error.NotFoundException; +import com.example.demo.orders.model.OrderEntity; +import com.example.demo.orders.repository.OrderRepository; + +@Service +public class OrderService { + private final OrderRepository repository; + + public OrderService(OrderRepository repository) { + this.repository = repository; + } + + public List getAll(Long userId) { + if (Objects.equals(userId, 0L)) { + return repository.getAll(); + } + return repository.getAll().stream() + .filter(order -> order.getUser().getId().equals(userId)) + .toList(); + } + + public OrderEntity get(Long id) { + return Optional.ofNullable(repository.get(id)) + .orElseThrow(() -> new NotFoundException(id)); + } + + public OrderEntity create(OrderEntity entity) { + return repository.create(entity); + } + + public OrderEntity update(Long id, OrderEntity entity) { + final OrderEntity existsEntity = get(id); + existsEntity.setUser(entity.getUser()); + existsEntity.setDate(entity.getDate()); + return repository.update(existsEntity); + } + + public OrderEntity delete(Long id) { + final OrderEntity existsEntity = get(id); + return repository.delete(existsEntity); + } +} diff --git a/src/main/java/com/example/demo/products/api/ProductController.java b/src/main/java/com/example/demo/products/api/ProductController.java new file mode 100644 index 0000000..409eca7 --- /dev/null +++ b/src/main/java/com/example/demo/products/api/ProductController.java @@ -0,0 +1,69 @@ +package com.example.demo.products.api; + +import java.util.List; + +import org.modelmapper.ModelMapper; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import com.example.demo.core.configuration.Constants; +import com.example.demo.products.model.ProductEntity; +import com.example.demo.products.service.ProductService; +import com.example.demo.types.service.TypeService; + +import jakarta.validation.Valid; + +@RestController +@RequestMapping(Constants.API_URL + "/product") +public class ProductController { + private final ProductService productService; + private final TypeService typeService; + private final ModelMapper modelMapper; + + public ProductController(ProductService productService, TypeService typeService, ModelMapper modelMapper) { + this.productService = productService; + this.typeService = typeService; + this.modelMapper = modelMapper; + } + + private ProductDto toDto(ProductEntity entity) { + return modelMapper.map(entity, ProductDto.class); + } + + private ProductEntity toEntity(ProductDto dto) { + final ProductEntity entity = modelMapper.map(dto, ProductEntity.class); + entity.setType(typeService.get(dto.getTypeId())); + return entity; + } + + @GetMapping + public List getAll(@RequestParam(name = "typeId", defaultValue = "0") Long typeId) { + return productService.getAll(typeId).stream().map(this::toDto).toList(); + } + + @GetMapping("/{id}") + public ProductDto get(@PathVariable(name = "id") Long id) { + return toDto(productService.get(id)); + } + + @PostMapping + public ProductDto create(@RequestBody @Valid ProductDto dto) { + return toDto(productService.create(toEntity(dto))); + } + + @PutMapping("/{id}") + public ProductDto update(@PathVariable(name = "id") Long id, @RequestBody ProductDto dto) { + return toDto(productService.update(id, toEntity(dto))); + } + + @DeleteMapping("/{id}") + public ProductDto delete(@PathVariable(name = "id") Long id) { + return toDto(productService.delete(id)); + } +} diff --git a/src/main/java/com/example/demo/items/api/ItemDto.java b/src/main/java/com/example/demo/products/api/ProductDto.java similarity index 73% rename from src/main/java/com/example/demo/items/api/ItemDto.java rename to src/main/java/com/example/demo/products/api/ProductDto.java index 023ffc4..368d3eb 100644 --- a/src/main/java/com/example/demo/items/api/ItemDto.java +++ b/src/main/java/com/example/demo/products/api/ProductDto.java @@ -1,21 +1,21 @@ -package com.example.demo.items.api; +package com.example.demo.products.api; import com.fasterxml.jackson.annotation.JsonProperty; import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; -public class ItemDto { +public class ProductDto { private Long id; @NotNull @Min(1) private Long typeId; + @NotBlank + private String name; @NotNull @Min(1) private Double price; - @NotNull - @Min(1) - private Integer count; @JsonProperty(access = JsonProperty.Access.READ_ONLY) public Long getId() { @@ -34,6 +34,14 @@ public class ItemDto { this.typeId = typeId; } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public Double getPrice() { return price; } @@ -42,16 +50,8 @@ public class ItemDto { this.price = price; } - public Integer getCount() { - return count; - } - - public void setCount(Integer count) { - this.count = count; - } - @JsonProperty(access = JsonProperty.Access.READ_ONLY) public Double getSum() { - return price * count; + return price; } } diff --git a/src/main/java/com/example/demo/items/model/ItemEntity.java b/src/main/java/com/example/demo/products/model/ProductEntity.java similarity index 59% rename from src/main/java/com/example/demo/items/model/ItemEntity.java rename to src/main/java/com/example/demo/products/model/ProductEntity.java index 55951d9..3b43ea8 100644 --- a/src/main/java/com/example/demo/items/model/ItemEntity.java +++ b/src/main/java/com/example/demo/products/model/ProductEntity.java @@ -1,24 +1,25 @@ -package com.example.demo.items.model; +package com.example.demo.products.model; import java.util.Objects; import com.example.demo.core.model.BaseEntity; import com.example.demo.types.model.TypeEntity; -public class ItemEntity extends BaseEntity { +public class ProductEntity extends BaseEntity { private TypeEntity type; + private String name; private Double price; - private Integer count; - public ItemEntity() { + public ProductEntity() { super(); } - public ItemEntity(Long id, TypeEntity type, Double price, Integer count) { + public ProductEntity(Long id, String name, TypeEntity type, Double price) { super(id); this.type = type; + this.name = name; this.price = price; - this.count = count; + } public TypeEntity getType() { @@ -29,6 +30,14 @@ public class ItemEntity extends BaseEntity { this.type = type; } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public Double getPrice() { return price; } @@ -37,29 +46,22 @@ public class ItemEntity extends BaseEntity { this.price = price; } - public Integer getCount() { - return count; - } - - public void setCount(Integer count) { - this.count = count; - } - @Override public int hashCode() { - return Objects.hash(id, type, price, count); + return Objects.hash(id, type, name, price); } + @SuppressWarnings("unlikely-arg-type") @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; - final ItemEntity other = (ItemEntity) obj; + final ProductEntity other = (ProductEntity) obj; return Objects.equals(other.getId(), id) && Objects.equals(other.getType(), type) - && Objects.equals(other.getPrice(), price) - && Objects.equals(other.getCount(), count); + && Objects.equals(other.getType(), name) + && Objects.equals(other.getPrice(), price); } } diff --git a/src/main/java/com/example/demo/products/repository/ProductRepository.java b/src/main/java/com/example/demo/products/repository/ProductRepository.java new file mode 100644 index 0000000..2dbfa07 --- /dev/null +++ b/src/main/java/com/example/demo/products/repository/ProductRepository.java @@ -0,0 +1,10 @@ +package com.example.demo.products.repository; + +import org.springframework.stereotype.Repository; + +import com.example.demo.core.repository.MapRepository; +import com.example.demo.products.model.ProductEntity; + +@Repository +public class ProductRepository extends MapRepository { +} diff --git a/src/main/java/com/example/demo/items/service/ItemService.java b/src/main/java/com/example/demo/products/service/ProductService.java similarity index 50% rename from src/main/java/com/example/demo/items/service/ItemService.java rename to src/main/java/com/example/demo/products/service/ProductService.java index 7678a2c..31c83c3 100644 --- a/src/main/java/com/example/demo/items/service/ItemService.java +++ b/src/main/java/com/example/demo/products/service/ProductService.java @@ -1,4 +1,4 @@ -package com.example.demo.items.service; +package com.example.demo.products.service; import java.util.List; import java.util.Objects; @@ -7,45 +7,45 @@ import java.util.Optional; import org.springframework.stereotype.Service; import com.example.demo.core.error.NotFoundException; -import com.example.demo.items.model.ItemEntity; -import com.example.demo.items.repository.ItemRepository; +import com.example.demo.products.model.ProductEntity; +import com.example.demo.products.repository.ProductRepository; @Service -public class ItemService { - private final ItemRepository repository; +public class ProductService { + private final ProductRepository repository; - public ItemService(ItemRepository repository) { + public ProductService(ProductRepository repository) { this.repository = repository; } - public List getAll(Long typeId) { + public List getAll(Long typeId) { if (Objects.equals(typeId, 0L)) { return repository.getAll(); } return repository.getAll().stream() - .filter(item -> item.getType().getId().equals(typeId)) + .filter(order -> order.getType().getId().equals(typeId)) .toList(); } - public ItemEntity get(Long id) { + public ProductEntity get(Long id) { return Optional.ofNullable(repository.get(id)) .orElseThrow(() -> new NotFoundException(id)); } - public ItemEntity create(ItemEntity entity) { + public ProductEntity create(ProductEntity entity) { return repository.create(entity); } - public ItemEntity update(Long id, ItemEntity entity) { - final ItemEntity existsEntity = get(id); + public ProductEntity update(Long id, ProductEntity entity) { + final ProductEntity existsEntity = get(id); + existsEntity.setName(entity.getName()); existsEntity.setType(entity.getType()); existsEntity.setPrice(entity.getPrice()); - existsEntity.setCount(entity.getCount()); return repository.update(existsEntity); } - public ItemEntity delete(Long id) { - final ItemEntity existsEntity = get(id); + public ProductEntity delete(Long id) { + final ProductEntity existsEntity = get(id); return repository.delete(existsEntity); } } diff --git a/src/main/java/com/example/demo/speaker/api/SpeakerController.java b/src/main/java/com/example/demo/speaker/api/SpeakerController.java deleted file mode 100644 index 293296d..0000000 --- a/src/main/java/com/example/demo/speaker/api/SpeakerController.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.demo.speaker.api; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import com.example.demo.speaker.service.SpeakerService; - -@RestController -public class SpeakerController { - private final SpeakerService speakerService; - - public SpeakerController(SpeakerService speakerService) { - this.speakerService = speakerService; - } - - @GetMapping - public String hello( - @RequestParam(value = "name", defaultValue = "Мир") String name, - @RequestParam(value = "lang", defaultValue = "ru") String lang) { - return speakerService.say(name, lang); - } -} diff --git a/src/main/java/com/example/demo/speaker/configuration/SpeakerConfiguration.java b/src/main/java/com/example/demo/speaker/configuration/SpeakerConfiguration.java deleted file mode 100644 index 0ef7cda..0000000 --- a/src/main/java/com/example/demo/speaker/configuration/SpeakerConfiguration.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.example.demo.speaker.configuration; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import com.example.demo.speaker.domain.Speaker; -import com.example.demo.speaker.domain.SpeakerEng; -import com.example.demo.speaker.domain.SpeakerRus; - -@Configuration -public class SpeakerConfiguration { - private final Logger log = LoggerFactory.getLogger(SpeakerConfiguration.class); - - @Bean(value = "ru", initMethod = "init", destroyMethod = "destroy") - public SpeakerRus createRusSpeaker() { - log.info("Call createRusSpeaker()"); - return new SpeakerRus(); - } - - @Bean(value = "en") - public Speaker createEngSpeaker() { - log.info("Call createEngSpeaker()"); - return new SpeakerEng(); - } -} diff --git a/src/main/java/com/example/demo/speaker/domain/Speaker.java b/src/main/java/com/example/demo/speaker/domain/Speaker.java deleted file mode 100644 index 27a0a29..0000000 --- a/src/main/java/com/example/demo/speaker/domain/Speaker.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.example.demo.speaker.domain; - -public interface Speaker { - String say(); -} diff --git a/src/main/java/com/example/demo/speaker/domain/SpeakerDeu.java b/src/main/java/com/example/demo/speaker/domain/SpeakerDeu.java deleted file mode 100644 index 5909864..0000000 --- a/src/main/java/com/example/demo/speaker/domain/SpeakerDeu.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.example.demo.speaker.domain; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -import jakarta.annotation.PostConstruct; -import jakarta.annotation.PreDestroy; - -@Component(value = "de") -public class SpeakerDeu implements Speaker { - private final Logger log = LoggerFactory.getLogger(SpeakerDeu.class); - - @Override - public String say() { - return "Hallo"; - } - - @PostConstruct - public void init() { - log.info("SpeakerDeu.init()"); - } - - @PreDestroy - public void destroy() { - log.info("SpeakerDeu.destroy()"); - } -} diff --git a/src/main/java/com/example/demo/speaker/domain/SpeakerEng.java b/src/main/java/com/example/demo/speaker/domain/SpeakerEng.java deleted file mode 100644 index a310403..0000000 --- a/src/main/java/com/example/demo/speaker/domain/SpeakerEng.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.example.demo.speaker.domain; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; - -public class SpeakerEng implements Speaker, InitializingBean, DisposableBean { - private final Logger log = LoggerFactory.getLogger(SpeakerEng.class); - - @Override - public String say() { - return "Hello"; - } - - @Override - public void afterPropertiesSet() { - log.info("SpeakerEng.afterPropertiesSet()"); - } - - @Override - public void destroy() { - log.info("SpeakerEng.destroy()"); - - } -} diff --git a/src/main/java/com/example/demo/speaker/domain/SpeakerRus.java b/src/main/java/com/example/demo/speaker/domain/SpeakerRus.java deleted file mode 100644 index d6ed18e..0000000 --- a/src/main/java/com/example/demo/speaker/domain/SpeakerRus.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.example.demo.speaker.domain; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class SpeakerRus implements Speaker { - private final Logger log = LoggerFactory.getLogger(SpeakerRus.class); - - @Override - public String say() { - return "Привет"; - } - - public void init() { - log.info("SpeakerRus.init()"); - } - - public void destroy() { - log.info("SpeakerRus.destroy()"); - } -} diff --git a/src/main/java/com/example/demo/speaker/service/SpeakerService.java b/src/main/java/com/example/demo/speaker/service/SpeakerService.java deleted file mode 100644 index db81ba4..0000000 --- a/src/main/java/com/example/demo/speaker/service/SpeakerService.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.example.demo.speaker.service; - -import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Service; - -import com.example.demo.speaker.domain.Speaker; - -@Service -public class SpeakerService { - private final ApplicationContext applicationContext; - - public SpeakerService(ApplicationContext applicationContext) { - this.applicationContext = applicationContext; - } - - public String say(String name, String lang) { - final Speaker speaker = (Speaker) applicationContext.getBean(lang); - return String.format("%s, %s!", speaker.say(), name); - } -} diff --git a/src/main/java/com/example/demo/users/api/UserDto.java b/src/main/java/com/example/demo/users/api/UserDto.java index 31fabd8..d1e5233 100644 --- a/src/main/java/com/example/demo/users/api/UserDto.java +++ b/src/main/java/com/example/demo/users/api/UserDto.java @@ -2,6 +2,7 @@ package com.example.demo.users.api; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -14,6 +15,7 @@ public class UserDto { @NotBlank private String surname; @NotBlank + @Email private String email; @NotBlank private String password; diff --git a/src/test/java/com/example/demo/OrderLineServiceTests.java b/src/test/java/com/example/demo/OrderLineServiceTests.java new file mode 100644 index 0000000..282e229 --- /dev/null +++ b/src/test/java/com/example/demo/OrderLineServiceTests.java @@ -0,0 +1,69 @@ +package com.example.demo; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import com.example.demo.core.error.NotFoundException; +import com.example.demo.order_lines.model.OrderLineEntity; +import com.example.demo.order_lines.service.OrderLineService; + +@SpringBootTest +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +class OrderLineServiceTests { + @Autowired + private OrderLineService orderLineService; + + @Test + void getTest() { + Assertions.assertThrows(NotFoundException.class, () -> orderLineService.get(0L)); + } + + @Test + @Order(1) + void createTest() { + // Создаем тестовую сущность OrderLineEntity + OrderLineEntity testOrderLine = new OrderLineEntity(null, null, null, 5); + // Вызываем метод create() и сохраняем созданную сущность + OrderLineEntity createdOrderLine = orderLineService.create(testOrderLine); + // Проверяем, что метод create() вернул не null + Assertions.assertNotNull(createdOrderLine); + // Проверяем, что созданная сущность имеет назначенный ID + Assertions.assertNotNull(createdOrderLine.getId()); + // Проверяем, что созданная сущность соответствует той, которую мы передали + Assertions.assertEquals(testOrderLine.getCount(), createdOrderLine.getCount()); + } + + @Test + @Order(2) + void updateTest() { + // Получаем сущность OrderLineEntity для обновления + OrderLineEntity existingOrderLine = orderLineService.get(1L); + // Создаем новое количество для обновления + int newCount = 10; + // Устанавливаем новое количество в сущность OrderLineEntity + existingOrderLine.setCount(newCount); + // Вызываем метод update() и сохраняем обновленную сущность + OrderLineEntity updatedOrderLine = orderLineService.update(1L, existingOrderLine); + // Проверяем, что метод update() вернул не null + Assertions.assertNotNull(updatedOrderLine); + // Проверяем, что обновленная сущность имеет то же количество, что и заданное + Assertions.assertEquals(newCount, updatedOrderLine.getCount()); + } + + @Test + @Order(3) + void deleteTest() { + // Удаляем сущность OrderLineEntity по ее ID + OrderLineEntity deletedOrderLine = orderLineService.delete(1L); + // Проверяем, что метод delete() вернул не null + Assertions.assertNotNull(deletedOrderLine); + // Проверяем, что удаленная сущность имеет тот же ID, что и удаленная + Assertions.assertEquals(1L, deletedOrderLine.getId()); + // Проверяем, что сущность больше не существует в репозитории + Assertions.assertThrows(NotFoundException.class, () -> orderLineService.get(1L)); + } +} diff --git a/src/test/java/com/example/demo/OrderServiceTests.java b/src/test/java/com/example/demo/OrderServiceTests.java new file mode 100644 index 0000000..c299ad7 --- /dev/null +++ b/src/test/java/com/example/demo/OrderServiceTests.java @@ -0,0 +1,69 @@ +package com.example.demo; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import com.example.demo.core.error.NotFoundException; +import com.example.demo.orders.model.OrderEntity; +import com.example.demo.orders.service.OrderService; + +@SpringBootTest +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +class OrderServiceTests { + @Autowired + private OrderService orderService; + + @Test + void getTest() { + Assertions.assertThrows(NotFoundException.class, () -> orderService.get(0L)); + } + + @Test + @Order(1) + void createTest() { + // Создаем тестовую сущность OrderEntity + OrderEntity testOrder = new OrderEntity(null, null, "2024-04-01"); + // Вызываем метод create() и сохраняем созданную сущность + OrderEntity createdOrder = orderService.create(testOrder); + // Проверяем, что метод create() вернул не null + Assertions.assertNotNull(createdOrder); + // Проверяем, что созданная сущность имеет назначенный ID + Assertions.assertNotNull(createdOrder.getId()); + // Проверяем, что созданная сущность соответствует той, которую мы передали + Assertions.assertEquals(testOrder.getDate(), createdOrder.getDate()); + } + + @Test + @Order(2) + void updateTest() { + // Получаем сущность OrderEntity для обновления + OrderEntity existingOrder = orderService.get(1L); + // Создаем новую дату для обновления + String newDate = "2024-04-02"; + // Устанавливаем новую дату в сущность OrderEntity + existingOrder.setDate(newDate); + // Вызываем метод update() и сохраняем обновленную сущность + OrderEntity updatedOrder = orderService.update(1L, existingOrder); + // Проверяем, что метод update() вернул не null + Assertions.assertNotNull(updatedOrder); + // Проверяем, что обновленная сущность имеет ту же дату, что и заданная + Assertions.assertEquals(newDate, updatedOrder.getDate()); + } + + @Test + @Order(3) + void deleteTest() { + // Удаляем сущность OrderEntity по ее ID + OrderEntity deletedOrder = orderService.delete(1L); + // Проверяем, что метод delete() вернул не null + Assertions.assertNotNull(deletedOrder); + // Проверяем, что удаленная сущность имеет тот же ID, что и удаленная + Assertions.assertEquals(1L, deletedOrder.getId()); + // Проверяем, что сущность больше не существует в репозитории + Assertions.assertThrows(NotFoundException.class, () -> orderService.get(1L)); + } +} diff --git a/src/test/java/com/example/demo/ProductServiceTests.java b/src/test/java/com/example/demo/ProductServiceTests.java new file mode 100644 index 0000000..8a545be --- /dev/null +++ b/src/test/java/com/example/demo/ProductServiceTests.java @@ -0,0 +1,57 @@ +package com.example.demo; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import com.example.demo.core.error.NotFoundException; +import com.example.demo.products.model.ProductEntity; +import com.example.demo.products.service.ProductService; +import com.example.demo.types.model.TypeEntity; + +@SpringBootTest +@TestMethodOrder(OrderAnnotation.class) +class ProductServiceTests { + @Autowired + private ProductService productService; + + @Test + void getTest() { + Assertions.assertThrows(NotFoundException.class, () -> productService.get(0L)); + } + + @Test + @Order(1) + void createTest() { + + final var type1 = new TypeEntity(null, "Пицца"); + productService.create(new ProductEntity(null, "Mocarela", type1, 20.00)); + productService.create(new ProductEntity(null, "El'Diablo", type1, 20.00)); + productService.create(new ProductEntity(null, "Маргарита", type1, 499.00)); + productService.create(new ProductEntity(null, "Эль Дьябло", type1, 699.00)); + productService.create(new ProductEntity(null, "Гавайская", type1, 399.00)); + Assertions.assertEquals(5, productService.getAll(0L).size()); + } + + @Test + @Order(2) + void updateTest() { + final ProductEntity newProduct = new ProductEntity(null, "El'Diablo", new TypeEntity(null, "Пицца"), 20.00); + final ProductEntity updProduct = productService.update(1L, newProduct); + Assertions.assertEquals(5, productService.getAll(0L).size()); + Assertions.assertEquals(updProduct, productService.get(1L)); + Assertions.assertEquals(newProduct.getName(), updProduct.getName()); + Assertions.assertEquals(newProduct.getPrice(), updProduct.getPrice()); + } + + @Test + @Order(3) + void deleteTest() { + productService.delete(2L); + Assertions.assertEquals(4L, productService.getAll(0L).size()); + } +} \ No newline at end of file diff --git a/src/test/java/com/example/demo/SpeakerSrviceTests.java b/src/test/java/com/example/demo/SpeakerSrviceTests.java deleted file mode 100644 index d8624d3..0000000 --- a/src/test/java/com/example/demo/SpeakerSrviceTests.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.example.demo; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.NoSuchBeanDefinitionException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.example.demo.speaker.service.SpeakerService; - -@SpringBootTest -class SpeakerSrviceTests { - @Autowired - SpeakerService speakerService; - - @Test - void testSpeakerRus() { - final String res = speakerService.say("Мир", "ru"); - Assertions.assertEquals("Привет, Мир!", res); - } - - @Test - void testSpeakerEng() { - final String res = speakerService.say("World", "en"); - Assertions.assertEquals("Hello, World!", res); - } - - @Test - void testSpeakerDeu() { - final String res = speakerService.say("Welt", "de"); - Assertions.assertEquals("Hallo, Welt!", res); - } - - @Test - void testSpeakerErrorWired() { - Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> speakerService.say("Мир", "rus")); - } -} diff --git a/src/test/java/com/example/demo/TypeServiceTests.java b/src/test/java/com/example/demo/TypeServiceTests.java index 409d4d9..6c372b6 100644 --- a/src/test/java/com/example/demo/TypeServiceTests.java +++ b/src/test/java/com/example/demo/TypeServiceTests.java @@ -26,9 +26,9 @@ class TypeServiceTests { @Test @Order(1) void createTest() { - typeService.create(new TypeEntity(null, "Ноутбук")); - typeService.create(new TypeEntity(null, "Телефон")); - final TypeEntity last = typeService.create(new TypeEntity(null, "Игровая приставка")); + typeService.create(new TypeEntity(null, "Пицца")); + typeService.create(new TypeEntity(null, "Напиток")); + final TypeEntity last = typeService.create(new TypeEntity(null, "Закуска")); Assertions.assertEquals(3, typeService.getAll().size()); Assertions.assertEquals(last, typeService.get(3L)); } @@ -54,7 +54,7 @@ class TypeServiceTests { final TypeEntity last = typeService.get(2L); Assertions.assertEquals(2L, last.getId()); - final TypeEntity newEntity = typeService.create(new TypeEntity(null, "Игровая приставка")); + final TypeEntity newEntity = typeService.create(new TypeEntity(null, "Закуска")); Assertions.assertEquals(3, typeService.getAll().size()); Assertions.assertEquals(4L, newEntity.getId()); } diff --git a/src/test/java/com/example/demo/UserServiceTests.java b/src/test/java/com/example/demo/UserServiceTests.java index f65096d..9366084 100644 --- a/src/test/java/com/example/demo/UserServiceTests.java +++ b/src/test/java/com/example/demo/UserServiceTests.java @@ -37,7 +37,6 @@ class UserServiceTests { @Test @Order(2) void updateTest() { - final String test = "TEST"; final UserEntity entity = userService.get(3L); final String oldName = entity.getFullname(); final UserEntity newEntity = userService.update(3L, new UserEntity(1L, "test", "test", "test", "test"));