From c45ef093bd0ea617e43d424c3db444798e321c41 Mon Sep 17 00:00:00 2001 From: Lea Cumont Date: Thu, 3 Nov 2022 15:06:47 +0100 Subject: [PATCH 1/2] nouveau truc --- bin/.gitignore | 28 +++ bin/README.md | 121 ++++++++++ bin/pom.xml | 217 ++++++++++++++++++ .../com/ipi/jva350/Jva350Application.class | Bin 0 -> 1339 bytes .../jva350/exception/SalarieException.class | Bin 0 -> 736 bytes .../com/ipi/jva350/model/Entreprise.class | Bin 0 -> 4883 bytes .../model/LinkedHashSetStringConverter.class | Bin 0 -> 3073 bytes .../jva350/model/SalarieAideADomicile.class | Bin 0 -> 10342 bytes .../SalarieAideADomicileRepository.class | Bin 0 -> 1474 bytes .../service/SalarieAideADomicileService.class | Bin 0 -> 6652 bytes .../test/java/com/ipi/jva350/IsItFriday.class | Bin 0 -> 1515 bytes .../java/com/ipi/jva350/RunCucumberTest.class | Bin 0 -> 1196 bytes .../java/com/ipi/jva350/StepDefinitions.class | Bin 0 -> 2105 bytes .../com/ipi/jva350/is_it_friday.feature | 7 + example.txt | 0 .../jva350/model/SalarieAideADomicile.java | 15 +- 16 files changed, 381 insertions(+), 7 deletions(-) create mode 100644 bin/.gitignore create mode 100644 bin/README.md create mode 100644 bin/pom.xml create mode 100644 bin/src/main/java/com/ipi/jva350/Jva350Application.class create mode 100644 bin/src/main/java/com/ipi/jva350/exception/SalarieException.class create mode 100644 bin/src/main/java/com/ipi/jva350/model/Entreprise.class create mode 100644 bin/src/main/java/com/ipi/jva350/model/LinkedHashSetStringConverter.class create mode 100644 bin/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.class create mode 100644 bin/src/main/java/com/ipi/jva350/repository/SalarieAideADomicileRepository.class create mode 100644 bin/src/main/java/com/ipi/jva350/service/SalarieAideADomicileService.class create mode 100644 bin/src/test/java/com/ipi/jva350/IsItFriday.class create mode 100644 bin/src/test/java/com/ipi/jva350/RunCucumberTest.class create mode 100644 bin/src/test/java/com/ipi/jva350/StepDefinitions.class create mode 100644 bin/src/test/resources/com/ipi/jva350/is_it_friday.feature create mode 100644 example.txt diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 00000000..af9af861 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,28 @@ +/target/ +!.mvn/wrapper/maven-wrapper.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +/build/ + +mvnw* +.mvn diff --git a/bin/README.md b/bin/README.md new file mode 100644 index 00000000..aae68124 --- /dev/null +++ b/bin/README.md @@ -0,0 +1,121 @@ +# TD et TP IPI JVA350 Qualité logicielle + +## Pré-requis + +- Avoir installé un IDE : + - IntelliJ Ultimate, avec votre adresse IPI sur Jetbrains Student à https://www.jetbrains.com/student/ + - ou Eclipse, à https://www.eclipse.org/downloads/packages/release/2022-09/r/eclipse-ide-java-developers +- Savoir utiliser Git et les branches. Quelques liens : + - https://learngitbranching.js.org/ + - https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging +- Avoir un compte Github. Voici comment y configurer l'authentification de git par clé SSH : + - https://docs.github.com/en/authentication/connecting-to-github-with-ssh + - https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account + + +## TD + +### Plateforme d'intégration continue + +- forkez ce repository sur votre compte Github. + - Puis après chaque question, committez et pushez vos réponses sur votre repository. +- sur ce repository, configurez un build automatisé Maven. + - indice : Github Actions > Java with Maven > Configure > Start commit + - vérifiez d'abord la configuration proposée +- vérifiez que le workflow correspondant a été committé, et qu'un job de build a été lancé +- suivre les bonnes pratiques : à chaque commit, si son build casse, ne pas le laisser dans cet état ! + +### Plateforme d'évaluation de la qualité + +- Connectez-vous à https://sonarcloud.io/ en vous identifiant à l'aide de votre compte Github +- Créez un projet Sonar Cloud pour votre repository forké : + - New Project > sélectionnez votre repoisitory forké + - Analyse new project > Create a project manually > Créer un token comme indiqué et copiez-le dans un fichier temporaire + - Paramétrez l'analyse avec les actions Github comme indiqué + - ajoutez dans le workflow Github la configuration de l'analyse Sonar Cloud du code +- Rédigez **ci-dessous** une courte analyse du premier rapport produit par Sonar (métriques, état général...) : + +Le premier rapport Sonar indique... + + +### Tests unitaires + +Dans tous les cas : +- créez la classe de test si nécessaire, et une ou plusieurs méthodes de test +- les tests doivent couvrir autant de cas que possible +- vous pouvez corriger le code de la méthode testée si nécessaire + +Questions : +- Tests unitaires simples : Testez unitairement la méthode `SalarieAideADomicile.aDroitADesCongesPayes()` (pensez aux cas aux limites). +- Tests paramétrés : Testez par une méthode de test paramétrée la méthode `SalarieAideADomicile.calculeJoursDeCongeDecomptesPourPlage()`. +- Tests avec mocks : Testez de manière mockée (sans dépendance à la base de données) la méthode `SalarieAideADomicileService.clotureMois()`. + +### Tests d'intégration + +- Tests de repository : Testez la méthode `SalarieAideADomicileRepository.findByNom()`. +- Tests d'intégration de service : Créez un test d'intégration d'un exemple d'usage typique de la méthode `SalarieAideADomicileService.clotureMois()`. + +### Tests d'acceptation + +Cucumber est installé dans le projet : maven exécute dans les tests également les Features cucumber définies dans +src/test/resources, en prenant comme définition de leurs Steps celles trouvées dans des méthodes annotées (suprise !) +@Given, @When, @Then. Tout cela grâce aux bonnes dépendances Maven dans le pom.xml, et la bonne extension Junit +configurée dans la classe RunCucumberTest, fournies par l'exécution de l'archetype Maven comme indiqué dans le +tutorial officiel à https://cucumber.io/docs/guides/10-minute-tutorial/ . + +Regarder l'exemple qui fonctionne dans la classe StepDefinitions et le fichier de Feature is_it_friday.feature, repris +du même tutorial. + +S'en inspirer pour écrire la Feature puis développer les Step nécessaires dans StepDefinitions pour écrirer un test +d'acceptation validant la fonctionnalité de clôture de mois d'un salarié aide à domicile. + +### Maintenabilité + +- conventions de codage : faites les respecter, améliorez la lisibilité du code +- journalisation : rajoutez du logging aux endroits les plus pertinents. Changez la configuration pour que les messages de log aillent en plus dans un nouveau fichier `error.log` +- documentation : améliorez la documentation du code où c'est nécessaire. Générez localement la JavaDoc en utilisant Maven. +- Rajoutez en entrée de ce README les badges Sonar des métriques importantes de votre projet, en utilisant l'API web de Sonar : https://sonarcloud.io/web_api/api/project_badges + + +## TP d'évaluation + +Une fois le TD fini, réalisez les travaux de l'évaluation dans une branche "evaluation" créée à partir de la branche "master" de votre repository forké. + +Dans tous les cas : +- assurez-vous que le build passe (compilation, tests) et qu'il n'y a aucune alerte Sonar bloquante, critique ou majeur (Code Smells, anomalies, bugs). Vous pouvez corriger le code originel si nécessaire. +- efforcez-vous d'avoir une couverture de code à 100% sur les méthodes testées plus bas. BONUS : même chose mais avec la couverture de code avec mutation. + +### Revue de code et pair programming : + +- Si cela vous est permis, vous êtes invités à réaliser travaux de l'évaluation en Pair Programming, en vous associant +avec un autre étudiant. Dans ce cas, partez du repository forké jugé le plus complet ou mieux noté par Sonar des deux, +passez-vous le clavier au moins entre 2 questions, et indiquez qui le tenait par l'utilisateur de votre commit. +- Sinon, une fois le TP d'évaluation fini, créez sur Github une Pull Request de votre branche "evaluation" vers la +branche "master" et demandez à un autre étudiant de faire la revue de votre code. Les cas échéant, faites les +corrections demandées. + +### TDD + +- Faites du TDD pour tester unitairement la méthode `Entreprise.estDansPlage()` : écrire d'abord les tests entièrement (pensez aux cas limites) et seulement ensuite écrivez le code de la méthode. Indiquez dans un commentaire une chose ou deux que vous auriez peut-être fait différemment sans faire de TDD. + +### Tests unitaires + +- Tester unitairement (de manière paramétrée) la méthode `Entreprise.estJourFerie()` OU BIEN `Entreprise.proportionPondereeDuMois()` et `Entreprise.getPremierJourAnneeDeConges()`. **Attention**, elles contiennent des erreurs, bon débogage ! Améliorez l'ensemble de la qualité de cette méthode, avec l'aide de Sonar. +- Testez sans dépendance à la base de données la méthode `SalarieAideADomicileService.calculeLimiteEntrepriseCongesPermis()` + +### Tests d'intégration + +- Tests de repository : Testez la méthode `SalarieAideADomicileRepository.partCongesPrisTotauxAnneeNMoins1()` +- Tests d'intégration de service : Créez un test d'intégration d'un exemple d'usage typique de la méthode `SalarieAideADomicileService.calculeLimiteEntrepriseCongesPermis()` +- TODO RM BONUS Ecrire un test d'acceptation Cucumber pour au moins la partie "ancienneté" la fonctionnalité de calcul + de limite de congés permis par l'entreprise. + +### Maintenabilité + +- conventions de codage : pareil, faites les respecter, améliorez la lisibilité du code +- journalisation : Changez la configuration pour réaliser la rotation des fichiers de logs tous les jours et que chaque +fichier ne dépasse pas 1 MO. +- BONUS : Créez une petite documentation statique en utilisant MkDocs. +- Rédigez **ci-dessous** une courte analyse du rapport produit par Sonar (métriques, évolution, état général...) : + +Le rapport Sonar final indique... diff --git a/bin/pom.xml b/bin/pom.xml new file mode 100644 index 00000000..d8b48dc2 --- /dev/null +++ b/bin/pom.xml @@ -0,0 +1,217 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.7.5 + + + com.ipi + jva350 + 0.0.1-SNAPSHOT + jva350 + TP qualité logicielle IPI + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + com.h2database + h2 + runtime + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.junit.jupiter + junit-jupiter-params + test + + + org.mockito + mockito-junit-jupiter + test + + + com.thoughtworks.gauge + gauge-java + 0.9.1 + test + + + + + org.junit.platform + junit-platform-suite + test + + + io.cucumber + cucumber-junit-platform-engine + 7.5.0 + test + + + io.cucumber + cucumber-java + 7.5.0 + test + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.jacoco + jacoco-maven-plugin + 0.8.8 + + + + prepare-agent + + + + report + prepare-package + + report + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.0.0-M3 + + + enforce-maven + + enforce + + + + + 3.5.4 + + + + + + + + org.pitest + pitest-maven + 1.9.9 + + + org.pitest + pitest-junit5-plugin + 0.16 + + + + + com.ipiecoles.java.java350.* + + + com.ipiecoles.java.java350.* + + + + + com.thoughtworks.gauge.maven + gauge-maven-plugin + 1.4.3 + + + test + + src/test/resources/specs + + + execute + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.9.0 + + 8 + 8 + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.3.1 + + 1.8 + 1.8 + + + + + + + + + org.apache.maven.plugins + maven-site-plugin + 3.10.0 + + + org.pitest + pitest-maven + 1.9.9 + + + + report + + + + + + + + diff --git a/bin/src/main/java/com/ipi/jva350/Jva350Application.class b/bin/src/main/java/com/ipi/jva350/Jva350Application.class new file mode 100644 index 0000000000000000000000000000000000000000..4b1d82ba1b85ac3366846ba00bfa55a7c4052d4b GIT binary patch literal 1339 zcmb_cO>fgc5S>laCN_bTKwF@ImYz}$b|v6K5K^f?3UWarrBcOdV{eiT_O97oNAx%F zgOEUiJ3k6BYXc1sL6Lg!evaRpnK!dvzJB-w06nhP?6D?NvSLy za{2=#pnXe)p+Y7?qd(~}UX8fsGDe1xRvGT!6nK}=AWoSvbR<%47P9P>_h(I#aO8FT zIg4MjF{fJ?cz~%6s#I^$L~%o1U>URVgj$TBzs)h4`JYg&z^N6KS@{j33P)tQ(v~Vc zUXZC%nGA9*LRvE(@M7Pwo|B(2_FgR zRKXiuvm&+g)&bowjCD6?MVWLtsDS4neQ#i$i~sPcisSDw_&zk@d<&N00)e$|bW*Mr zMbDLUJ3?ok71@yM1BMk!pcAQ>rH4!lxBq@vw-aFq>_q?9Q$6e#rzwF}_f_fgc5Ph45IB^4M1L5*?FaolW1$p(AZT5qHFmmz@! zcm4~10WnS>sgU5n!84xGo89-`?6)7Ez5p2FPK1WQqsr^FP{yVUwN$BgMQTcuE|%)S z!}}?nX)1$pHXW&4c|*s)8xfiUd#jmT*;)E_vLGD!!#Co=Ag=Om}3nFfPOr9Y?{ z$pc0wOgLE+PBw%OZ)b+1s zGt5mT@HqR=H4X*hkvsL8UYPol!Jm6x8N>ZoRy$jnDv%8?4SD7D{5--9fvq(WZt(+H zixB9(HdV#@AG0qN?m}RP-yJv$mfqqRadpJq2Iu%Q+VA`EM|8h()j*G9jj8c_9J{Ok Z82jjRwS%i18@Pr6XW%w}Ev~QQ=1;sJ(3t=L literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/ipi/jva350/model/Entreprise.class b/bin/src/main/java/com/ipi/jva350/model/Entreprise.class new file mode 100644 index 0000000000000000000000000000000000000000..a8df33a1d60cd27e0ef0d80621764f4b8170f1a6 GIT binary patch literal 4883 zcmeHL-*4PR5S~4*bvng0d}r1IWB3Nh;o$p%jLqDCl4c{!iQ-+c4Ux4U;5zxw0XmjEz;y8*Nq+%9zz zWkRZGPwa~*$+JinGTPf0pWnL^W%&rx=%F$i3oT0wpv~Z7g-nGSM^A=(m>33~kubO= zzMmk2bMdAq1{B+tVy$HCBjov2siawB@J4Ut8H4r% zsv5wX3>J2bhtjM+D zV=)=d_Nt&UDe^jPTf;?-Tn*J{%ZUjYSvuWz3*Oqy(+H9^=j&#x-89l{M@Un zciO!1>!{h8x}IH+>u_hg_~7q!#&5U3H_dD1x90UL<;T&irLKzqzByfLe0yqk$FHxt zdT0CQ|8u6A_e0%EyQk$O_KhFM$!V_Z?X>OUlk3{g<$7<<)Ko+0tbffAx^Srr9av;= zr57I!qT5DGH6GYObs?4tA5XF&>K#F|CxgYx?`J|wdw&pYn_XElh~j@WYSUbNVK1NP z@)2r@lz+MBjLj=?EK5Te{?F*DgIgQS!8Hcg>t|*fnHhvbS(f;M=1gj&-P>6CmcbGY z)pnkx`Fbl?Bh-lNlg-?=Gk>h`I?ecFG+P=oiTZ2O{iRX_#s|3?TlGuF;EqBDT`Y~w zs2cq{F^RCx*M%y#Qkvo!+;o{7BIm1>9&Qt5f{&_p7LHzFR16?mKOI`9rG5zmzK-HPecV@y|PFx{${ zT2=mg@IEnG1cnJpD=Qrg*tKjU<;9)^d?8a&)fFw0yGd&{iH{fi+FWO!&D}X# z{xT$x;5&a5;yHV9lg=!uwj%K%&b>VMy!@WmzyAL14*=-FeFqu@e$*=T6DFj8%ErtO z)5I5<@K49=+wbrDNgDCk4}^Tdqeo1Sj<`88O30J_RF1haTshDraIJV7GkM}a8J_ac z5NJO<2>OTp!NF4kt)P6=Be42FNMUvftaNvt6KL+E00-V9uy)4cK&e!<;3~Ot*~}aT%h7W0fYj|0Tz}hKJ zt!)~mTvIDKVI~|=g9`GO8H$^Iim-bYcCS#omQg8HBw4CVVcp9blU^h8j7a!Wgt-y% ze?-_%vRH(|P@QL7p)aL2Di2MnXc;iw9qX4|M*LVv>kGWWHOpf&OYPCaTpN3XRFp{z zY{__rrQ6;!7^K78@G4Ae?4%~8tOy;qJs07NXw#6z51FY0d6wtDM&X5to?xme5xocvEZ&T#3ofj6z=3N7HoC!C-7M|s z*}A%h>hi~VGURH&uv8LQ4{X>zXG+-ptHY)l2~A)xc*`b$g?$qf&~}7DimAbdOk?iF zc_ImX)D7mq>+PJigZ7a)k<8=@HN1C@?mwM7} z&=@zEhElHupAfRTL=Tz1s0rT-C+nQ83m8@gE}(mJKrEGD1a6;)ZGc^K4!WC_4-XJv zGpWjG;lycpo%3elxca+!54K>Nki&Q9jmrS~e^v@G+K-b$o8vAk`znx<3!Uu4pINN{^p$VI~Zop0CT~dFH|5L6FT$fyL z)o{ID!}U{qfqJ0;%ZI>caJ!O07s%MEk+Hc@MiV|qNe#I3%96Wq5BC5*{yK=)7qA0g I!8fq-5AZs`9RL6T literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.class b/bin/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.class new file mode 100644 index 0000000000000000000000000000000000000000..8b49bfe51d604879f8c4e1bceb50a76266596d75 GIT binary patch literal 10342 zcmeHNNpl-j5boy$Yaxk)laP>&Ng!aeNCCp?5D=D=2;_y>Nk~}2SbDa`o<*5O#Ozyf z;XqLo#eo9{4jh0p6i~o{1C`>yfeTlD2*vkiB+ZQdY>hw;MTJyZv%H?~eXn0ncTaaN z|M|`LL^MKgr>Kw7{f=G98>(jJ7u1HDuUJN2t84j%hI-Gvhx3M2<$8Wv)m2;L1+B^p zMa$4Cn$A=Y; zrnPxfbv>Ii+UDOpS}v+flXGV|UmQ6GiE9l@bH>b30f;N`uc&$v6a+spR^+puJ8GGN z7o#2i%;8*E7UvVtK#|eT3f9h@DRqfEg~~-wb6TSVk&!7|!$bohV=nUQN!6)Mb3t`) z{Law`6Tvf628RZ>{Z#=@oN^lq!+qT|Oo;4}avQfa)47Y$z6ggXyVm%g$hhDbaBq$F zAJt6FJ%(Kw8a{&!9EAy`=oTy_+@3Mpw(K+wv4Qtbn>KeWy}_#rY_G2A{?03P+kz<= z&O=HzGgISAl~-Vc5UQ({MRlGl2O*t0r5@sSo;Os-e@(XSTs!DAsa(?~c0dapWCx*`JMJXgiV>aUqAtFZY(mVE zQP&ZwUB&V0+=h2G5iz}rYuQQ=tcQjb%~3qF%I7qbS98j^2U~}`^dHlg6wPc{i(FCR z_G)niyx!}Ip6u03sEDLC@~=#~F4ojz#jFd*b+CAmC>Y$WSyg48i%hJQV~H#U);?!j zhMy7$|F6ihT7>pFZaX4OiPXW+90z%%AJLSU7J|@!#U@K?!fUztY-a7z-pr8{rH64a zL8!lCB8hy+6&8vaZjXY?RgKwe_j;A#P2!8xMlGR(DF#VOA|Xd2mFN>7fnNw{$YGw`auXmMFdmBRH~@oj1FO46;J1ni@Hyd`#?o5Y85UjIJh~bqaMNN)}aWQ$mwvrT7xwmNhTSu>!j&H z*7wEQeEn+4x_IVZd#H6t{?=pN|0k4dr;KZk!cB0;6|c>t*RTUOu_bEy!*~fFW>iaJ z)Cmo+1EJj@v`Q^FO^-7Au!mH7m*6tG2A?w}6wT8^@Ft>co+eb0lPRua8LV^M00Ac; zkP-Wb`GueD2dN2Bc;60IVQn{vF<|&OBRzpWlfr}?Z)Gg2o)b3j6WH41+Ej85cQ&nEBlw0$H+6G=y0ZGmP6VWKg`_&LF{n{mwuiT$f>ajUPff3+=c z2^@&;(<%5G)pX;{k!5v>=tj3-l=z}#B7$qgTvqmA1lKhMwg3SWhV87)zGrDQw9{pdRer&(Pm1~tD<|`dZkkI zx)?yXP0^dNUV9J?8EqO5>XSm(4jmw97M=Y~l%Z>=A7_1(qBQPiaGu3g7RPJ-`Q@^{GK-MUdZhCn|F{ox z9Hg7@do!etfF;8*`z;+hH+bt;H2j1A>>c>+_eU7riStc?6y+$7D}itrzbyp8zgvX6 z=9%!;`Zy!mlaHlH zPtmzH()l)0xHmGSPozjsccGV0r3lY-p_k932+wxG;d3d%b6p^OEk(G{#VWp&B0S#( zhaaT~Y8M=Sk|NAfCGwtxmQ|Hl*3VLeIhv0kgcc=3_(h6P>w?3tQUt9F4!=ne7HAPs zP{d^s@pK$paV=btA<@b25;O}>Bg!Li3misuy0{8{YOXa4dh~mKJwbk8@PT8 Ue_N4hyg*Cz61_sNVfHuv0)gtFv;Y7A literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/ipi/jva350/repository/SalarieAideADomicileRepository.class b/bin/src/main/java/com/ipi/jva350/repository/SalarieAideADomicileRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..743494669b5f6649f479f6e9f584e61bebb26fb7 GIT binary patch literal 1474 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 literal 0 HcmV?d00001 diff --git a/bin/src/test/java/com/ipi/jva350/RunCucumberTest.class b/bin/src/test/java/com/ipi/jva350/RunCucumberTest.class new file mode 100644 index 0000000000000000000000000000000000000000..1f2d686c83d7f9493e82e04a96546c8135b06d07 GIT binary patch literal 1196 zcmc&!O>Yx15FNK^(=368(jvYNrl(dyyGX!=BBUw`sM0o#lC)A!mE(01x4ZVr9})d8 z{0}6M;LeXi%iNd`9oM>SQHo*TEa^dRVJC`+BmAsgmR_|!jYiA zHU1xn)K^Lwc$7rY+R2SmI)`!4XJwZ;rqSrNw0s<>-2}mC*9rs&b3Eo%t(fIz;d!Ym0UV% zeO~0y$~xn@(}q_5+uEkmQm+y*#)1<%#t42hpSpQ;NcX*UMFdflslqB1@f>9kzzW=M z!V=seu(1_i_;=upRFj>;->We)bgNfUXe6)}YtGW6Uz&&2X3b5dB@o8{^2Bxs1cR~# z?_|Nee(4F8E++68x1G$yo|;K3QNwOw+p-;)vL2T{L9SN(ryFo?h>4XFR*gF7JP!{H(V{iDvkxFz_)O0Rw%d& UYi0aiIj+M7&H>`@6tO!M|6rzHu6@M+0-DxuIW@ee0P3=?o zID&%y_o2i)yOw^qg$SV_3p=wrXU?2^=YIVB_4PXdtifs(N(Am39r~6V>+iA=^FuZC zMI!v&5qtRff#0<}dBJyt6jmr{s!%2{mjPoY`~KVBE)Ok%X{#c3K%mt*TI*UZWPgo7 zgM~I_@wznoTob4~b!^WFOtn|H36!6!h*zOOpn0_SrPfN<;3ApYc`r3LDjxBOqP9fD z%qgLXR=t=H%@bOm*&1*f@i1l@K?w`@SfA4sM0;q7ms_$zBgGAs%F-dT;ecA)#6Kk{ z|M(_!hUc8&IW68Piu@!oOq8}%C>k>9_JW;G-bCg@`5yK1uZE|pdc`KBBRBk+WEmv34A z;{nx9cCEN`dc@+C*I$lJchFK3@@zXA}|A$#!=AYfmLzj1iPR^!MDZ}e4Zgnpx#xf4*7;~vA1xlHDwjM z3inR*r#$qr1-%x=U^m*rVrSqcVDrHiSi)x-D%q@>jb&V^!3@6Z`1cW_2#)n{F#EA} z;R`f>WY`wIE7=NxOE_=jC|H0+{33Aq42G)(46Q&z40)`UY#yust18p3gU+(?}e136^ literal 0 HcmV?d00001 diff --git a/bin/src/test/resources/com/ipi/jva350/is_it_friday.feature b/bin/src/test/resources/com/ipi/jva350/is_it_friday.feature new file mode 100644 index 00000000..3786d9f5 --- /dev/null +++ b/bin/src/test/resources/com/ipi/jva350/is_it_friday.feature @@ -0,0 +1,7 @@ +Feature: Is it Friday yet? + Everybody wants to know when it's Friday + + Scenario: Sunday isn't Friday + Given today is Sunday + When I ask whether it's Friday yet + Then I should be told "Nope" \ No newline at end of file diff --git a/example.txt b/example.txt new file mode 100644 index 00000000..e69de29b diff --git a/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.java b/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.java index 90fdf2c1..430e677e 100644 --- a/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.java +++ b/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.java @@ -20,13 +20,14 @@ public class SalarieAideADomicile { private String nom; - public static List joursHabituellementTravailles = new ArrayList() {{ - add(DayOfWeek.MONDAY); - add(DayOfWeek.TUESDAY); - add(DayOfWeek.WEDNESDAY); - add(DayOfWeek.THURSDAY); - add(DayOfWeek.FRIDAY); - }}; + public static List joursHabituellementTravailles = new ArrayList(); + static { + joursHabituellementTravailles.add(DayOfWeek.MONDAY); + joursHabituellementTravailles.add(DayOfWeek.TUESDAY); + joursHabituellementTravailles.add(DayOfWeek.WEDNESDAY); + joursHabituellementTravailles.add(DayOfWeek.THURSDAY); + joursHabituellementTravailles.add(DayOfWeek.FRIDAY); + }; private LocalDate moisEnCours; private LocalDate moisDebutContrat; From c1a403eb9e2b3c63a0b55e2778bf873a98c90cb2 Mon Sep 17 00:00:00 2001 From: Lea Cumont Date: Thu, 3 Nov 2022 15:09:12 +0100 Subject: [PATCH 2/2] nouveau truc --- src/main/java/com/ipi/jva350/model/SalarieAideADomicile.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.java b/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.java index 430e677e..a4444906 100644 --- a/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.java +++ b/src/main/java/com/ipi/jva350/model/SalarieAideADomicile.java @@ -41,7 +41,7 @@ public class SalarieAideADomicile { private double joursTravaillesAnneeNMoins1= 0; private double congesPayesAcquisAnneeNMoins1= 0; private double congesPayesPrisAnneeNMoins1= 0; - + //commentaire public SalarieAideADomicile() { }