@startuml
skinparam classAttributeIconSize 0

	class Monnaie {
	    --Requêtes--
		valeur(): integer
		devise(): String
		--Commandes--
		ajouter(m: Monnaie)
		retrancher(m: Monnaie)
		--
		Monnaie(valeur: integer, devise: String)
	}
	
	class DeviseInvalideException {
	
	}
	
	note as noteException
		public class DeviseInvalideException
		    extends Exception { }
	end note

	DeviseInvalideException .left. noteException
	
	note bottom of Monnaie
	    public class Monnaie {
	        //[...]
	        public void ajouter(Monnaie m) throws DIE {
	            if (!this.devise.equals(m.devise)) {
	                throw new DIE();
	            }
	            this.valeur += m.valeur;
	        }
	    }
	end note

	
	note as noteTest
	    public class TestMonnaie1 {
	        – main (–) {
	            Monnaie m1 = new Monnaie(5, "euros");
	            Monnaie m2 = new Monnaie(7, "euros");
	            m1.ajouter(m2);
	            Sop(m1.getValeur());
	            // Meilleur test :
	            // assertTrue(12 == m1.getValeur());
	        }
	    }
	end note

@enduml