# Test 25 - Gestion des commandes multi-lignes

Ce test vérifie le comportement de `bake` comparé à `make` lors de l'exécution de règles comportant plusieurs lignes de commandes bash à exécuter séquentiellement.

## Sommaire
- [Structure du test](#structure-du-test)
- [Contenu des fichiers de règles](#contenu-des-fichiers-de-règles)
- [Objectif du test](#objectif-du-test)
- [Scénario de test](#scénario-de-test)
- [Comment exécuter le test](#comment-exécuter-le-test)
  - [Test manuel](#test-manuel)
- [Résultats attendus](#résultats-attendus)

## Structure du test

```
test-23-multilines/
├── README.md         # Ce fichier
├── bake/             
│   ├── Bakefile      # Fichier de règles pour bake
│   ├── bakefile.jar  # Exécutable de bake (JAR)
└── make/
    └── Makefile      # Fichier de règles pour make

```

## Contenu des fichiers de règles

Les fichiers `Makefile` et `Bakefile` contiennent les mêmes règles avec des commandes multi-lignes :

```makefile
MultiLine: 
	echo "Première ligne" > test.txt
	echo "Deuxième ligne" >> test.txt
	echo "Troisième ligne" >> test.txt
	cat test.txt
	rm test.txt
```

## Objectif du test

Ce test vérifie que `bake` exécute correctement une séquence de commandes bash indépendantes, placées sur des lignes distinctes dans la règle. Comme `make`, `bake` doit exécuter chaque ligne séquentiellement et s'arrêter à la première erreur (comportement de bash).

## Scénario de test

Le test suit les étapes suivantes :
1. Exécuter la règle `MultiLine` qui crée un fichier texte avec plusieurs lignes, affiche son contenu puis le supprime
2. Vérifier que toutes les étapes sont exécutées correctement dans l'ordre spécifié

## Comment exécuter le test

### Test manuel

1. Pour Make :
   ```
   cd make
   make
   ```

2. Pour Bake :
   ```
   cd bake
   java -cp bakefile.jar fr.monlouyan.bakefile.Main
   ```

3. Comparez les deux résultats.

## Résultats attendus

- Chaque commande des règles doit être exécutée séquentiellement
- Les sorties de chaque commande doivent apparaître dans la console dans l'ordre d'exécution
- Pour la règle `MultiLine` :
  - Le fichier test.txt doit être créé avec trois lignes
  - Le contenu du fichier doit être affiché
  - Le fichier doit être supprimé
- `bake` doit se comporter exactement comme `make` en termes d'ordre d'exécution des commandes