14 Commits

Author SHA1 Message Date
maissane.elmjidi
bcfeae501b ajout projet music&coV2 maissane modifié 2024-09-27 10:51:47 +02:00
maissane.elmjidi
eb90f67599 ajout projet music&coV2 maissane 2024-09-27 10:45:28 +02:00
famille Thevenot
09a7279d52 Merge dt
# Conflicts:
#	src/Test.java
#	src/métiers/Commande.java
#	test/métiers/CommandeTest.java
2024-09-25 22:03:48 +02:00
famille Thevenot
c000fb78ee Merge origin/master
# Conflicts:
#	nbproject/project.properties
#	src/métiers/Commande.java
2024-09-25 18:22:52 +02:00
famille Thevenot
b109399da5 Merge origin/master
# Conflicts:
#	nbproject/project.properties
#	src/métiers/Commande.java
2024-09-25 18:18:10 +02:00
famille Thevenot
08e7254265 Merge origin/master
# Conflicts:
#	nbproject/project.properties
#	src/métiers/Commande.java
2024-09-25 18:15:29 +02:00
sio
6bcc94486f mise à jour Morgann 2024-09-19 11:55:10 +02:00
maissane.elmjidi
9e6a9cc867 ajout page maissane 2024-09-19 11:42:33 +02:00
sio
8dc9d9d385 mise à jour pour Commande et testCommande avec Ines et Ilona 2024-09-19 11:38:57 +02:00
e4956996d6 Merge pull request 'test cas 5' (#4) from morgann into master
Reviewed-on: #4
2024-09-19 10:39:59 +02:00
morgann.david
6ed7fb09f2 test cas 5 2024-09-19 10:26:18 +02:00
sio
45a93f086a mise à jour pour Commande et testCommande 2024-09-19 10:11:37 +02:00
sio
0680043384 test cas1 2024-09-12 11:33:20 +02:00
sio
b02b4b8bcf test cas1 2024-09-12 11:25:21 +02:00
11 changed files with 2170 additions and 2168 deletions

146
build.xml
View File

@@ -1,73 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for --> <!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. --> <!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) --> <!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. --> <!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if --> <!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. --> <!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting --> <!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.--> <!-- in the project's Project Properties dialog box.-->
<project name="MusicAndCoV3" default="default" basedir="."> <project name="MusicAndCo" default="default" basedir=".">
<description>Builds, tests, and runs the project MusicAndCoV3.</description> <description>Builds, tests, and runs the project MusicAndCo.</description>
<import file="nbproject/build-impl.xml"/> <import file="nbproject/build-impl.xml"/>
<!-- <!--
There exist several targets which are by default empty and which can be There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed used for execution of your tasks. These targets are usually executed
before and after some main targets. They are: before and after some main targets. They are:
-pre-init: called before initialization of project properties -pre-init: called before initialization of project properties
-post-init: called after initialization of project properties -post-init: called after initialization of project properties
-pre-compile: called before javac compilation -pre-compile: called before javac compilation
-post-compile: called after javac compilation -post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file -pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file -post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests -pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests -post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test -pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test -post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building -pre-jar: called before JAR building
-post-jar: called after JAR building -post-jar: called after JAR building
-post-clean: called after cleaning build products -post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.) (Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this: Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile"> <target name="-post-compile">
<obfuscate> <obfuscate>
<fileset dir="${build.classes.dir}"/> <fileset dir="${build.classes.dir}"/>
</obfuscate> </obfuscate>
</target> </target>
For list of available properties check the imported For list of available properties check the imported
nbproject/build-impl.xml file. nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets. Another way to customize the build is by overriding existing main targets.
The targets of interest are: The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation -init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution -init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging -init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution -init-macrodef-java: defines macro for class execution
-do-jar: JAR building -do-jar: JAR building
run: execution of project run: execution of project
-javadoc-build: Javadoc generation -javadoc-build: Javadoc generation
test-report: JUnit report generation test-report: JUnit report generation
An example of overriding the target for project execution could look like this: An example of overriding the target for project execution could look like this:
<target name="run" depends="MusicAndCoV3-impl.jar"> <target name="run" depends="MusicAndCo-impl.jar">
<exec dir="bin" executable="launcher.exe"> <exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/> <arg file="${dist.jar}"/>
</exec> </exec>
</target> </target>
Notice that the overridden target depends on the jar target and not only on Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file. nbproject/build-impl.xml file.
--> -->
</project> </project>

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
build.xml.data.CRC32=0e137893 build.xml.data.CRC32=ad09f6ef
build.xml.script.CRC32=e04698ea build.xml.script.CRC32=fbce868f
build.xml.stylesheet.CRC32=f85dc8f2@1.111.0.48 build.xml.stylesheet.CRC32=f85dc8f2@1.109.0.48
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=0e137893 nbproject/build-impl.xml.data.CRC32=ad09f6ef
nbproject/build-impl.xml.script.CRC32=63f48240 nbproject/build-impl.xml.script.CRC32=4c0de17b
nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.111.0.48 nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.109.0.48

View File

@@ -1,99 +1,99 @@
annotation.processing.enabled=true annotation.processing.enabled=true
annotation.processing.enabled.in.editor=false annotation.processing.enabled.in.editor=false
annotation.processing.processor.options= annotation.processing.processor.options=
annotation.processing.processors.list= annotation.processing.processors.list=
annotation.processing.run.all.processors=true annotation.processing.run.all.processors=true
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
build.classes.dir=${build.dir}/classes build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned: # This directory is removed when the project is cleaned:
build.dir=build build.dir=build
build.generated.dir=${build.dir}/generated build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here: # Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results build.test.results.dir=${build.dir}/test/results
# Uncomment to specify the preferred debugger connection transport: # Uncomment to specify the preferred debugger connection transport:
#debug.transport=dt_socket #debug.transport=dt_socket
debug.classpath=\ debug.classpath=\
${run.classpath} ${run.classpath}
debug.modulepath=\ debug.modulepath=\
${run.modulepath} ${run.modulepath}
debug.test.classpath=\ debug.test.classpath=\
${run.test.classpath} ${run.test.classpath}
debug.test.modulepath=\ debug.test.modulepath=\
${run.test.modulepath} ${run.test.modulepath}
# Files in build.classes.dir which should be excluded from distribution jar # Files in build.classes.dir which should be excluded from distribution jar
dist.archive.excludes= dist.archive.excludes=
# This directory is removed when the project is cleaned: # This directory is removed when the project is cleaned:
dist.dir=dist dist.dir=dist
dist.jar=${dist.dir}/MusicAndCoV3.jar dist.jar=${dist.dir}/MusicAndCo.jar
dist.javadoc.dir=${dist.dir}/javadoc dist.javadoc.dir=${dist.dir}/javadoc
dist.jlink.dir=${dist.dir}/jlink dist.jlink.dir=${dist.dir}/jlink
dist.jlink.output=${dist.jlink.dir}/MusicAndCoV3 dist.jlink.output=${dist.jlink.dir}/MusicAndCo
excludes= excludes=
includes=** includes=**
jar.compress=false jar.compress=false
javac.classpath= javac.classpath=
# Space-separated list of extra javac options # Space-separated list of extra javac options
javac.compilerargs=\ --enable-preview --enable-preview javac.compilerargs=\ --enable-preview --enable-preview
javac.deprecation=false javac.deprecation=false
javac.external.vm=true javac.external.vm=true
javac.modulepath= javac.modulepath=
javac.processormodulepath= javac.processormodulepath=
javac.processorpath=\ javac.processorpath=\
${javac.classpath} ${javac.classpath}
javac.source=21 javac.source=21
javac.target=21 javac.target=21
javac.test.classpath=\ javac.test.classpath=\
${javac.classpath}:\ ${javac.classpath}:\
${build.classes.dir}:\ ${build.classes.dir}:\
${libs.testng.classpath}:\ ${libs.testng.classpath}:\
${libs.junit_5.classpath}:\ ${libs.junit_5.classpath}:\
${libs.junit_4.classpath}:\ ${libs.junit_4.classpath}:\
${libs.hamcrest.classpath} ${libs.hamcrest.classpath}
javac.test.modulepath=\ javac.test.modulepath=\
${javac.modulepath} ${javac.modulepath}
javac.test.processorpath=\ javac.test.processorpath=\
${javac.test.classpath} ${javac.test.classpath}
javadoc.additionalparam= javadoc.additionalparam=
javadoc.author=false javadoc.author=false
javadoc.encoding=${source.encoding} javadoc.encoding=${source.encoding}
javadoc.html5=false javadoc.html5=false
javadoc.noindex=false javadoc.noindex=false
javadoc.nonavbar=false javadoc.nonavbar=false
javadoc.notree=false javadoc.notree=false
javadoc.private=false javadoc.private=false
javadoc.splitindex=true javadoc.splitindex=true
javadoc.use=true javadoc.use=true
javadoc.version=false javadoc.version=false
javadoc.windowtitle= javadoc.windowtitle=
# The jlink additional root modules to resolve # The jlink additional root modules to resolve
jlink.additionalmodules= jlink.additionalmodules=
# The jlink additional command line parameters # The jlink additional command line parameters
jlink.additionalparam= jlink.additionalparam=
jlink.launcher=true jlink.launcher=true
jlink.launcher.name=MusicAndCoV3 jlink.launcher.name=MusicAndCo
main.class=Test main.class=Test
manifest.file=manifest.mf manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=false mkdist.disabled=false
platform.active=default_platform platform.active=default_platform
run.classpath=\ run.classpath=\
${javac.classpath}:\ ${javac.classpath}:\
${build.classes.dir} ${build.classes.dir}
# Space-separated list of JVM arguments used when running the project. # Space-separated list of JVM arguments used when running the project.
# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. # You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
# To set system properties for unit tests define test-sys-prop.name=value: # To set system properties for unit tests define test-sys-prop.name=value:
run.jvmargs=\ --enable-preview run.jvmargs=\ --enable-preview
run.modulepath=\ run.modulepath=\
${javac.modulepath} ${javac.modulepath}
run.test.classpath=\ run.test.classpath=\
${javac.test.classpath}:\ ${javac.test.classpath}:\
${build.test.classes.dir} ${build.test.classes.dir}
run.test.modulepath=\ run.test.modulepath=\
${javac.test.modulepath} ${javac.test.modulepath}
source.encoding=UTF-8 source.encoding=UTF-8
src.dir=src src.dir=src
test.src.dir=test test.src.dir=test

View File

@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1"> <project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type> <type>org.netbeans.modules.java.j2seproject</type>
<configuration> <configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3"> <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>MusicAndCoV3</name> <name>MusicAndCo</name>
<source-roots> <source-roots>
<root id="src.dir"/> <root id="src.dir"/>
</source-roots> </source-roots>
<test-roots> <test-roots>
<root id="test.src.dir"/> <root id="test.src.dir"/>
</test-roots> </test-roots>
</data> </data>
</configuration> </configuration>
</project> </project>

View File

@@ -1,63 +0,0 @@
import java.util.ArrayList;
import java.util.Scanner;
import métiers.Commande;
import métiers.Entreprise;
import métiers.Instrument;
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
/**
*VERSION SANS PLUSIEURS MENU
* @author ilona.cardot
*/
public class NewClass {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Entreprise lEntreprise=new Entreprise("MusicAndCo");
Commande laCommande = new Commande(1,1,"12/09/2024");
ArrayList<Instrument> lesInstrumentsEnt = lEntreprise.getLesInstruments();
Scanner clavier = new Scanner(System.in);
String choixUtil0="";
lEntreprise.ajouterCommande(laCommande);
while(!choixUtil0.equals("N")){
System.out.println("Commande numero : "+laCommande.getNoCom()+("\t\t Date : "+laCommande.getDateCom()));
System.out.println("----------------------------------------------------------------");
System.out.println("Instruments disponible : ");
for (int i = 0; i < lesInstrumentsEnt.size(); i ++) {
System.out.println("Instrument "+(i+1)+" : "+lesInstrumentsEnt.get(i));//on ajoute 1 à l'index pour ne pas afficher instrument 0
}
System.out.println("Quel instrument souhaitez vous ajouter? (entrez son numero)");
int instrAjoutSaisie = clavier.nextInt()-1; //on supprime 1 pour avoir le bon index
System.out.println("Combien souhaitez vous en ajouter?");
int instrQteAjout = clavier.nextInt();
if (laCommande.ajouter(lesInstrumentsEnt.get(instrAjoutSaisie), instrQteAjout)==true){
System.out.println("Instrument ajoute avec succes");
laCommande.ajouter(lesInstrumentsEnt.get(instrAjoutSaisie), instrQteAjout);
} else {
System.out.println("Ajout impossible, instrument non existant ou quantite choisie superieur à la quantite disponible");
}
System.out.println("----------------------------------------------------------------");
System.out.println("Souhaitez vous ajouter des instruments à la commande? (O/N)");
choixUtil0 = clavier.next();
}
//finalisation de la commande
System.out.println("---------------------------Contenu de la commande numero "+laCommande.getNoCom()+"------------------------------");
System.out.println(laCommande.getLesLignes());
System.out.println("Validez vous la commande?(O/N)");
String choixUtil2 = clavier.next();
if (choixUtil0.equals("O")){
System.out.println("Commande validée");
lEntreprise.ajouterCommande(laCommande);
}else {
System.out.println("Commande annulée");
}
System.out.println("----------------------------------------------------------------");
}
}

View File

@@ -1,7 +1,8 @@
import java.util.ArrayList;
import métiers.*;
import java.util.Scanner; import java.util.Scanner;
import métiers.Commande;
import métiers.Entreprise;
import métiers.Instrument;
/* /*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
@@ -10,80 +11,88 @@ import java.util.Scanner;
/** /**
* *
* @author sio * @author Maissane
*/ */
public class Test {
Entreprise lEntreprise=new Entreprise("MusicAndCo"); public class Test {
Commande laCommande = new Commande(1,1,"12/09/2024");
ArrayList<Instrument> lesInstrumentsEnt = lEntreprise.getLesInstruments();
Scanner clavier = new Scanner(System.in);
/** /**
* Création d'une nouvelle commande et ajout si validée
*/
public Test(){
}
public void nouvelleCommande(){
String choixUtil0="";
lEntreprise.ajouterCommande(laCommande);
while(!choixUtil0.equals("N")){
System.out.println("Commande numero : "+laCommande.getNoCom()+("\t\t Date : "+laCommande.getDateCom()));
System.out.println("----------------------------------------------------------------");
System.out.println("Instruments disponible : ");
for (int i = 0; i < lesInstrumentsEnt.size(); i ++) {
System.out.println("Instrument "+(i+1)+" : "+lesInstrumentsEnt.get(i));//on ajoute 1 à l'index pour ne pas afficher instrument 0
}
System.out.println("Quel instrument souhaitez vous ajouter? (entrez son numero)");
int instrAjoutSaisie = clavier.nextInt()-1; //on supprime 1 pour avoir le bon index
System.out.println("Combien souhaitez vous en ajouter?");
int instrQteAjout = clavier.nextInt();
if (laCommande.ajouter(lesInstrumentsEnt.get(instrAjoutSaisie), instrQteAjout)==true){
System.out.println("Instrument ajoute avec succes");
laCommande.ajouter(lesInstrumentsEnt.get(instrAjoutSaisie), instrQteAjout);
} else {
System.out.println("Ajout impossible, instrument non existant ou quantite choisie superieur à la quantite disponible");
}
System.out.println("----------------------------------------------------------------");
System.out.println("Souhaitez vous ajouter des instruments à la commande? (O/N)");
choixUtil0 = clavier.next();
}
//finalisation de la commande
System.out.println("---------------------------Contenu de la commande numero "+laCommande.getNoCom()+"------------------------------");
System.out.println(laCommande.getLesLignes());
System.out.println("Validez vous la commande?(O/N)");
String choixUtil2 = clavier.next();
if (choixUtil0.equals("O")){
System.out.println("Commande validée");
lEntreprise.ajouterCommande(laCommande);
}else {
System.out.println("Commande annulée");
}
System.out.println("----------------------------------------------------------------");
}
public void commandesExistantes(){
}
}
/**
* @param args the command line arguments * @param args the command line arguments
*/ */
public static void main(String[] args) { public static void main(String[] args) {
Test test1;
test1 = new Test();
int choixUtil=0; //condition pour une premiere commande et si il y en a d'autre
while(choixUtil!=3){ boolean choix = false;
System.out.println("Que souhaitez vous faire?\n\t1 : Créer une nouvelle commande \n\t 2: Annuler une commande existante\n\t 3: Fermer l'application"); System.out.println("Voulez vous passer une commande ? oui = true /non = false ");
switch(choixUtil){ Scanner v = new Scanner(System.in);
case 1 : boolean choixutili = v.nextBoolean();
test1.nouvelleCommande(); while(choixutili)
break; {
/*case 2 :
test1.commandesExistantes; Entreprise lEntreprise=new Entreprise("MusicAndCo");
break;*/ Commande laCommande1 = new Commande(1,1,"26/09/2024");
case 3 : int i = 0;
break; //ajouter des instruments de l'entreprise à la commande
System.out.println("\t--- BIENVENUE CHEZ MUSIC&CO --- ");
System.out.println("\tVoici la liste des instruments en vente : ");
// ArrayList<Instrument> lesInstruments = new ArrayList<>();
for(Instrument instruments : lEntreprise.getLesInstruments() ){
i = i+1;
System.out.println(i);
System.out.println("\t\n" + instruments + "\t\n");
}
System.out.println("--- Quel(s) instrument(s) souhaitez vous acheter ? Saisisez le numero du menu ---");
Scanner sc = new Scanner(System.in);
int index = sc.nextInt();
System.out.println("Vous avez saisi : " + index);
System.out.println(" indiquer la quantitée souhaitée: ");
int qte = sc.nextInt() ;//innitialiser la variable qte a 0
// String.valueOf(qte); //convertir la variable int en String
// str = sc.nextLine(); //saisie de la saisie clavier de l'utilisateur
// System.out.println(index) ;
System.out.println( lEntreprise.getLesInstruments().get(index-1)) ; //affiche le produit choisi
laCommande1.ajouter(lEntreprise.getLesInstruments().get(index-1), qte); //ajout de l'instrument à la commande
// System.out.println("Voici votre panier : " + laCommande1.toString()); //afficher la commande
// System.out.println("Voici votre panier : " + lEntreprise. ); //afficher la commande
System.out.println("Instrument choisi = " + lEntreprise.getLesInstruments().get(index-1).getDesignation()); //affichage de la designation de l'instrument choisi
System.out.println("Quantité choisi = " + qte); //affichage de la qté choisi de l'utilisateur
System.out.println("Date de votre commande: " + laCommande1.getDateCom()); //affichage de la date de la commande
System.out.println("Nombre de panier : " + laCommande1.getNoCom()); //affichage du numero de la commande
// laCommande1.ajouter(index, qte); //methode pour ajouter la commande pas fini
System.out.println("Souhaitez vous rajouter des articles dans votre commande ? "); //demander à l'utilisateur si il veut rajouter des articles
v = new Scanner(System.in);
choixutili = v.nextBoolean();
}
//affecter la commande à l'entreprise si la comamnde est possible
// lEntreprise.ajouterCommande(laCommande1);
//créer une autre commande
Commande laCommande2 = new Commande(2,2,"26/09/2024");
//rechercher et afficher une commande
// System.out.println( laCommande1.toString());
// System.out.println( laCommande2.toString());
//supprimer une des 2 commande
//laCommande2 = null;
} }
} }
}

View File

@@ -36,18 +36,40 @@ private final HashMap<Instrument, Integer> lesLignes = new HashMap<>();
* @return true si l'ajout est bon * @return true si l'ajout est bon
*/ */
public boolean ajouter(Instrument unInstrument, int qte){ public boolean ajouter(Instrument unInstrument, int qte){
//il faut gérer l'ajout d'un instrument existant dans la commande, ce sera une mise à jour de la ligne
//il faut empêcher l'ajout d'une ligne avec une quantité à 0 //il faut empêcher l'ajout d'une ligne avec une quantité à 0
//bien s'assurer que le stock est suffisant //bien s'assurer que le stock est suffisant
boolean ajoutOK; boolean ajoutOK=false;
int qteDisponible = unInstrument.getQteStock(); if(qte!=0){
if (qteDisponible<qte){ //ajout d'un instrument existant dans la commande, ce sera une mise à jour de la ligne
ajoutOK = false; if (lesLignes.containsKey(unInstrument))//l'instrument existe
}else { {
ajoutOK = true; //récupération de la quantité en stock
lesLignes.put(unInstrument,qte); int oldQte=unInstrument.getQteStock();
unInstrument.setQteStock(qteDisponible-qte); //réaffectation dans le stock de la quantité commandée
} int qteStock=oldQte+ this.getLesLignes().get(unInstrument);
unInstrument.setQteStock(qteStock);
//suppression ligne commande
lesLignes.remove(unInstrument);
//nouvel ajout
this.ajouter(unInstrument,qte);
}
else //nouvel instrument
{
//on s'assure qu'il y a assez de stock pour la commande
int qteDisponible = unInstrument.getQteStock();
if (qteDisponible<qte){
ajoutOK = false;
}else {
ajoutOK = true;
lesLignes.put(unInstrument,qte);
//màj qté stock pour déduire la qté commandée
unInstrument.setQteStock(qteDisponible-qte);
}
}
}
return ajoutOK; return ajoutOK;
} }
/** /**
@@ -57,18 +79,16 @@ private final HashMap<Instrument, Integer> lesLignes = new HashMap<>();
*/ */
public boolean supprimer(Instrument unInstrument){ public boolean supprimer(Instrument unInstrument){
//lesLignes.remove(unInstrument); //lesLignes.remove(unInstrument);
boolean suppOK;
boolean suppOK = false;
if (lesLignes.containsKey(unInstrument) == true){ if (lesLignes.containsKey(unInstrument) == true){
suppOK = true; suppOK = true;
int qteCommande = lesLignes.get(unInstrument);
lesLignes.remove(unInstrument); lesLignes.remove(unInstrument);
int qteDisponible = unInstrument.getQteStock(); } else {
unInstrument.setQteStock(qteDisponible+qteCommande); suppOK = false;
} }
return suppOK; return suppOK;
} }
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
public int getNoCom() { public int getNoCom() {
@@ -120,11 +140,6 @@ private final HashMap<Instrument, Integer> lesLignes = new HashMap<>();
} }
return Objects.equals(this.dateCom, other.dateCom); return Objects.equals(this.dateCom, other.dateCom);
} }
@Override
public String toString() {
return "numero de commande : " + noCom + "\t \t date de la commadne : " + dateCom + "\n contenu de la commande : " + lesLignes + '}';
}
} }

View File

@@ -16,16 +16,16 @@ public class Entreprise {
private String raisonSociale; private String raisonSociale;
private ArrayList<Commande> lesCommandes = new ArrayList<>(); private ArrayList<Commande> lesCommandes = new ArrayList<>();
private ArrayList<Instrument> lesInstruments = new ArrayList<>(); private ArrayList<Instrument> lesInstruments = new ArrayList<>();
public Entreprise(String raisonSociale) { public Entreprise(String raisonSociale) {
this.raisonSociale = raisonSociale; this.raisonSociale = raisonSociale;
Instrument instr1=new Instrument(23,"Piano droit",3, 8300f); Instrument instr1=new Instrument(23,"Piano droit",3, 8300f);
Instrument instr2=new Instrument(54,"Violon Alto",5, 105f); Instrument instr2=new Instrument(54,"Violon Alto",5, 105f);
Instrument instr3=new Instrument(67,"Guitare Classique",8, 575f); Instrument instr3=new Instrument(67,"Guitare Classique",8, 575f);
lesInstruments.add(instr1);
lesInstruments.add(instr2);
lesInstruments.add(instr3); lesInstruments.add(instr3);
lesInstruments.add(instr2);
lesInstruments.add(instr1);
} }
public String getRaisonSociale() { public String getRaisonSociale() {
@@ -40,19 +40,19 @@ public class Entreprise {
public String toString() { public String toString() {
return "Entreprise{" + "raisonSociale=" + raisonSociale + '}'; return "Entreprise{" + "raisonSociale=" + raisonSociale + '}';
} }
public void ajouterCommande(Commande uneCommande){ public void ajouterCommande(Commande uneCommande){
lesCommandes.add(uneCommande); lesCommandes.add(uneCommande);
} }
public void supprimerCommande(Commande uneCommande){ public void supprimerCommande(Commande uneCommande){
//parcours pour supprimer les instruments de la commande //parcours pour supprimer les instruments de la commande
//suppression de la commande //suppression de la commande
lesCommandes.remove(uneCommande); lesCommandes.remove(uneCommande);
} }
public Commande rechercherCommande(int noCom){ public Commande rechercherCommande(int noCom){
Commande uneCommande = null; Commande uneCommande = null;
for(Commande laCommande : lesCommandes){ for(Commande laCommande : lesCommandes){
@@ -68,18 +68,16 @@ public class Entreprise {
return lesCommandes; return lesCommandes;
} }
public ArrayList<Instrument> getLesInstruments() {
return lesInstruments;
}
public void setLesCommandes(ArrayList<Commande> lesCommandes) { public void setLesCommandes(ArrayList<Commande> lesCommandes) {
this.lesCommandes = lesCommandes; this.lesCommandes = lesCommandes;
} }
public ArrayList<Instrument> getLesInstruments() {
return lesInstruments;
}
public void setLesInstruments(ArrayList<Instrument> lesInstruments) { public void setLesInstruments(ArrayList<Instrument> lesInstruments) {
this.lesInstruments = lesInstruments; this.lesInstruments = lesInstruments;
} }
}
}

View File

@@ -25,7 +25,7 @@ public class Instrument {
@Override @Override
public String toString() { public String toString() {
return "reference : " + ref + "\t designation : " + designation + "\t quantite en stock : " + qteStock + "\t prix : " + prix + '}'; return "Instrument{" + "ref=" + ref + ", designation=" + designation + ", qteStock=" + qteStock + ", prix=" + prix + '}';
} }
public void setRef(int ref) { public void setRef(int ref) {

View File

@@ -5,9 +5,7 @@
package métiers; package métiers;
import java.util.HashMap; import java.util.HashMap;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
/** /**
* *
@@ -18,19 +16,21 @@ public class CommandeTest {
public CommandeTest() { public CommandeTest() {
} }
@Before
public void setUp() { public void setUp() {
} }
/** /**
* Test of ajouter method, of class Commande. * Test of ajouter method, of class Commande.
*/ */
@Test
public void testAjouter() { public void testAjouter() {
Instrument instr1=new Instrument(1,"Piano",10, 8300f); Instrument instr1=new Instrument(1,"Piano",10, 8300f);
Instrument instr2=new Instrument(2,"Violon",9, 105f); Instrument instr2=new Instrument(2,"Violon",9, 105f);
Instrument instr3=new Instrument(3,"piano",8, 105f);
Commande laCommande = new Commande(1,1,"12/09/2024"); Commande laCommande = new Commande(1,1,"12/09/2024");
System.out.println("ajouter"); System.out.println("ajouter");
//cas 0
boolean ajoutRes= laCommande.ajouter(instr1, 2); boolean ajoutRes= laCommande.ajouter(instr1, 2);
boolean ajoutAttendu = true; boolean ajoutAttendu = true;
System.out.println("cas0 : cas normal, ajout une ligne de commande"); System.out.println("cas0 : cas normal, ajout une ligne de commande");
@@ -42,50 +42,93 @@ public class CommandeTest {
int qteAttendu=2; int qteAttendu=2;
assertEquals("Test0 quantite",qteRes, qteAttendu); assertEquals("Test0 quantite",qteRes, qteAttendu);
//cas 1
System.out.println("Cas1 : ajout autre ligne de commande"); System.out.println("Cas1 : ajout autre ligne de commande");
laCommande.ajouter(instr2, 6); laCommande.ajouter(instr2, 6);
int tailleR=laCommande.getLesLignes().size(); int tailleR=laCommande.getLesLignes().size();
int tailleAttendue=2; int tailleAttendue=2;
assertEquals("Test1 taille",tailleAttendue,tailleR); assertEquals("Test1 taille",tailleAttendue,tailleR);
/* System.out.println("Cas2 : màj quantité commandée d'une ligne existante"); //Cas2
System.out.println("Cas2 : màj quantité commandée d'une ligne existante");
laCommande.ajouter(instr2, 5); laCommande.ajouter(instr2, 5);
stockRes=instr2.getQteStock(); stockRes=instr2.getQteStock();
stockAttendu=4; stockAttendu=4;
assertEquals("test2 stock",stockAttendu,stockRes ); assertEquals("test2 stock",stockAttendu,stockRes );
/*qteRes=laCommande.getLesLignes().get(instr2); qteRes=laCommande.getLesLignes().get(instr2);
qteAttendu=5; qteAttendu=5;
assertEquals("Test2 quantite", qteAttendu,qteRes); assertEquals("Test2 quantite", qteAttendu,qteRes);
/*INES*/
System.out.println("Cas3 : ajout nouvelle ligne avec quantité > stock"); System.out.println("Cas3 : ajout nouvelle ligne avec quantité > stock");
boolean test= laCommande.ajouter(instr3, 12);
stockRes=instr3.getQteStock();
stockAttendu=8;
boolean testResultExpected=false;
assertEquals("test3 stock",stockAttendu,stockRes );
assertEquals("La méthode ajouter retourne false",testResultExpected,test );
System.out.println("Nombre de ligne dans le dictionnaire: "+laCommande.getLesLignes().size());
System.out.println("Résultat de la méthode ajouter: " + test);
/*MAISSANE*/
System.out.println("Cas4 : ajout nouvelle ligne avec quantité 0"); System.out.println("Cas4 : ajout nouvelle ligne avec quantité 0");
System.out.println("Cas4 : ajout nouvelle ligne avec quantité 0");
boolean AjouterObtenu=laCommande.ajouter(instr3, 0);
boolean AjouterA= false;
assertEquals("Test4 ajout 0 instr3",AjouterA,AjouterObtenu);
int lignes=laCommande.getLesLignes().size();
int nbLigneAttendu = 2;
assertEquals("Test4 taille",nbLigneAttendu,lignes);
qteRes=laCommande.getLesLignes().get(instr3);
qteAttendu=0;
assertEquals("Test4 quantite", qteAttendu,qteRes);
/*MORGANN*/
System.out.println("Cas5 : mise à 0 quantité commandée d'une ligne existante"); System.out.println("Cas5 : mise à 0 quantité commandée d'une ligne existante");
laCommande.ajouter(instr2, 0);
System.out.println("Cas6 : màj d'une ligne existante avec qté>stock");*/ stockRes=instr2.getQteStock();
stockAttendu=9;
assertEquals("test5 stock",stockAttendu,stockRes );
tailleR=laCommande.getLesLignes().size();
tailleAttendue=2;
assertEquals("Test1 taille",tailleAttendue,tailleR);
/*ILONA*/
System.out.println("Cas6 : màj d'une ligne existante avec qté>stock");
System.out.println("Cas6 : màj d'une ligne existante avec qté>stock");
boolean resultatMethode = laCommande.ajouter(instr1, 12);
boolean resultatMethodeAttendu=false;
assertEquals("test6 mise à jour",resultatMethodeAttendu,resultatMethode);
stockRes=instr1.getQteStock();
stockAttendu=2;
assertEquals("test6 stock",stockAttendu,stockRes );
} }
private void assertEquals(String test1_taille, int tailleAttendue, int tailleR) {
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
private void assertEquals(String la_méthode_ajouter_retourne_false, boolean testResultExpected, boolean test) {
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
/**
* Test of supprimer method, of class Commande.
@Test @Test
public void testSupprimer(){ public void testSupprimer() {
Instrument instr1 = new Instrument(1,"Piano",10,8300f); System.out.println("supprimer");
Instrument instr2 = new Instrument(2,"Violon",9,105f); Instrument unInstrument = null;
Commande laCommande2 = new Commande(1,1,"12/09/2024"); Commande instance = null;
laCommande2.ajouter(instr1,2); boolean expResult = false;
boolean expectedResult=false; boolean result = instance.supprimer(unInstrument);
boolean expectedResult2=true; assertEquals("test supprimer",expResult, result);
int stockAttendu=10; // TODO review the generated test code and remove the default call to fail.
System.out.println("Test de la méthode supprimer"); fail("The test case is a prototype.");
boolean test = laCommande2.supprimer(instr2); }*/
boolean test2 = laCommande2.supprimer(instr1);
int test3 = instr1.getQteStock();
assertEquals("suppression impossible : ",expectedResult,test);
assertEquals("suppression possible : ",expectedResult2,test2);
assertEquals("Quantité d'instr1 en stock",stockAttendu,test3);
}
} }