diff --git a/src/StubbedContextLib/Migrations/20240219105500_MyMigrations.Designer.cs b/src/StubbedContextLib/Migrations/20240222092302_MyMigrations.Designer.cs similarity index 99% rename from src/StubbedContextLib/Migrations/20240219105500_MyMigrations.Designer.cs rename to src/StubbedContextLib/Migrations/20240222092302_MyMigrations.Designer.cs index d736e69..0a34c38 100644 --- a/src/StubbedContextLib/Migrations/20240219105500_MyMigrations.Designer.cs +++ b/src/StubbedContextLib/Migrations/20240222092302_MyMigrations.Designer.cs @@ -11,7 +11,7 @@ using StubbedContextLib; namespace StubbedContextLib.Migrations { [DbContext(typeof(TrainingStubbedContext))] - [Migration("20240219105500_MyMigrations")] + [Migration("20240222092302_MyMigrations")] partial class MyMigrations { /// diff --git a/src/StubbedContextLib/Migrations/20240219105500_MyMigrations.cs b/src/StubbedContextLib/Migrations/20240222092302_MyMigrations.cs similarity index 100% rename from src/StubbedContextLib/Migrations/20240219105500_MyMigrations.cs rename to src/StubbedContextLib/Migrations/20240222092302_MyMigrations.cs diff --git a/src/Tests/ConsoleTestEntities/Program.cs b/src/Tests/ConsoleTestEntities/Program.cs index 8b1e196..9e2af13 100644 --- a/src/Tests/ConsoleTestEntities/Program.cs +++ b/src/Tests/ConsoleTestEntities/Program.cs @@ -1,6 +1,7 @@ using DbContextLib; using StubbedContextLib; using Microsoft.EntityFrameworkCore; +using Entities; class Program @@ -11,25 +12,33 @@ class Program try { using (LibraryContext db = new TrainingStubbedContext()) { - AthletesTests(db); + // AthletesTests(db); - ActivityTests(db); + // ActivityTests(db); - DataSourceTests(db); + // DataSourceTests(db); - HeartRateTests(db); + // HeartRateTests(db); - NotificationTests(db); + // NotificationTests(db); - StatisticTests(db); + // StatisticTests(db); - TrainingTests(db); + // TrainingTests(db); - // // Test d'ajout, de modification et de suppression - // AddUpdateDeleteOperations(db); + AddUpdateDeleteAthlete(db); - // // Test d'emprunt et de retour de livre - // BorrowAndReturnBook(db); + AddUpdateDeleteActivity(db); + + AddUpdateDeleteDataSource(db); + + AddUpdateDeleteHeartRate(db); + + AddUpdateDeleteNotification(db); + + AddUpdateDeleteStatistic(db); + + AddUpdateDeleteTraining(db); } } catch (Exception ex) @@ -355,87 +364,241 @@ class Program Console.WriteLine("---------------------------------\n"); } -// /// -// /// Test d'ajout, de modification et de suppression de livres. -// /// -// /// Contexte de la base de données. -// static void AddUpdateDeleteOperations(LibraryContext db) -// { -// Console.WriteLine("Test d'ajout, de modification et de suppression :"); - -// // Ajout d'un nouveau livre -// var newBook = new BookEntity { Title = "Comment bien réussir son stage", Author = "Abdelfettah HASBANI", Isbn = "TheBest" }; -// // par defaut, l'Id en long est égale à zero et se mettre par la BDD -// db.BooksSet.Add(newBook); -// db.SaveChanges(); - -// // Affichage des livres après ajout -// Console.WriteLine("Livres après ajout :"); -// // .Include pour importer les personnes, ne pas le mettre si pas besoins de personnes -// foreach (var book in db.BooksSet.Include(b => b.Person)) -// { -// Console.WriteLine($"\t{book.Id}, {book.Title}, {book.Author}, {book.Isbn}, {book.Person?.FirstName} {book.Person?.LastName}"); -// } - -// // Modification du titre du nouveau livre -// newBook.Title = "Mes nouvelles dates de stage"; -// db.SaveChanges(); - -// // Affichage des livres après modification -// Console.WriteLine("Livres après modification :"); -// foreach (var book in db.BooksSet.Include(b => b.Person)) -// { -// Console.WriteLine($"\t{book.Id}, {book.Title}, {book.Author}, {book.Isbn}, {book.Person?.FirstName} {book.Person?.LastName}"); -// } - -// // Suppression du nouveau livre -// db.BooksSet.Remove(newBook); -// db.SaveChanges(); - -// // Affichage des livres après suppression -// Console.WriteLine("Livres après suppression :"); -// foreach (var book in db.BooksSet.Include(b => b.Person)) -// { -// Console.WriteLine($"\t{book.Id}, {book.Title}, {book.Author}, {book.Isbn}, {book.Person?.FirstName} {book.Person?.LastName}"); -// } -// } - -// /// -// /// Test d'emprunt et de retour de livre. -// /// -// /// Contexte de la base de données. -// static void BorrowAndReturnBook(LibraryContext db) -// { -// Console.WriteLine("Test d'emprunt et de retour de livre :"); -// var person = db.PersonsSet.FirstOrDefault(); -// var bookToBorrow = db.BooksSet.FirstOrDefault(); - -// // Retour du livre 1 -// if (bookToBorrow != null) -// { -// bookToBorrow.Person = null; -// db.SaveChanges(); -// } - -// // Affichage des livres après retour -// Console.WriteLine("Livres après retour :"); -// foreach (var book in db.BooksSet.Include(b => b.Person)) -// { -// Console.WriteLine($"\t{book.Id}, {book.Title}, {book.Author}, {book.Isbn}, {book.Person?.FirstName} {book.Person?.LastName}"); -// } - -// // Emprunt d'un livre par une personne existante -// if (person != null && bookToBorrow != null) -// { -// bookToBorrow.Person = person; -// db.SaveChanges(); -// } - -// // Affichage des livres après emprunt -// Console.WriteLine("Livres après emprunt :"); -// foreach (var book in db.BooksSet.Include(b => b.Person)) -// { -// Console.WriteLine($"\t{book.Id}, {book.Title}, {book.Author}, {book.Isbn}, {book.Person?.FirstName} {book.Person?.LastName}"); -// } -// } + static void AddUpdateDeleteAthlete(LibraryContext db) + { + Console.WriteLine("Test d'ajout, de modification et de suppression :"); + + // Ajout d'un nouveau livre + var newAthlete = new AthleteEntity { Username = "Doe", LastName = "Doe", FirstName = "John", Email = "essaie.example.com", Password = "TheNewPassword", Sexe = "M", Lenght = 1.80, Weight = 90, DateOfBirth = new DateTime(2000, 01, 01), IsCoach = false }; + db.AthletesSet.Add(newAthlete); + db.SaveChanges(); + + // Affichage des livres après ajout + Console.WriteLine("Athlete après ajout :"); + foreach (var athlete in db.AthletesSet) + { + Console.WriteLine($"\t{athlete.IdAthlete} - {athlete.Username}, {athlete.LastName}, {athlete.FirstName}, {athlete.Email}, {athlete.Sexe}, {athlete.Lenght}, {athlete.Weight}, {athlete.DateOfBirth}, {athlete.IsCoach}"); + } + + // Modification du titre du nouveau livre + newAthlete.Email = "email.example@exemple.com"; + db.SaveChanges(); + + // Affichage des livres après modification + Console.WriteLine("Livres après modification :"); + foreach (var athlete in db.AthletesSet) + { + Console.WriteLine($"\t{athlete.IdAthlete} - {athlete.Username}, {athlete.LastName}, {athlete.FirstName}, {athlete.Email}, {athlete.Sexe}, {athlete.Lenght}, {athlete.Weight}, {athlete.DateOfBirth}, {athlete.IsCoach}"); + } + + // Suppression du nouveau livre + db.AthletesSet.Remove(newAthlete); + db.SaveChanges(); + + // Affichage des livres après suppression + Console.WriteLine("Livres après suppression :"); + foreach (var athlete in db.AthletesSet) + { + Console.WriteLine($"\t{athlete.IdAthlete} - {athlete.Username}, {athlete.LastName}, {athlete.FirstName}, {athlete.Email}, {athlete.Sexe}, {athlete.Lenght}, {athlete.Weight}, {athlete.DateOfBirth}, {athlete.IsCoach}"); + } + } + + static void AddUpdateDeleteActivity(LibraryContext db) + { + Console.WriteLine("Test d'ajout, de modification et de suppression :"); + + var newActivity = new ActivityEntity { Type = "Running", Date = new DateTime(2022, 01, 01), StartTime = new DateTime(2022, 01, 01, 12, 00, 00), EndTime = new DateTime(2022, 01, 01, 13, 00, 00), EffortFelt = 5, Variability = 10, Variance = 20, StandardDeviation = 30, Average = 40, Maximum = 50, Minimum = 60, AverageTemperature = 70, HasAutoPause = false }; + db.ActivitiesSet.Add(newActivity); + db.SaveChanges(); + + Console.WriteLine("Activité après ajout :"); + foreach (var activity in db.ActivitiesSet) + { + Console.WriteLine($"\t{activity.IdActivity} - {activity.Type}, {activity.Date}, {activity.StartTime}, {activity.EndTime}, {activity.EffortFelt}, {activity.Variability}, {activity.Variance}, {activity.StandardDeviation}, {activity.Average}, {activity.Maximum}, {activity.Minimum}, {activity.AverageTemperature}, {activity.HasAutoPause}"); + } + + newActivity.Type = "Cycling"; + db.SaveChanges(); + + Console.WriteLine("Activité après modification :"); + foreach (var activity in db.ActivitiesSet) + { + Console.WriteLine($"\t{activity.IdActivity} - {activity.Type}, {activity.Date}, {activity.StartTime}, {activity.EndTime}, {activity.EffortFelt}, {activity.Variability}, {activity.Variance}, {activity.StandardDeviation}, {activity.Average}, {activity.Maximum}, {activity.Minimum}, {activity.AverageTemperature}, {activity.HasAutoPause}"); + } + + db.ActivitiesSet.Remove(newActivity); + db.SaveChanges(); + + Console.WriteLine("Activité après suppression :"); + foreach (var activity in db.ActivitiesSet) + { + Console.WriteLine($"\t{activity.IdActivity} - {activity.Type}, {activity.Date}, {activity.StartTime}, {activity.EndTime}, {activity.EffortFelt}, {activity.Variability}, {activity.Variance}, {activity.StandardDeviation}, {activity.Average}, {activity.Maximum}, {activity.Minimum}, {activity.AverageTemperature}, {activity.HasAutoPause}"); + } + + } + + static void AddUpdateDeleteDataSource(LibraryContext db) + { + Console.WriteLine("Test d'ajout, de modification et de suppression :"); + + var newDataSource = new DataSourceEntity { Type = "Polar", Modele = "Polar Vantage V2", Precision = 0.5F }; + db.DataSourcesSet.Add(newDataSource); + db.SaveChanges(); + + Console.WriteLine("Source de données après ajout :"); + foreach (var dataSource in db.DataSourcesSet) + { + Console.WriteLine($"\t{dataSource.IdSource} - {dataSource.Type}, {dataSource.Modele}, {dataSource.Precision}"); + } + + newDataSource.Type = "Garmin"; + db.SaveChanges(); + + Console.WriteLine("Source de données après modification :"); + foreach (var dataSource in db.DataSourcesSet) + { + Console.WriteLine($"\t{dataSource.IdSource} - {dataSource.Type}, {dataSource.Modele}, {dataSource.Precision}"); + } + + db.DataSourcesSet.Remove(newDataSource); + db.SaveChanges(); + + Console.WriteLine("Source de données après suppression :"); + foreach (var dataSource in db.DataSourcesSet) + { + Console.WriteLine($"\t{dataSource.IdSource} - {dataSource.Type}, {dataSource.Modele}, {dataSource.Precision}"); + } + } + + static void AddUpdateDeleteHeartRate(LibraryContext db) + { + Console.WriteLine("Test d'ajout, de modification et de suppression :"); + + var newHeartRate = new HeartRateEntity { Altitude = 100, Time = new DateTime(2022, 01, 01, 12, 00, 00), Temperature = 20, Bpm = 150, Longitude = 0, Latitude = 0 }; + db.HeartRatesSet.Add(newHeartRate); + db.SaveChanges(); + + Console.WriteLine("Fréquence cardiaque après ajout :"); + foreach (var heartRate in db.HeartRatesSet) + { + Console.WriteLine($"\t{heartRate.IdHeartRate} - {heartRate.Altitude}, {heartRate.Time}, {heartRate.Temperature}, {heartRate.Bpm}, {heartRate.Longitude}, {heartRate.Latitude}"); + } + + newHeartRate.Altitude = 200; + db.SaveChanges(); + + Console.WriteLine("Fréquence cardiaque après modification :"); + foreach (var heartRate in db.HeartRatesSet) + { + Console.WriteLine($"\t{heartRate.IdHeartRate} - {heartRate.Altitude}, {heartRate.Time}, {heartRate.Temperature}, {heartRate.Bpm}, {heartRate.Longitude}, {heartRate.Latitude}"); + } + + db.HeartRatesSet.Remove(newHeartRate); + db.SaveChanges(); + + Console.WriteLine("Fréquence cardiaque après suppression :"); + foreach (var heartRate in db.HeartRatesSet) + { + Console.WriteLine($"\t{heartRate.IdHeartRate} - {heartRate.Altitude}, {heartRate.Time}, {heartRate.Temperature}, {heartRate.Bpm}, {heartRate.Longitude}, {heartRate.Latitude}"); + } + } + + static void AddUpdateDeleteNotification(LibraryContext db) + { + Console.WriteLine("Test d'ajout, de modification et de suppression :"); + + var newNotification = new NotificationEntity { Message = "Message de test", Date = new DateTime(2022, 01, 01), Statut = false, Urgence = "Urgent" }; + db.NotificationsSet.Add(newNotification); + db.SaveChanges(); + + Console.WriteLine("Notification après ajout :"); + foreach (var notification in db.NotificationsSet) + { + Console.WriteLine($"\t{notification.IdNotif} - {notification.Message}, {notification.Date}, {notification.Statut}, {notification.Urgence}"); + } + + newNotification.Message = "Nouveau message de test"; + db.SaveChanges(); + + Console.WriteLine("Notification après modification :"); + foreach (var notification in db.NotificationsSet) + { + Console.WriteLine($"\t{notification.IdNotif} - {notification.Message}, {notification.Date}, {notification.Statut}, {notification.Urgence}"); + } + + db.NotificationsSet.Remove(newNotification); + db.SaveChanges(); + + Console.WriteLine("Notification après suppression :"); + foreach (var notification in db.NotificationsSet) + { + Console.WriteLine($"\t{notification.IdNotif} - {notification.Message}, {notification.Date}, {notification.Statut}, {notification.Urgence}"); + } + } + + static void AddUpdateDeleteStatistic(LibraryContext db) + { + Console.WriteLine("Test d'ajout, de modification et de suppression :"); + + var newStatistic = new StatisticEntity { Weight = 80, AverageHeartRate = 150, MaximumHeartRate = 180, AverageCaloriesBurned = 500, Date = new DateTime(2022, 01, 01) }; + db.StatisticsSet.Add(newStatistic); + db.SaveChanges(); + + Console.WriteLine("Statistique après ajout :"); + foreach (var statistic in db.StatisticsSet) + { + Console.WriteLine($"\t{statistic.IdStatistic} - {statistic.Weight}, {statistic.AverageHeartRate}, {statistic.MaximumHeartRate}, {statistic.AverageCaloriesBurned}, {statistic.Date}"); + } + + newStatistic.Weight = 90; + db.SaveChanges(); + + Console.WriteLine("Statistique après modification :"); + foreach (var statistic in db.StatisticsSet) + { + Console.WriteLine($"\t{statistic.IdStatistic} - {statistic.Weight}, {statistic.AverageHeartRate}, {statistic.MaximumHeartRate}, {statistic.AverageCaloriesBurned}, {statistic.Date}"); + } + + db.StatisticsSet.Remove(newStatistic); + db.SaveChanges(); + + Console.WriteLine("Statistique après suppression :"); + foreach (var statistic in db.StatisticsSet) + { + Console.WriteLine($"\t{statistic.IdStatistic} - {statistic.Weight}, {statistic.AverageHeartRate}, {statistic.MaximumHeartRate}, {statistic.AverageCaloriesBurned}, {statistic.Date}"); + } + } + + static void AddUpdateDeleteTraining(LibraryContext db) + { + Console.WriteLine("Test d'ajout, de modification et de suppression :"); + + var newTraining = new TrainingEntity { Date = new DateTime(2022, 01, 01), Description = "Entrainement de test", Latitude = 0, Longitude = 0, FeedBack = "Bon entrainement" }; + db.TrainingsSet.Add(newTraining); + db.SaveChanges(); + + Console.WriteLine("Entrainement après ajout :"); + foreach (var training in db.TrainingsSet) + { + Console.WriteLine($"\t{training.IdTraining} - {training.Date}, {training.Description}, {training.Latitude}, {training.Longitude}, {training.FeedBack}"); + } + + newTraining.Description = "Nouvel entrainement de test"; + db.SaveChanges(); + + Console.WriteLine("Entrainement après modification :"); + foreach (var training in db.TrainingsSet) + { + Console.WriteLine($"\t{training.IdTraining} - {training.Date}, {training.Description}, {training.Latitude}, {training.Longitude}, {training.FeedBack}"); + } + + db.TrainingsSet.Remove(newTraining); + db.SaveChanges(); + + Console.WriteLine("Entrainement après suppression :"); + foreach (var training in db.TrainingsSet) + { + Console.WriteLine($"\t{training.IdTraining} - {training.Date}, {training.Description}, {training.Latitude}, {training.Longitude}, {training.FeedBack}"); + } + } } \ No newline at end of file diff --git a/src/Tests/ConsoleTestEntities/uca.HeartTrack.db b/src/Tests/ConsoleTestEntities/uca.HeartTrack.db index b4e7a29..fa4e4d2 100644 Binary files a/src/Tests/ConsoleTestEntities/uca.HeartTrack.db and b/src/Tests/ConsoleTestEntities/uca.HeartTrack.db differ