From 248c744efea75e68e09700669cbd1f78d78fc48e Mon Sep 17 00:00:00 2001 From: MASSY FERNANDEZ Neva Aracely <neva-aracely.massy-fernandez@imt-atlantique.net> Date: Thu, 15 May 2025 10:09:26 +0200 Subject: [PATCH] fix: ConsultITemFilmTest --- .../opinion/SocialNetwork.class | Bin 7769 -> 7969 bytes src/opinion/SocialNetwork.java | 11 +++ src/tests/ConsultItemFilmTest.java | 75 ++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 src/tests/ConsultItemFilmTest.java diff --git a/out/production/infrastructureLogicielleClient/opinion/SocialNetwork.class b/out/production/infrastructureLogicielleClient/opinion/SocialNetwork.class index c1aea344efaad2d15b7b062784fd51cef66130cb..2fa5842a0df30e57043402766fb26b3dd70f2198 100644 GIT binary patch delta 2048 zcmca<v(S#~)W2Q(7#J8_809u{v2r>#Gi>K#Xl6LX!*H0vn2~`yJ+;IovnVyWB)<qG zew2sd7)YEaJ+&k_IW;e_D6_Z(B(aZ+ft?|rgW=R<QBFg~Gn3sp71_@7FkE1`I603q zg7Na^<D6$$qy-rn*cci06d1Yq*%*bn7)2OG*%`%n7%ni1PhQ7&nMI0`L3Q#5emO1` zpZxsn(gJoynaOMUjfF2Ua4;}2@G<Z+Ffv?WU|?WkxH|bWzoIdOeT{*MVHLw_u(&9a zn(GWq4Dt+;3=9kc42%q{3~UUH3^yjb3%D`foZKg%E`5uEfq{pCk%581l;JkR9R>yl zMuxi#4q#Om1jJHqGBAMkFfiyaAk?zL)!u`sWnf^?XJ7=I!>YA~L23=yAqdTuST!dw z*nlna5_Dm_Ik{g@S{-DC0s}LHG=nh1eTFOsW(EcZW2j{y)&quz42%qqCSMekWV|u? zwV)&8&B?k#@<AYdS_~`<3=9Tv)dma@)gZCQ3=bKY7?>FJ7@jaZWngA_#K6G7$-wf5 zfsc`so0H)g0|NsK10#bY0~13nLoC=)^MoQ8Z%+O$B<~F~T!ujn>?n{m?r>||;nuh_ zK&$~7&cnd`hk=8gLDljX0}}%y!#V~V1}26ZlM{tQ7;jGACamlWG8N=i69z7Z=M1aC zUUi0>>df#0;#CF)20jK>e$GD(?CcDxG9c3su4QC+$&dy%S4|{^@#f@i5p92vxsad; zhMN`)cVjTrjSLLI46hg-LW6>Zfr(EH913g<Obm_;i42SkuNmHeOy0~Y%Erieb25)u zbUn!EGzKn)bqs<GZyDY(a56A3e1%)`6>iB_xFuh~-T=koSBCct55Y0?mEi-!Lk3o` z-j56q8Q8$APYjX_><kYWL>WFaykp=1$B-BUuP7%!81f1IVTc8Vry48-I2f2292x2u z+87uazF<v-vgoOBAJ$a(mEjx6qm!M*XEWZMd|%ue>`xB{c7{X-8L&Uu85kJ4;Qs7_ z`?Cw~&n~z>yBNMR`~ds2i{U5OpP=L*z`!oX$0-C!5{Bqrn90D%@QdL$$Q29>jB6&( zlz7f~b8@3(a3m<igBUm%rZ5PC6A1?c1H&!2OK!nkatrQ~TX2`$f`|AmhCg7Jfb{-l zkYr$Ecr;m8N>Ut@kYK^Mh=GyeA2cLlr4BIOoGd3Do(!@-hJllzia`KuKPbl6!|h)W zw|_m{{`GMC*TX|%Jv1cD7%Cb5GdyKrV~A!5VPs%f&A`s^Xz~qdS!HCG%w%9>WMpJw zU}m_%z`!_>ff<}a_D{|gmYi%T<6W<{g+X{5gMt-{B+E_)6-I`c44xpC79+y}hGr{P zN!D!)2evV6*4f6ea~6Xlh<gyu6#{XOK)Ev+cy&Si<J%ar!<YZxth)hR41h{4I|hCR z21Wx0envwENk$U}MMhHwO-6GD4@Qf6hHyqphD1hdh7?9yhGs@PhAE8p42u~Z7&b6E zGVEe>X4uQ<3QlNt3~US@43gl0V`XS&Fb5|lP{Q9255oQ6;9_J@WSGau3@)TJ8KyBj zVc=(AW(1Wppt2b(!pI8Et8r=!ocx^s7$n#kOxeMOg5EC%CP>Qq!{Efu(EN*m6PCgt zg&MeuU<4KY`x%Tug&P9{!x08%a2|Bi+QPuKjp4*h1~#FS8-z|z_LfzxKf8<J90P+- z3lrn=|97;vF_?fthM55rGHRe)&*;a%#put#%NWQYz!=0J#2Cz=#~8w3%^1pH#~8-o z$QTX|08lZc#~=VNG~J-y7GN-AWCs^-LJTI191M~SOyK-3z`)G=kAa6hi@}tUok8^% zgBk-TBPSyl)XCc5+KGXIaU*K&!k7TI4HQ%i42+E2j64hs49twYAXSWfjQk7?3>*xM aj6w{Ii~@`j3=9lh42+DDjM9v<43Yp(gQ0c+ delta 1936 zcmZ2zchiRJ)W2Q(7#J8_7{xYnv2wDpGvsqH9GV=!X{d38kwKIzC^bE^xFoeGHANve zH8&}>sMv~&i$RZJpAZ8B!*L#l6AULOujGtiJiVET>kNxDCnEzJBcq-IBNsm#BR3Z# z4<j!-BOedL2}b_OFZnJr3QgY2uf-z5$RIcQ0KeR1P5~j|Qw$soObmPs{0xi?XBZe5 zm>AAZ))P=PhOo~uFfpuRSPd2zMN)H~fr&w$L6U)iL4bjgft7)cfsx_D<R$?(#*33r z3aHm#Vqjq4VPIrnU@&F4%y5N)fq{|XDuV+^6$1l<J_93Ij#X<5gV-9d;TIVgz=kj| z=rABOv%)oB!>U;dU9%-bvlzs9xb6f78<5qLTLoPhFHSxsD6I~%LxF*rL7G9B;W|SW z12Y2ygE3S+h;@VECIchGt;sw>l8hH7s|h(WUYwjEBp(FQr^Ud+z`$StS8c!mQ4JEi z&2W=}iGhhhkKqo(T?S@`TMP^goD3{~82A`Dxj7l`F)%Q&FfcMWGB7dJGQ@%%byFy! z9^`!~1~vu;hBO8lhI9r4h71M=hD-)0hHM5`h8(c3K-S7IsDYgea)3MB0q$@IxHCW; z0J4^cf%y*u2RnnR<u3*%21bT;3^oi*3>O#}7}hc{gT3IaeT;!mdmDqv<PE|Oj29<= z6jt^Hc@PvZCJbB*_Ze1$1I8I{lQY8uNWd^KFz_+3@^k)SU}tAgl>ym+@Eaq;Lxwbv zU6T_<QW!5zJ|?2=4>A|z0|tg*xM{&~cLzh=4U&Dta1$DEEDTJ1V&E`iV_;%%WJqLS zWO&T*1Z47N2T?Xg#*35P#iDaTMyD}wF|1<{WO&N(jDeGZf#ECMlCN+}zQQf}3ibvl z&c8A|XSfLtjIRtY7;ZAKg7v;+xCxGouMDpkBpKKl9x#Y9yk>aDz`<~9GQYUAILNCU z49pCU40Q}`42%qKAgOb*qqvwlC@MkOfq`KkINBiD0Fjd4GQ0zMU~--KY{rX|r6jDu znZ<*FogtAy2JC)z1_p*Mxcj@{?(c%TzYFgEE{69EAHeSKV)zJlKPc)27}&-5IE5h5 zZwQMVn2TpJFfx2%_zZFd0|Vol$yX$vGhUp$M=}`fk{|{ShA9k!;K=7-U|_ffcgZcd zOK!nkatrQ~Tkw#)#qb5}5|G}n43Z3N;9MZWz%9zj&&kip2X&Vky1N!}F)%WGg9gtG zsRN7`Cr3($gB=yaz{ya>AOLn0D0<h!9km|rsP%A1t%o~mJv?~ULxabRp_1V{!(9e8 zhG>Qmh93;88Q8(jlVIQ!<Kz6pAj&B8mw}s|A()*(RrMDG6Q2q=0V0RpPljI%%%F_K z$il!3PA6%TgJn|cbvJ->Hz)z9ff6C30RumyA%i5NF@qwb34<o1DT4>28ACXuIYT0& zB|{3M6*z&IFt9RsFi3*^21<TuaKEL2{lUnf$l%KG8(gqxGT1WQVc=(AX7~dwVId-a z8JHOYKrt@@%9Q^YB-j~D*}+*;4;IRhVh2*J|6^ce*w0`LDt;Ik7>+P7gVVj6))oe? zZ43uyGO!69+#qy#vap<L{n1?v#~2uVT9_D@|Gxt&D?pxPW<Yq-nSqPZg@KpRjX{9X zok57vgF%nclfjzNi@}c3o57LM2kc2u*4JYYfEQkFP)`alm@)hZ7b!vvCX5UWk_=4X z=n!CF=KaUO!=A-p%E->3`inu0fs>Ju5mb(WN-%A3jl#gdxDmDXU<?J@2FY`bjLeLn of|8jL6s$~)Y>c3s#lgVH$i=|O$iXPUz`y`v2{H;ZiZVz702rlkd;kCd diff --git a/src/opinion/SocialNetwork.java b/src/opinion/SocialNetwork.java index 6c15041..eb49d9e 100644 --- a/src/opinion/SocialNetwork.java +++ b/src/opinion/SocialNetwork.java @@ -304,13 +304,24 @@ public class SocialNetwork implements ISocialNetwork { if (title == null || title.trim().length() <= 1) { throw new BadEntryException("Error: Title is null or too short"); } + String formattedTitle = title.trim().toLowerCase(); LinkedList<String> result = new LinkedList<>(); + for (Book b : listBook) { if (b.getTitle().toLowerCase().contains(formattedTitle)) { result.add(b.toString()); } } + + for (Film f : listFilm) { + if (f.getTitle().toLowerCase().contains(formattedTitle) + || f.getDirector().toLowerCase().contains(formattedTitle) + || f.getScenarist().toLowerCase().contains(formattedTitle)) { + result.add(f.toString()); + } + } + return result; } diff --git a/src/tests/ConsultItemFilmTest.java b/src/tests/ConsultItemFilmTest.java new file mode 100644 index 0000000..59bb273 --- /dev/null +++ b/src/tests/ConsultItemFilmTest.java @@ -0,0 +1,75 @@ +package tests; + +import exceptions.*; +import opinion.ISocialNetwork; +import opinion.SocialNetwork; + +import java.util.LinkedList; + +public class ConsultItemFilmTest { + + private static int checkConsultItemFilmException(ISocialNetwork sn, String title, Class<?> expectedException, String testId) { + try { + sn.consultItems(title); + System.out.println("Err " + testId + " : Expected exception " + expectedException.getSimpleName() + " was not thrown"); + return 1; + } catch (Exception e) { + if (e.getClass().equals(expectedException)) { + System.out.println("Test " + testId + " passed (caught expected " + expectedException.getSimpleName() + ")"); + return 0; + } else { + System.out.println("Err " + testId + " : Unexpected exception " + e); + e.printStackTrace(); + return 1; + } + } + } + + private static int checkConsultItemFilmResult(ISocialNetwork sn, String title, int expectedSize, String testId) { + try { + LinkedList<String> results = sn.consultItems(title); + if (results.size() == expectedSize) { + System.out.println("Test " + testId + " passed."); + return 0; + } else { + System.out.println("Err " + testId + " : Expected " + expectedSize + " result(s) but got " + results.size()); + return 1; + } + } catch (Exception e) { + System.out.println("Err " + testId + " : Unexpected exception " + e); + e.printStackTrace(); + return 1; + } + } + + public static void main(String[] args) { + ISocialNetwork sn = new SocialNetwork(); + int nbTests = 0; + int nbErrors = 0; + + try { + sn.addMember("cinefan", "securepass", "film fan"); + sn.addItemFilm("cinefan", "securepass", "Interstellar", "Sci-Fi", "Christopher Nolan", "Jonathan Nolan", 169); + sn.addItemFilm("cinefan", "securepass", "Inception", "Thriller", "Christopher Nolan", "Christopher Nolan", 148); + } catch (Exception e) { + System.out.println("Setup failed: " + e); + return; + } + + // Nominal tests + nbTests++; + nbErrors += checkConsultItemFilmResult(sn, "Inception", 1, "3.1"); + + nbTests++; + nbErrors += checkConsultItemFilmResult(sn, "nolan", 2, "3.2"); + + nbTests++; + nbErrors += checkConsultItemFilmResult(sn, "Unknown Film", 0, "3.3"); + + // Non-nominal test (expects exception) + nbTests++; + nbErrors += checkConsultItemFilmException(sn, "", BadEntryException.class, "3.4"); + + System.out.println("\nConsultItemFilmTest summary: " + nbErrors + " error(s) out of " + nbTests + " test(s)."); + } +} -- GitLab