assertTrue ("L'etat actuel doit etre un ActivityPresentationState", this.activityScheduler.getActivityState() instanceof ActivityPresentationState);
assertTrue( "L'etat actuel doit etre un PostConditionCheckerState", this.activityScheduler.getActivityState() instanceof PostConditionCheckerState);  this.activityScheduler.setState(this.state);    this.activity.setOutputProducts(new ArrayList<Product>()); Guidance gCheckist = new Guidance("", "une liste de controles", null, null, "Liste de controles"); this.activity.addGuidance(gCheckist);   assertTrue( "Requete NEXT envoye a l'etat : changement d'etat.", this.state.manageRequest(reqNext)); assertTrue( "L'etat actuel doit etre un PostConditionCheckerState", this.activityScheduler.getActivityState() instanceof PostConditionCheckerState);  this.activityScheduler.setState(this.state);    Step aStep = new Step("step1", "comment", new ArrayList<Product> ()); this.activity.addStep(aStep);  assertTrue( "Requete NEXT envoye a l'etat : changement d'etat.", this.state.manageRequest(reqNext)); assertTrue( "L'etat actuel doit etre un StepState", this.activityScheduler.getActivityState() instanceof StepState);  this.activityScheduler.setState(this.state);   this.activityScheduler.setState(this.state);
	public void testManageRequest ()	{		// creation d'une liste de produits en entre		List<Product> lInputProduct = new ArrayList<Product>();		lInputProduct.add(new Product("", "produit1", null, null, null));		// creation des requetes		Request reqNext = new Request(Request.RequestType.NEXT);		Request reqPrevious = new Request(Request.RequestType.PREVIOUS);		Request reqAleat = new Request(Request.RequestType.CLOSE_PROCESS);				// ajout des produits en entre de l'activit		this.activity.setInputProducts(lInputProduct);				//on envoie la requete next et on ne doit pas changer d'etat		assertFalse("Requete PREVIOUS envoye a l'etat. Aucun changement ", 				this.state.manageRequest(reqPrevious));		assertTrue ("L'etat actuel doit etre un PreConditionCheckerState",				this.activityScheduler.getActivityState() == this.state);		//on passe a l'etat suivant et on verifie que c'est un ActivityPresentationState		assertTrue ("Requete NEXT envoye a l'etat : changement vers l'etat. ActivityPresentationState",				this.state.manageRequest(reqNext));		assertTrue ("L'etat actuel doit etre un ActivityPresentationState",				this.activityScheduler.getActivityState() instanceof ActivityPresentationState);			// Test de GOTOSTEP		// creation d'un ArrayList de step avec une etape		ArrayList<Step> arrStep = new ArrayList<Step>();		arrStep.add(new Step("Etape 1", null, new ArrayList<Product>()));		// cration d'une activit vide pour les tests		this.activity = new Activity("", "", null, null, arrStep,				new WorkDefinition("", "", null, null,						new ArrayList<Activity>()), new ArrayList<Product>(),				new ArrayList<Product>(), new Role("", "", null, null,						new ArrayList<Activity>()));		// creation d'un ActivityScheduler		this.activityScheduler = new ActivityScheduler(this.activity);		ArrayList<AbstractActivityState> arrState = new ArrayList<AbstractActivityState>();		// initialisation de l'ArrayList		arrState.add(new PreConditionCheckerState(this.activityScheduler,				this.activity));		arrState.add(new StepState(this.activityScheduler, this.activity, 0));		arrState.add(new PostConditionCheckerState(this.activityScheduler,				this.activity));		// on teste la requete GOTOSTEP		for (int i = 0; i < arrState.size(); i++)		{			// on se met dans le bon etat			// creation de l'etat ActivityState			this.state = new ActivityPresentationState(this.activityScheduler,					this.activity);			// on met l'ActivityScheduler dans l'etat ActivityPresentationState			this.activityScheduler.setActivityState(this.state);			// Creation d'une requete GOTOSTEP			Request request = new Request(Request.RequestType.GOTOSTEP,					arrState.get(i));			assertTrue("L'etat devrait changer", 					this.activityScheduler.ManageRequest(request));			assertTrue("L'etat devrait etre celui de tab[i]",					this.activityScheduler.getActivityState() == arrState.get(i));		}						//avec ou sans steps dans l'activit, on passe ds tous les cas  		//dans un ActiityPresentationState grce au next		//et le bouton previous est dsactiv				this.activityScheduler.setState(this.state);		//on envoie un ensemble de requetes et on teste si elles ont chang l'tat de la machine		assertFalse("Requete CLOSE_PROCESS envoye a l'etat, rien ne doit se passer", 				this.state.manageRequest(reqAleat));		assertTrue ("L'etat actuel doit etre un PreConditionCheckerState",				this.activityScheduler.getActivityState() == this.state);		reqAleat = new Request(Request.RequestType.CLOSE_PROJECT);				assertFalse("Requete CLOSE_PROJECT envoye a l'etat, rien ne doit se passer", 				this.state.manageRequest(reqAleat));		assertTrue ("L'etat actuel doit etre un PreConditionCheckerState",				this.activityScheduler.getActivityState()  == this.state);				reqAleat = new Request(Request.RequestType.TERMINATE_ACTIVITY);		assertFalse("Requete TERMINATE_ACTIVITY envoye a l'etat, rien ne doit se passer", 				this.state.manageRequest(reqAleat));		assertTrue ("L'etat actuel doit etre un PreConditionCheckerState",				this.activityScheduler.getActivityState()  == this.state);					}