18 Commits
ines ... ilona

Author SHA1 Message Date
ilona.cardot
14d700295a Classe test 2024-09-26 11:55:57 +02:00
famille Thevenot
6472118666 ajout gestion entreprise 2024-09-24 11:54:50 +02:00
famille Thevenot
8b82fb5acd ajout CommandeTest 2024-09-19 08:29:56 +02:00
famille Thevenot
a8cd335fa6 commantaires dans ajouter de Commande 2024-09-18 18:36:04 +02:00
famille Thevenot
7136c719cc modif supprimer dans commande 2024-09-18 17:38:05 +02:00
ines.benalia
926b12ec55 test de la classe commande 2024-09-12 11:54:27 +02:00
ilona.cardot
8f366b4003 modification de la méthode ajouter et de la méthode supprimer 2024-09-12 10:34:40 +02:00
ilona.cardot
ebe6f29978 modification de la méthode ajouter 2024-09-12 10:28:32 +02:00
sio
0f472d5df2 modification déclaration hashmap dans Commande 2024-09-12 10:11:11 +02:00
morgann.david
8543fbf45b modif classe entreprise 2024-09-12 09:41:17 +02:00
sio
935512aa7b mise à jour création commande 2024-09-12 09:38:59 +02:00
morgann.david
43cbdc54de Merge origin/master 2024-09-12 09:35:43 +02:00
b854ed53f4 Merge pull request 'ines' (#1) from ines into master
Reviewed-on: #1
2024-09-12 09:35:26 +02:00
ilona.cardot
51bb96a809 Merge origin/master 2024-09-12 09:30:01 +02:00
morgann.david
2f47f5aa52 Merge origin/master 2024-09-12 09:28:29 +02:00
morgann.david
427b1e0887 modif classe entreprise 2024-09-12 09:26:35 +02:00
sio
558c7f786c création classe test 2024-09-12 09:23:07 +02:00
ilona.cardot
47b73d352e ajout des éléments de la classe commande 2024-09-12 09:19:49 +02:00
13 changed files with 2455 additions and 2020 deletions

4
.gitignore vendored
View File

@@ -1,3 +1,5 @@
#pour netbeans #pour netbeans
Libraries/* Libraries/*
Test Libraries/* Test Libraries/*
/nbproject/private/
/build/

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="MusicAndCo" default="default" basedir="."> <project name="MusicAndCoV3" default="default" basedir=".">
<description>Builds, tests, and runs the project MusicAndCo.</description> <description>Builds, tests, and runs the project MusicAndCoV3.</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="MusicAndCo-impl.jar"> <target name="run" depends="MusicAndCoV3-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=ad09f6ef build.xml.data.CRC32=0e137893
build.xml.script.CRC32=fbce868f build.xml.script.CRC32=e04698ea
build.xml.stylesheet.CRC32=f85dc8f2@1.109.0.48 build.xml.stylesheet.CRC32=f85dc8f2@1.111.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=ad09f6ef nbproject/build-impl.xml.data.CRC32=0e137893
nbproject/build-impl.xml.script.CRC32=4c0de17b nbproject/build-impl.xml.script.CRC32=63f48240
nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.109.0.48 nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.111.0.48

View File

@@ -1,95 +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}/MusicAndCo.jar dist.jar=${dist.dir}/MusicAndCoV3.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}/MusicAndCo dist.jlink.output=${dist.jlink.dir}/MusicAndCoV3
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}:\
javac.test.modulepath=\ ${libs.testng.classpath}:\
${javac.modulepath} ${libs.junit_5.classpath}:\
javac.test.processorpath=\ ${libs.junit_4.classpath}:\
${javac.test.classpath} ${libs.hamcrest.classpath}
javadoc.additionalparam= javac.test.modulepath=\
javadoc.author=false ${javac.modulepath}
javadoc.encoding=${source.encoding} javac.test.processorpath=\
javadoc.html5=false ${javac.test.classpath}
javadoc.noindex=false javadoc.additionalparam=
javadoc.nonavbar=false javadoc.author=false
javadoc.notree=false javadoc.encoding=${source.encoding}
javadoc.private=false javadoc.html5=false
javadoc.splitindex=true javadoc.noindex=false
javadoc.use=true javadoc.nonavbar=false
javadoc.version=false javadoc.notree=false
javadoc.windowtitle= javadoc.private=false
# The jlink additional root modules to resolve javadoc.splitindex=true
jlink.additionalmodules= javadoc.use=true
# The jlink additional command line parameters javadoc.version=false
jlink.additionalparam= javadoc.windowtitle=
jlink.launcher=true # The jlink additional root modules to resolve
jlink.launcher.name=MusicAndCo jlink.additionalmodules=
main.class= # The jlink additional command line parameters
manifest.file=manifest.mf jlink.additionalparam=
meta.inf.dir=${src.dir}/META-INF jlink.launcher=true
mkdist.disabled=false jlink.launcher.name=MusicAndCoV3
platform.active=default_platform main.class=Test
run.classpath=\ manifest.file=manifest.mf
${javac.classpath}:\ meta.inf.dir=${src.dir}/META-INF
${build.classes.dir} mkdist.disabled=false
# Space-separated list of JVM arguments used when running the project. platform.active=default_platform
# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. run.classpath=\
# To set system properties for unit tests define test-sys-prop.name=value: ${javac.classpath}:\
run.jvmargs=\ --enable-preview ${build.classes.dir}
run.modulepath=\ # Space-separated list of JVM arguments used when running the project.
${javac.modulepath} # You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
run.test.classpath=\ # To set system properties for unit tests define test-sys-prop.name=value:
${javac.test.classpath}:\ run.jvmargs=\ --enable-preview
${build.test.classes.dir} run.modulepath=\
run.test.modulepath=\ ${javac.modulepath}
${javac.test.modulepath} run.test.classpath=\
source.encoding=UTF-8 ${javac.test.classpath}:\
src.dir=src ${build.test.classes.dir}
test.src.dir=test run.test.modulepath=\
${javac.test.modulepath}
source.encoding=UTF-8
src.dir=src
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>MusicAndCo</name> <name>MusicAndCoV3</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>

63
src/NewClass.java Normal file
View File

@@ -0,0 +1,63 @@
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("----------------------------------------------------------------");
}
}

89
src/Test.java Normal file
View File

@@ -0,0 +1,89 @@
import java.util.ArrayList;
import métiers.*;
import java.util.Scanner;
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
*/
/**
*
* @author sio
*/
public class Test {
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);
/**
* 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
*/
public static void main(String[] args) {
Test test1;
test1 = new Test();
int choixUtil=0;
while(choixUtil!=3){
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");
switch(choixUtil){
case 1 :
test1.nouvelleCommande();
break;
/*case 2 :
test1.commandesExistantes;
break;*/
case 3 :
break;
}
}
}

View File

@@ -1,13 +1,130 @@
/* /*
* 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
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package métiers;
package métiers;
/**
* import java.util.HashMap;
* @author famille Thevenot import java.util.Map;
*/ import java.util.Objects;
public class Commande {
/**
} *
* @author ilona
*/
public class Commande {
private int noCom, noVendeur;
private String dateCom;
private final HashMap<Instrument, Integer> lesLignes = new HashMap<>();
public Commande(int noCom, int noVendeur, String dateCom) {
this.noCom = noCom;
this.noVendeur = noVendeur;
this.dateCom = dateCom;
}
/**
* Ajoute une quantité donnée d'un instrument à la commande
* @param unInstrument instrument à ajouter
* @param qte quantité à ajouter
* @return true si l'ajout est bon
*/
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
//bien s'assurer que le stock est suffisant
boolean ajoutOK;
int qteDisponible = unInstrument.getQteStock();
if (qteDisponible<qte){
ajoutOK = false;
}else {
ajoutOK = true;
lesLignes.put(unInstrument,qte);
unInstrument.setQteStock(qteDisponible-qte);
}
return ajoutOK;
}
/**
* Supprimer un instrument de la commande
* @param unInstrument instrument à supprimer
* @return true si la suppression est effectuée
*/
public boolean supprimer(Instrument unInstrument){
//lesLignes.remove(unInstrument);
boolean suppOK = false;
if (lesLignes.containsKey(unInstrument) == true){
suppOK = true;
int qteCommande = lesLignes.get(unInstrument);
lesLignes.remove(unInstrument);
int qteDisponible = unInstrument.getQteStock();
unInstrument.setQteStock(qteDisponible+qteCommande);
}
return suppOK;
}
/////////////////////////////////////////////////////////////////////////////////
public int getNoCom() {
return noCom;
}
public int getNoVendeur() {
return noVendeur;
}
public String getDateCom() {
return dateCom;
}
public HashMap<Instrument, Integer> getLesLignes() {
return lesLignes;
}
public void setNoCom(int noCom) {
this.noCom = noCom;
}
public void setNoVendeur(int noVendeur) {
this.noVendeur = noVendeur;
}
public void setDateCom(String dateCom) {
this.dateCom = dateCom;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Commande other = (Commande) obj;
if (this.noCom != other.noCom) {
return false;
}
if (this.noVendeur != other.noVendeur) {
return false;
}
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

@@ -1,43 +1,85 @@
/* /*
* 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
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package métiers; package métiers;
import métiers.Commande; import java.util.ArrayList;
import métiers.Commande;
/** import métiers.Instrument;
*
* @author famille Thevenot /**
*/ *
public class Entreprise { * @author famille Thevenot
private String raisonSociale; */
public class Entreprise {
public Entreprise(String raisonSociale) { private String raisonSociale;
this.raisonSociale = raisonSociale; private ArrayList<Commande> lesCommandes = new ArrayList<>();
} private ArrayList<Instrument> lesInstruments = new ArrayList<>();
public String getRaisonSociale() { public Entreprise(String raisonSociale) {
return raisonSociale; this.raisonSociale = raisonSociale;
}
Instrument instr1=new Instrument(23,"Piano droit",3, 8300f);
public void setRaisonSociale(String raisonSociale) { Instrument instr2=new Instrument(54,"Violon Alto",5, 105f);
this.raisonSociale = raisonSociale; Instrument instr3=new Instrument(67,"Guitare Classique",8, 575f);
} lesInstruments.add(instr1);
lesInstruments.add(instr2);
@Override lesInstruments.add(instr3);
public String toString() { }
return "Entreprise{" + "raisonSociale=" + raisonSociale + '}';
} public String getRaisonSociale() {
return raisonSociale;
}
public void ajouterCommande(Commande uneCommande){
} public void setRaisonSociale(String raisonSociale) {
public void supprimerCommande(Commande uneCommande){ this.raisonSociale = raisonSociale;
} }
public Commande rechercherCommande(int noCom){ @Override
Commande laCommande=null; public String toString() {
return laCommande; return "Entreprise{" + "raisonSociale=" + raisonSociale + '}';
} }
}
public void ajouterCommande(Commande uneCommande){
lesCommandes.add(uneCommande);
}
public void supprimerCommande(Commande uneCommande){
//parcours pour supprimer les instruments de la commande
//suppression de la commande
lesCommandes.remove(uneCommande);
}
public Commande rechercherCommande(int noCom){
Commande uneCommande = null;
for(Commande laCommande : lesCommandes){
if(laCommande.getNoCom() == noCom){
uneCommande = laCommande;
break;
}
}
return uneCommande;
}
public ArrayList<Commande> getLesCommandes() {
return lesCommandes;
}
public ArrayList<Instrument> getLesInstruments() {
return lesInstruments;
}
public void setLesCommandes(ArrayList<Commande> lesCommandes) {
this.lesCommandes = lesCommandes;
}
public void setLesInstruments(ArrayList<Instrument> lesInstruments) {
this.lesInstruments = lesInstruments;
}
}

View File

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

View File

@@ -0,0 +1,91 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/UnitTests/JUnit4TestClass.java to edit this template
*/
package métiers;
import java.util.HashMap;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author famille Thevenot
*/
public class CommandeTest {
public CommandeTest() {
}
@Before
public void setUp() {
}
/**
* Test of ajouter method, of class Commande.
*/
@Test
public void testAjouter() {
Instrument instr1=new Instrument(1,"Piano",10, 8300f);
Instrument instr2=new Instrument(2,"Violon",9, 105f);
Commande laCommande = new Commande(1,1,"12/09/2024");
System.out.println("ajouter");
boolean ajoutRes= laCommande.ajouter(instr1, 2);
boolean ajoutAttendu = true;
System.out.println("cas0 : cas normal, ajout une ligne de commande");
assertEquals("Test0 ajout 2 instr1",ajoutAttendu,ajoutRes);
int stockRes=instr1.getQteStock();
int stockAttendu=8;
assertEquals("Test0 stock",stockAttendu,stockRes);
int qteRes=laCommande.getLesLignes().get(instr1);
int qteAttendu=2;
assertEquals("Test0 quantite",qteRes, qteAttendu);
System.out.println("Cas1 : ajout autre ligne de commande");
laCommande.ajouter(instr2, 6);
int tailleR=laCommande.getLesLignes().size();
int tailleAttendue=2;
assertEquals("Test1 taille",tailleAttendue,tailleR);
/* System.out.println("Cas2 : màj quantité commandée d'une ligne existante");
laCommande.ajouter(instr2, 5);
stockRes=instr2.getQteStock();
stockAttendu=4;
assertEquals("test2 stock",stockAttendu,stockRes );
/*qteRes=laCommande.getLesLignes().get(instr2);
qteAttendu=5;
assertEquals("Test2 quantite", qteAttendu,qteRes);
System.out.println("Cas3 : ajout nouvelle ligne avec quantité > stock");
System.out.println("Cas4 : ajout nouvelle ligne avec quantité 0");
System.out.println("Cas5 : mise à 0 quantité commandée d'une ligne existante");
System.out.println("Cas6 : màj d'une ligne existante avec qté>stock");*/
}
@Test
public void testSupprimer(){
Instrument instr1 = new Instrument(1,"Piano",10,8300f);
Instrument instr2 = new Instrument(2,"Violon",9,105f);
Commande laCommande2 = new Commande(1,1,"12/09/2024");
laCommande2.ajouter(instr1,2);
boolean expectedResult=false;
boolean expectedResult2=true;
int stockAttendu=10;
System.out.println("Test de la méthode supprimer");
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);
}
}

View File

@@ -0,0 +1,27 @@
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="MusicAndCo">
<!--
see examples at http://testng.org/doc/documentation-main.html#testng-xml
<suite-files>
<suite-file path="./junit-suite.xml" />
</suite-files>
<test name="TimeOut">
<classes>
<class name="test.timeout.TimeOutTest" />
<class name="test.timeout.TimeOutFromXmlTest"/>
<class name="test.timeout.TimeOutThreadLocalSampleTest"/>
</classes>
</test>
-->
<test name="métiers suite">
<packages>
<package name="métiers"/>
</packages>
</test>
</suite>