-- ============================================================================
-- Fichier      : testPlusdixKilos.sql
-- Auteur       : PASQUIER Léo
-- Date         : 23/12/2020
-- Base         : Ruche
-- Rôle			: Jeu de test pour la requete "Quelles sont les ruches qui ont
--                permis de récolter plus de 10 kg de miel durant l’année 2018 ?".
-- Résultat     : testPlusdixKilos.out
-- ============================================================================

-- ============================================================================
-- Modification du format de la date pour se conformer aux données du programme de test
-- ============================================================================

ALTER SESSION SET NLS_DATE_FORMAT = 'dd/mm/yyyy';

-- ============================================================================
-- Suppression des nuplets de la base de données.
-- ============================================================================

@../utilitaires/vider_base_ruche.sql

-- ============================================================================
-- Jeu de test pour le domaine valide :
-- ============================================================================

-- Cas 1 : Une ruche qui a récolté du miel seulement durant l'année 2018,
--         et plus de 10 kg.
-- L'apiculteur :
INSERT INTO APICULTEUR (IDAPI, NOMAPI, PRENOMAPI, TELAPI, MAILAPI, ADRAPI)
VALUES (1, 'Example1', 'EXAMPLE1', '0611223344', 'exemple1@mail.org', 'Exemple Ville');
-- Le rucher :
INSERT INTO RUCHER (IDRUCHER, TYPEMIEL)
VALUES (1, 'acacia');
-- La ruche :
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (1, 10, 1, 1);
-- Les récoltes :
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (1, TO_DATE('01/01/2018', 'DD/MM/YYYY'), 5.4);
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (1, TO_DATE('15/06/2018', 'DD/MM/YYYY'), 4.7);

-- Cas 2 : Une ruche qui a récolté plus de 10 kg de miel durant l'année 2018
--         et les autres années.
-- Le rucher :
INSERT INTO RUCHER (IDRUCHER, TYPEMIEL)
VALUES (2, 'sapin');
-- La ruche :
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (2, 10, 1, 2);
-- Les récoltes :
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (2, TO_DATE('05/07/2017', 'DD/MM/YYYY'), 8);
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (2, TO_DATE('01/01/2018', 'DD/MM/YYYY'), 6);
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (2, TO_DATE('31/12/2018', 'DD/MM/YYYY'), 9);
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (2, TO_DATE('04/03/2019', 'DD/MM/YYYY'), 6);

-- ============================================================================
-- Jeu de test pour le domaine invalide :
-- ============================================================================

-- Cas 3 : Une ruche qui a récolté du miel seulement durant l'année 2018,
--         mais pas plus de 10kg.
-- La ruche :
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (3, 10, 1, 1);
-- Les récoltes :
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (3, TO_DATE('01/01/2018', 'DD/MM/YYYY'), 2);
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (3, TO_DATE('31/12/2018', 'DD/MM/YYYY'), 3);

-- Cas 4 : Une ruche qui a récolté plus de 10 kg de miel mais pas durant
--         l'année 2018.
-- La ruche :
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (4, 10, 1, 2);
-- Les récoltes :
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (4, TO_DATE('01/01/2017', 'DD/MM/YYYY'), 8);
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (4, TO_DATE('01/01/2020', 'DD/MM/YYYY'), 6);

-- Cas 5 : Une ruche qui n'a jamais récolté plus de 10 kg de miel,
--         qu'importe l'année.
-- La ruche :
INSERT INTO RUCHE (IDRU, NBCADRE, IDAPI, IDRUCHER)
VALUES (5, 10, 1, 1);
-- Les récoltes :
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (5, TO_DATE('01/01/2018', 'DD/MM/YYYY'), 5);
INSERT INTO RECOLTE (IDRU, DATEREC, MASSE)
VALUES (5, TO_DATE('02/01/2018', 'DD/MM/YYYY'), 5);

-- ============================================================================
-- Gestion de l'affichage du fichier résultat :
-- ============================================================================

SPOOL plusDixKilos/testPlusdixKilos.out

PROMPT Fichier resultat du test : testPlusdixKilos.out
@../utilitaires/presentation_ruche.sql
@../utilitaires/afficher_base_ruche.sql

-- ============================================================================
-- Requête à tester :
-- ============================================================================

PROMPT Resultat de la requete :
SET echo ON
@plusDixKilos/plusDixKilos.sql
SET echo OFF

-- ============================================================================
-- Fin du programme de test
-- ============================================================================

SPOOL OFF