From 9655a84025d30ff536723149e09bce288450c7cf Mon Sep 17 00:00:00 2001 From: Yuee Shiness Date: Tue, 21 Mar 2023 02:18:28 +0400 Subject: [PATCH] Labwork3 is done. --- .gradle/7.3.3/checksums/checksums.lock | Bin 38 -> 17 bytes .gradle/7.3.3/checksums/md5-checksums.bin | Bin 27497 -> 29797 bytes .gradle/7.3.3/checksums/sha1-checksums.bin | Bin 43283 -> 73841 bytes .../executionHistory/executionHistory.bin | Bin 275371 -> 465230 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.3.3/fileHashes/fileHashes.bin | Bin 23447 -> 24847 bytes .gradle/7.3.3/fileHashes/fileHashes.lock | Bin 38 -> 17 bytes .../7.3.3/fileHashes/resourceHashesCache.bin | Bin 20741 -> 23393 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/buildOutputCleanup/outputFiles.bin | Bin 20639 -> 20657 bytes .idea/.name | 1 - .idea/misc.xml | 3 + build.gradle | 4 +- .../sbapp/Controllers/StringController.java | 44 ------------- .../Implementation/StringArrayConverter.java | 31 --------- .../sbapp/Implementation/StringConverter.java | 28 -------- .../ulstu/is/sbapp/Interfaces/Converter.java | 11 ---- .../is/sbapp/Services/ConverterService.java | 52 --------------- src/main/resources/application.properties | 12 +++- .../ulstu/is/sbapp/ConverterServiceTests.java | 60 ------------------ 20 files changed, 17 insertions(+), 229 deletions(-) delete mode 100644 .idea/.name delete mode 100644 src/main/java/ru/ulstu/is/sbapp/Controllers/StringController.java delete mode 100644 src/main/java/ru/ulstu/is/sbapp/Implementation/StringArrayConverter.java delete mode 100644 src/main/java/ru/ulstu/is/sbapp/Implementation/StringConverter.java delete mode 100644 src/main/java/ru/ulstu/is/sbapp/Interfaces/Converter.java delete mode 100644 src/main/java/ru/ulstu/is/sbapp/Services/ConverterService.java delete mode 100644 src/test/java/ru/ulstu/is/sbapp/ConverterServiceTests.java diff --git a/.gradle/7.3.3/checksums/checksums.lock b/.gradle/7.3.3/checksums/checksums.lock index bd47bf0c2f5486a0bafe018cf58df046c1bb152b..8bae2e367840ba37cbe992a56c2809e1f3375656 100644 GIT binary patch literal 17 VcmZQh-_d)-v{d&j0~jzn0{}DW1YQ6D literal 38 qcmZQh-_d)-v{d&j0~j#PXJ%mdb74Kp1{1$uIg1%sj0}uS7#INRoC`t# diff --git a/.gradle/7.3.3/checksums/md5-checksums.bin b/.gradle/7.3.3/checksums/md5-checksums.bin index cef76af117f9e07cb27fb09ad8260ceac867f865..1d2d68100c5f3326c1c7a06639ab8c1d604c0c1f 100644 GIT binary patch delta 3246 zcmZved011&8pcnoEY?eN*hwI)*%Vo1mE~SGF<7?%DuTEmi|o4!QVgh2D}u_XU=*wh zQmTR!K|#<0MX8lsLDpJisR)W#7eJsY_nge+K95P~dCvUt=KFo`H{Z;eljmKO;Ze#p zD=o?pu+|FTC@;(WQrAQY6OY)zIW#i-o}RJ|w^$GL7*CL`m5*odymEj7yuF|pIRh9p zKA!iUH}K5memWH6l`4a2H!1klSI0g))XJbC{s2(dPN$m5Umw&zWDK>qJs?{WDK7RN2%)nl^dv!1{z7wz*gVZYbC+1&|KY?1*7Vwc_M_nDR98>5M2DO9;V4|y! z_wLTg30SAL8HzC@z+E>KAMm(nK^roQN3?Neu`ZW_zZM4VdTn%x2i53Xpjl6!`}ReB zY0068Wl)S=C8_>h$>JSCYRD_7N1OqDdg)YWHHQGhiY-u!dki+{x8RD*)}WqDD<71A z2Gk8&aOKj`ha2chX^0L3odz@11t0VN>baQ*waBHQ*-)R$*y%f*Gez@bbgPSO2=JZ)8M$7?qrX5vYr#-`3EdgrLQAa^GGYz*d;U_06aejhgoI8+XEyG(GKEOr>xI8QWn21kh#{tGhLcGSj&H}!dy-7qfN2UM~1 z@!l61a2n@wlh2qRj@qGm&@?baIwCCsbS=s?jcpfMSAz#6B@e=+9ai z@)7DWdJ=t?>7ML`9h;S*9`&wLj!UP^Q+KH_nAWT?@0nNW;!&$Of9?b`xpIylP8V1b zfs2U8fPC;mU-!b|1P$>h#I6IPtG%B(wyr6iDx|yDueykkog{!^VTXxH3c1zs!QVgBbMi7z z&c5F5u`VPGHi`j^nF88;RXtA&vW+`dhdZBPTX&cCu0%2DoT*34X5HO*IgtIgvqt#K zV~aGOg)jb`Snwk_@1ZJKeqYE)6~({U)-tj<5jtW3Q+O&%V57&b*$cifOLV-R zrE6os&qhcPL=P z@WMSr)IdU8hu9Qp#Mpv0axUq}SGzNrpZ492A}(U`j2bC`ac{c7cyRfX&E4wL85>$M zYu2Aj>Yw>>amw=-G}k;uMP0?Sq64d3j6Kyi2>iY`@dg_U>yd ztU?(xIPxI(i`XvAfqeI*kiV@)=9{p7nP-BHR;Svk5{(d>pzBtVNFhz!xbsMJld96!6aWkVk{s(lTse7pz2RG+kho2>ML*X%WxiXjgcnIM353f7ko4Mud52& zEB4iGHnet+Q{SK;QNG|%*?dXm{~k5MoT9RyJUSa&XI_Sg-$;K9n@6@(s)D9=t-mOp zgR`OU&4bv#QHW-U3m^%yF$zEykuMU^yE>)=`sE)v)knk;w<(FR%!o*0_|k|;%4BuV zTv^P%;kAKjHNxz=gFw)@!ZKGoxCs%hkf4))aiq!;?K*TM!_}~gZ5EfaxbZGJm8@-If}&_SCW|=L zp6KomA5JeXtlQF*HWsG zQuW`HXy-W9ntG`&w7FZ7{=5+vg0aZ2rWEn>`KCfs=OpE+>l23S?lquyhIO4Jh<#Ja zl|}G7IloqIi?gY0o;@R)&|V75V(lRj42vPIbZL{pkJEdf3)@`$zkO{*U6xvp2(B2w z<`>Bly`sWNH^I}6{^}!_RNO>7v=XKWA`HcUK$;F;zOCn~LU1Ezwy=9L|Or9UKhYA%}>U&}5;uEV1dF#oI=+B2L3fdgk%7`~u=TBVGwY zlv`wxH(z~^sowVFEm4iFvHIg$FC;j8XriJ7TsEl+(tD2H^=}_>992HN_Sn!l6jKUg z{Qu$I8It$NVn4hP#4}$We4elDg9y|g`A*q73XaAe9N+WKd{pC*Pg%^@5)W_E!ydy_ ni4@WuofdgbeAuk}(-(opch>x{pSY9A#d5qz1jFRJiOKYT^hCGA delta 185 zcmV;q07n1i=mF{00kAX}0ko4f7-5sf7>|=}8A!9u8L$D9l^c1JCLCaso*ciEjU6$Q z)*VNaH6GcMCLb`9ZXXwuogZMc6(Ar1lT9HQla(QPlO`g+ll>yVlhq^flinm3lO-h? zlWrv!vz;Xg0h7KaFp~x+N0WUgc#{n%Fq2g%8Iy)6kCR;~NR!nmVUtcOFq4)lkCQzs nkdx&rFtc4O5&;4b@v$NJ7qKuX2eUy)x(Eau-cT2_|4?cgl4wUG diff --git a/.gradle/7.3.3/checksums/sha1-checksums.bin b/.gradle/7.3.3/checksums/sha1-checksums.bin index 7f507df5c302f02dd313439ab049c4d9c02fa872..5611eb1fccb83f33e07fcecd4a1b062cd548e949 100644 GIT binary patch delta 8606 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 VumY{*2-8q(Eqp_e-?7DO^gnUTo#p@l delta 360 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 delta 4318 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 delta 1164 zcmeA_#5jFB;|3E6#^lYW5(GV zpUOx~)|Fi``K_$MWK%hb$*FP`lfTMUY@RDWgK@I2qQ~U5iYq4PDj7`vs{~Z2EHOD& z`4kgpMP9JCUaj|d-7Ue zDTPHxzUlRKRNjsLT*p{tBWMRQ2`KrT0SFkm9~_%3@2d(@t|A0hZt(brUG!oBg;z`*uua;9haWII3kAny6ow#Tl1l(09lPSLuzcQV*yg|?lO4Fh$7iGkrz=H&h$ zsm-;4hZq%H_n2zz-E}}`WA@XeX=Ts1gN=PF%mHyXtKH=IV3&HA6>*I#GbdZm+bo!& zqqQajtZ16k8Q<#2VDy#kMr4F^94;%B@Ax>xp20RF`-v<(C!O{I=wbz#= z5|g}yx}A=#`{@hT!Eh)7s8Sz@x%OacnKf@UOMrm-&3|8d16H~$^nq$gm>d`)Rj>MW zr{rFNqxV&cmY#dacmbGZfJvR z?KDU|0|SQ|kU-NRakIJI;K{ubH)H*Nv;6FzU>z&OuK-no5-htYrWT|B%b&ma9xbO) zdvmWzw^S}fi;*`_B@nRx01{}HtlM_Yr9Rbz!>b_I;#sKLSBMUKIj{x>!^@aDJ_>7I ekWph}-FIifdK&0a0%l8 diff --git a/.gradle/7.3.3/fileHashes/resourceHashesCache.bin b/.gradle/7.3.3/fileHashes/resourceHashesCache.bin index ba5920e0c00dbcf6feba6482609cf55ef9e6a88f..8741a06d3332d0c34df89188dabde51c3c366703 100644 GIT binary patch delta 4367 zcmb7{3p7+)1IHtjN6pBa@fbCTlIIw`Oz2YN{hBGEi_-P#g`!T9S4G@YBvIx{BoQKv zL_~y2QdgrQ6(O!(TwQmjeRkI8^nI=Gtaa9!^*g`)-}~(6nP?W@%QC(q1KFiXk&cD0 z?gXptob&CnJ2;J9F{*W|9EW2s0Pa|Tu9vmbIBr^T+c0y40U+ZploRKrIXJlcBw;cI zO^`i9OtEW-UEm|?0-#$rswk)8c4o<|*7{xVtpIdNhY4qc=59P!z&wn}so!~gL=-*$ z%MQSqe?y)wJ7+1HKGzoW38N6aMxkTvvsNl!&;>i0e9O6d5*=sG(WP3aTr!07Cy+`GxD%T zc+Gu``#_!-9kAcRZY{!bvXG|d0E$sBr^#sgi8ZD4h zp%)dW1r&K)R>s8VFtw;lDR+Hf&-LJ91}N zqSjILl)N}`q_C|I*}0Y^ zE_UY%z?}>sC-uJZe4#Z)##X9Fe!?y&7VAg{2DGWvOwDD1x23W4F|>e0(^zjIIzgJE2mr|V z70SOTEFJF^uly5m<{p$ovLjkG3kaUNoD+p597idNG@@PY*6Z=F)4Bk3C8N%YDn!Sa z&&NbgI${glMH~&_LRW$4N99I4oPlXyh(;@_&^>nk&eGnU+6v%i6W9QcC(^RrQ<`kR z9bQ7dEj`LlUiqQ}R-GA|!A<_vyYWwo8a)C_7DTTrk_jRGVXH6i3daJZ&{jnneW#0G z!?XT7?!#kQ& z>F0;4dHbBwe;S@~QH#VoUg#Xs=W`vN|0f4;$n?gF=k{y0Sw+?`w^GE1@rGa5DTJVF zu12iXRhQn3G#2BP6(lWj$vN}@8=3pkg%N2(Xo0N(66E(V$|WzTtRsa!(2H)J#23q3 z`zFGjyy+tGxe{;7nbm%&!m~*tw}STNJvAd)EDP4e8(J66J4v6gFNz)^s`iY8 z@@5FgK)Am^H(A)WZ`j=0=6#o#_3Ym6n&9usccUU9_=z)PK#vg`ar;*Mbr#+jD%M=q z+}Qa~14Wk5p7rPg-srb7^NnoFze#PhE|zE%BJ%2=^)@dAS@P$v^u<~FTb+^hw^@xh zDr)q-2juEPN+{-9ckFt2$NsDggO#gObBk?8ZjP?D+~^Y+i#Nhws%AyXmQf+^;=~Q~1qVlX6Mj}QD_D!((~5ko?C_6WE;e@;-r)ZzJNMke zFY7KQ87`ytl}_P}|JqG6qamK?Zj@kZ6T4LBfaFW}eMR_?682s-cD8TF%3McZQbc+M z-uQHlANfq^v<~v{E^i&pe2h0N5BFPCNJxnEwDqUyp@Zxnj7AoVs$=G#Mor!HFnQOb zLm%-WZ^tu9o|oe0v!9G)kF?uXxywMj*tNzZ zl_sbNUSa7+%fzlk7K%HsY)anXosBoVI&%MzeQC7ffS88xK<*fCcbheMKYJMiapK`_ zqs$uZ{FbHW+fw=?0&9OB!ksu0i1j(8H}wXu>(Tp^hp*Eo@THW^2B&W@8|*%r*e13- zee{FoAG5wq6{@`28M#(Ka`~}shwvFIYngs))be(GIE{#P8`!4b4tVV+JCU& z?9nxI{XNdl_Ha@HTUR%qJcnEVtdMh?`n&=OURMX$SDp5Ci}AMOSw^5<`4Rbv<}%|( zb)ij6E#4tH%lP>!);?g&IXUi6)ii6aIAU|OCk`KCF2na+)j*lP`!Dvb2fe~^Xsxvb zqJ38|KVo8dyh}f=>LH8w(KxH>Y!4OtiO^MhuV?yZPv)jP#~Y(j^bdr(_5pvrcSq{( zkIihUTosH(i?Mp8*O&`7{q=e?Pyu)LbX zE5XR)1?FDY3l;NTEx+=ugJUgHF1zhxJ&pHq@s-m}q=mNldA*`2N6;dmU+~31{)u{CrLPe8x8nmHP~SNcn_N z!glTB>)^kGujc6czM!VhvAKDd#{1SbCh@-SW=$&g^U%lPi?=VSPoFYvSeSANZ(yg= z_d^M1AjH#RCvDd>o8C_FRrjne>OF!}h?4=Tl^z#zEYfmgJez`Ye=xH?+$vkR=Jve) zsI1V*KDU8hd`2~=6^TksT_-T_9x1T6+X))T%y*S>XX^H6@`lasRVIQlB}gPxW(?sb z*7XzmwK?w-D@9V@&gcEzn$;s(CFk1v-1JvP%7sXKToL+=H_Yu5e`z|-F^-(#Yo*EP J3w}EZ{{<*q%$WcH delta 175 zcmaF3jj?qR;|3E6L8r#x^-qo!sAVyLK|t-~Sc!nicO@oFZk3dn{1=F?N*PR+l{TE5 zCM`bssIMu|V7l#BYIERz-5MpNjtEqbd@URaFfp&s9}o UVsqT6_(Oc7!41L9jvhxi0QBQLh5!Hn diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 3212ac54a480c2378dcb732db50cd82d39d74a2b..210296c33d8c5810939bae71511cd621ec7b5c65 100644 GIT binary patch literal 17 UcmZR6Tc+Kp&bL&B0SuU(0Vz@gR{#J2 literal 17 VcmZR6Tc+Kp&bL&B0Sp+|0{|(y1Hk|Q diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 9a9124542edf9dd271165e984dd4243be5d36619..161d6b8b6e58c520d61a54efc1e1df6ff455f451 100644 GIT binary patch delta 56 zcmbQgka6Qe#tkMCj1`+rB{CWLx%b7Nm}%(100sf`H&2zk%*hzIQSpcPMuQVPn;kvk KI41A+5CQ-ZLlWNr delta 36 scmdnEka7M(#tkMCjOCk6B{CT|Z<9R5$!NJz@rU?Eg9kjD9X;YW0Q + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 5e13045..8447969 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,9 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' - implementation 'junit:junit:4.13.1' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'com.h2database:h2:2.1.214' + implementation 'junit:junit:4.13.2' testImplementation 'org.springframework.boot:spring-boot-starter-test' } diff --git a/src/main/java/ru/ulstu/is/sbapp/Controllers/StringController.java b/src/main/java/ru/ulstu/is/sbapp/Controllers/StringController.java deleted file mode 100644 index f8424b2..0000000 --- a/src/main/java/ru/ulstu/is/sbapp/Controllers/StringController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.ulstu.is.sbapp.Controllers; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import ru.ulstu.is.sbapp.Services.ConverterService; - -@RestController -public class StringController { - private final ConverterService converterService; - - public StringController(ConverterService converterService) - { - this.converterService = converterService; - } - @GetMapping("/toupper") - public Object toUpper(@RequestParam(value = "value",defaultValue = " ") Object value, - @RequestParam(value = "type",defaultValue = "String") String converterType) - { - return converterService.toUpper(value,converterType); - } - - @GetMapping("/removews") - public Object removeWhitespaces(@RequestParam(value = "value",defaultValue = " ") Object value, - @RequestParam(value = "type",defaultValue = "String") String converterType) - { - return converterService.removeWhitespaces(value,converterType); - } - - @GetMapping("/removedigits") - public Object removeDigits(@RequestParam(value = "value",defaultValue = " ") Object value, - @RequestParam(value = "type",defaultValue = "String") String converterType) - { - return converterService.removeDigits(value,converterType); - } - - @GetMapping("/tolower") - public Object toLower(@RequestParam(value = "value",defaultValue = " ") Object value, - @RequestParam(value = "type",defaultValue = "String") String converterType) - { - return converterService.toLower(value,converterType); - } -} diff --git a/src/main/java/ru/ulstu/is/sbapp/Implementation/StringArrayConverter.java b/src/main/java/ru/ulstu/is/sbapp/Implementation/StringArrayConverter.java deleted file mode 100644 index a986f80..0000000 --- a/src/main/java/ru/ulstu/is/sbapp/Implementation/StringArrayConverter.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.ulstu.is.sbapp.Implementation; - -import org.springframework.stereotype.Component; -import ru.ulstu.is.sbapp.Interfaces.Converter; - -import java.util.Arrays; -import java.util.stream.Collectors; - -@Component(value = "AString") -public class StringArrayConverter implements Converter -{ - @Override - public String[] toUpper(String[] value) { - return Arrays.stream(value).map(word -> word.toUpperCase()).toArray(String[]::new); - } - - @Override - public String[] removeWhitespaces(String[] value) { - return (String[]) Arrays.stream(value).map(word -> word.replaceAll("\s+","")).toArray(String[]::new); - } - - @Override - public String[] removeDigits(String[] value) { - return (String[]) Arrays.stream(value).map(word -> word.replaceAll("\\d","")).toArray(String[]::new); - } - - @Override - public String[] toLower(String[] value) { - return (String[]) Arrays.stream(value).map(word -> word.toLowerCase()).toArray(String[]::new); - } -} diff --git a/src/main/java/ru/ulstu/is/sbapp/Implementation/StringConverter.java b/src/main/java/ru/ulstu/is/sbapp/Implementation/StringConverter.java deleted file mode 100644 index 504d8c9..0000000 --- a/src/main/java/ru/ulstu/is/sbapp/Implementation/StringConverter.java +++ /dev/null @@ -1,28 +0,0 @@ -package ru.ulstu.is.sbapp.Implementation; - -import org.springframework.stereotype.Component; -import ru.ulstu.is.sbapp.Interfaces.Converter; - -@Component(value = "String") -public class StringConverter implements Converter -{ - @Override - public String toUpper(String value) { - return value.toString().toUpperCase(); - } - - @Override - public String removeWhitespaces(String value) { - return value.toString().replaceAll("\s+",""); - } - - @Override - public String removeDigits(String value) { - return value.toString().replaceAll("\\d",""); - } - - @Override - public String toLower(String value) { - return value.toString().toLowerCase(); - } -} diff --git a/src/main/java/ru/ulstu/is/sbapp/Interfaces/Converter.java b/src/main/java/ru/ulstu/is/sbapp/Interfaces/Converter.java deleted file mode 100644 index 6d6d6fb..0000000 --- a/src/main/java/ru/ulstu/is/sbapp/Interfaces/Converter.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.ulstu.is.sbapp.Interfaces; - -import org.springframework.context.annotation.Bean; - -public interface Converter -{ - public T toUpper(T value); - public T removeWhitespaces(T value); - public T removeDigits(T value); - public T toLower(T value); -} diff --git a/src/main/java/ru/ulstu/is/sbapp/Services/ConverterService.java b/src/main/java/ru/ulstu/is/sbapp/Services/ConverterService.java deleted file mode 100644 index c1faf53..0000000 --- a/src/main/java/ru/ulstu/is/sbapp/Services/ConverterService.java +++ /dev/null @@ -1,52 +0,0 @@ -package ru.ulstu.is.sbapp.Services; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Service; -import ru.ulstu.is.sbapp.Interfaces.Converter; -import java.util.Arrays; - -@Service -public class ConverterService -{ - private final ApplicationContext applicationContext; - public ConverterService(ApplicationContext applicationContext) - { - this.applicationContext = applicationContext; - } - public Object toUpper(Object value, String converterType) - { - Converter converter = (Converter) applicationContext.getBean(converterType); - if(converterType.equals("String")) { - return converter.toUpper(value); - } - - return converter.toUpper(value.toString().split("\s+")); - } - public Object removeWhitespaces(Object value, String converterType) - { - Converter converter = (Converter) applicationContext.getBean(converterType); - if(converterType.equals("String")) { - return converter.removeWhitespaces(value); - } - return converter.removeWhitespaces(value.toString().split("\s+")); - } - public Object removeDigits(Object value, String converterType) - { - Converter converter = (Converter) applicationContext.getBean(converterType); - if(converterType.equals("String")) - { - return converter.removeDigits(value); - } - return converter.removeDigits(value.toString().split("\s+")); - } - public Object toLower(Object value, String converterType) - { - Converter converter = (Converter) applicationContext.getBean(converterType); - if(converterType.equals("String")) - { - return converter.toLower(value); - } - return converter.toLower(value.toString().split("\s+")); - } -} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b13789..da7b0b1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,11 @@ - +spring.main.banner-mode=off +#server.port=8080 +spring.datasource.url=jdbc:h2:file:./data +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password=password +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.hibernate.ddl-auto=update +spring.h2.console.enabled=true +spring.h2.console.settings.trace=false +spring.h2.console.settings.web-allow-others=false diff --git a/src/test/java/ru/ulstu/is/sbapp/ConverterServiceTests.java b/src/test/java/ru/ulstu/is/sbapp/ConverterServiceTests.java deleted file mode 100644 index b9d3f68..0000000 --- a/src/test/java/ru/ulstu/is/sbapp/ConverterServiceTests.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.ulstu.is.sbapp; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Assertions; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import ru.ulstu.is.sbapp.Services.ConverterService; - -@SpringBootTest -public class ConverterServiceTests -{ - @Autowired - ConverterService converterService; - - @Test - public void stringToUpper() - { - Assertions.assertEquals("LOVE PROGRAMMING",converterService.toUpper("love programming","String")); - } - @Test - public void stringToLower() - { - Assertions.assertEquals("love programming",converterService.toLower("LOVE PROGRAMMING","String")); - } - @Test - public void stringRemoveDigits() - { - Assertions.assertEquals("LVE PRGRAMMNG",converterService.removeDigits("L0VE PR0GRAMM1NG","String")); - } - @Test - public void stringRemoveWhitespaces() - { - Assertions.assertEquals("loveprogramming",converterService.removeWhitespaces("lo ve pro gramm i ng","String")); - } - - @Test - public void aStringToUpper() - { - String expected[] = new String[]{"LOVE","PROGRAMMING"}; - Assertions.assertArrayEquals(expected,(String[])converterService.toUpper("love programming","AString")); - } - @Test - public void aStringToLower() - { - String expected[] = new String[]{"love","programming"}; - Assertions.assertArrayEquals(expected,(String[])converterService.toLower("LOVE PROGRAMMING","AString")); - } - @Test - public void aStringRemoveDigits() - { - String expected[] = new String[]{"LVE","PRGRAMMNG"}; - Assertions.assertArrayEquals(expected, (String[]) converterService.removeDigits("L0VE PR0GRAMM1NG","AString")); - } - @Test - public void aStringRemoveWhitespaces() - { - String expected[] = new String[]{"lo","ve","pro","gramm","i","ng"}; - Assertions.assertArrayEquals(expected,(String[])converterService.removeWhitespaces("lo ve pro gramm i ng","AString")); - } -}