From 009d5761e7247655dd3d7a31159f92c5a284ff22 Mon Sep 17 00:00:00 2001 From: "remi.lavergne" Date: Wed, 7 Jun 2023 16:39:39 +0200 Subject: [PATCH 1/4] =?UTF-8?q?Cr=C3=A9ation=20des=20tests=20unitaires?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/GameAtlas/GameAtlas/App.xaml.cs | 2 +- .../DataContractPers.cs | 2 +- .../DataContractPersistance/DataToPersist.cs | 2 +- Sources/GameAtlas/GameAtlas/GameAtlas.csproj | 4 +++ Sources/GameAtlas/GameAtlas/Stub/Stub.cs | 2 +- .../Views/Composants/BoutonVoir.xaml.cs | 2 +- .../GameAtlas/Views/PageAccueil.xaml.cs | 2 +- .../GameAtlas/Views/PageAdmin.xaml.cs | 2 +- .../GameAtlas/Views/PageConnexion.xaml.cs | 2 +- .../GameAtlas/Views/PageInscription.xaml.cs | 2 +- .../GameAtlas/GameAtlas/Views/PageJeu.xaml.cs | 2 +- .../GameAtlas/Views/PageParcourir.xaml.cs | 2 +- .../GameAtlas/Views/PageProfil.xaml.cs | 2 +- .../GameAtlas/{GameAtlas => }/Models/Admin.cs | 2 +- .../Models/IPersistanceManager.cs | 2 +- .../GameAtlas/{GameAtlas => }/Models/Jeu.cs | 2 +- .../{GameAtlas => }/Models/Manager.cs | 2 +- Sources/GameAtlas/Models/Models.csproj | 9 ++++++ .../{GameAtlas => }/Models/Utilisateur.cs | 3 +- Sources/GameAtlas/Tests/Tests.csproj | 29 +++++++++++++++++++ Sources/GameAtlas/Tests/UnitTest1.cs | 17 +++++++++++ Sources/GameAtlas/Tests/UnitTest2.cs | 22 ++++++++++++++ Sources/GameAtlas/Tests/Usings.cs | 1 + 23 files changed, 99 insertions(+), 18 deletions(-) rename Sources/GameAtlas/{GameAtlas => }/Models/Admin.cs (94%) rename Sources/GameAtlas/{GameAtlas => }/Models/IPersistanceManager.cs (93%) rename Sources/GameAtlas/{GameAtlas => }/Models/Jeu.cs (98%) rename Sources/GameAtlas/{GameAtlas => }/Models/Manager.cs (99%) create mode 100644 Sources/GameAtlas/Models/Models.csproj rename Sources/GameAtlas/{GameAtlas => }/Models/Utilisateur.cs (96%) create mode 100644 Sources/GameAtlas/Tests/Tests.csproj create mode 100644 Sources/GameAtlas/Tests/UnitTest1.cs create mode 100644 Sources/GameAtlas/Tests/UnitTest2.cs create mode 100644 Sources/GameAtlas/Tests/Usings.cs diff --git a/Sources/GameAtlas/GameAtlas/App.xaml.cs b/Sources/GameAtlas/GameAtlas/App.xaml.cs index bb7c00e..b5acf28 100644 --- a/Sources/GameAtlas/GameAtlas/App.xaml.cs +++ b/Sources/GameAtlas/GameAtlas/App.xaml.cs @@ -1,4 +1,4 @@ -using GameAtlas.Models; +using Models; using GameAtlas.Views; using GameAtlas.Stub; diff --git a/Sources/GameAtlas/GameAtlas/DataContractPersistance/DataContractPers.cs b/Sources/GameAtlas/GameAtlas/DataContractPersistance/DataContractPers.cs index ea869ee..77b415d 100644 --- a/Sources/GameAtlas/GameAtlas/DataContractPersistance/DataContractPers.cs +++ b/Sources/GameAtlas/GameAtlas/DataContractPersistance/DataContractPers.cs @@ -1,4 +1,4 @@ -using GameAtlas.Models; +using Models; using System; using System.Collections.Generic; using System.Diagnostics; diff --git a/Sources/GameAtlas/GameAtlas/DataContractPersistance/DataToPersist.cs b/Sources/GameAtlas/GameAtlas/DataContractPersistance/DataToPersist.cs index edd9182..511eb76 100644 --- a/Sources/GameAtlas/GameAtlas/DataContractPersistance/DataToPersist.cs +++ b/Sources/GameAtlas/GameAtlas/DataContractPersistance/DataToPersist.cs @@ -1,4 +1,4 @@ -using GameAtlas.Models; +using Models; using System; using System.Collections.Generic; using System.Collections.ObjectModel; diff --git a/Sources/GameAtlas/GameAtlas/GameAtlas.csproj b/Sources/GameAtlas/GameAtlas/GameAtlas.csproj index 9cca63a..f05dd93 100644 --- a/Sources/GameAtlas/GameAtlas/GameAtlas.csproj +++ b/Sources/GameAtlas/GameAtlas/GameAtlas.csproj @@ -132,5 +132,9 @@ MSBuild:Compile + + + + diff --git a/Sources/GameAtlas/GameAtlas/Stub/Stub.cs b/Sources/GameAtlas/GameAtlas/Stub/Stub.cs index 610a9e6..a278aef 100644 --- a/Sources/GameAtlas/GameAtlas/Stub/Stub.cs +++ b/Sources/GameAtlas/GameAtlas/Stub/Stub.cs @@ -1,4 +1,4 @@ -using GameAtlas.Models; +using Models; using System; using System.Collections.Generic; using System.Collections.ObjectModel; diff --git a/Sources/GameAtlas/GameAtlas/Views/Composants/BoutonVoir.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/Composants/BoutonVoir.xaml.cs index a712c0b..3d2f62a 100644 --- a/Sources/GameAtlas/GameAtlas/Views/Composants/BoutonVoir.xaml.cs +++ b/Sources/GameAtlas/GameAtlas/Views/Composants/BoutonVoir.xaml.cs @@ -1,6 +1,6 @@ namespace GameAtlas.Views.Composants; -using GameAtlas.Models; +using Models; public partial class BoutonVoir : ContentView { diff --git a/Sources/GameAtlas/GameAtlas/Views/PageAccueil.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageAccueil.xaml.cs index b33527f..da272ec 100644 --- a/Sources/GameAtlas/GameAtlas/Views/PageAccueil.xaml.cs +++ b/Sources/GameAtlas/GameAtlas/Views/PageAccueil.xaml.cs @@ -1,4 +1,4 @@ -using GameAtlas.Models; +using Models; using System.Collections.ObjectModel; namespace GameAtlas.Views; diff --git a/Sources/GameAtlas/GameAtlas/Views/PageAdmin.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageAdmin.xaml.cs index ffebc0f..b8e9d29 100644 --- a/Sources/GameAtlas/GameAtlas/Views/PageAdmin.xaml.cs +++ b/Sources/GameAtlas/GameAtlas/Views/PageAdmin.xaml.cs @@ -5,7 +5,7 @@ */ using Microsoft.Maui.Controls; -using GameAtlas.Models; +using Models; using System.Diagnostics; namespace GameAtlas.Views; diff --git a/Sources/GameAtlas/GameAtlas/Views/PageConnexion.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageConnexion.xaml.cs index 28fe655..90d8d77 100644 --- a/Sources/GameAtlas/GameAtlas/Views/PageConnexion.xaml.cs +++ b/Sources/GameAtlas/GameAtlas/Views/PageConnexion.xaml.cs @@ -6,7 +6,7 @@ namespace GameAtlas.Views; -using GameAtlas.Models; +using Models; using System.Diagnostics; using System.Text.RegularExpressions; diff --git a/Sources/GameAtlas/GameAtlas/Views/PageInscription.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageInscription.xaml.cs index d548c24..f60f8a7 100644 --- a/Sources/GameAtlas/GameAtlas/Views/PageInscription.xaml.cs +++ b/Sources/GameAtlas/GameAtlas/Views/PageInscription.xaml.cs @@ -1,6 +1,6 @@ namespace GameAtlas.Views; -using GameAtlas.Models; +using Models; using GameAtlas.DataContractPersistance; using System.Diagnostics; using System.Text.RegularExpressions; diff --git a/Sources/GameAtlas/GameAtlas/Views/PageJeu.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageJeu.xaml.cs index fe25a4f..00aeb02 100644 --- a/Sources/GameAtlas/GameAtlas/Views/PageJeu.xaml.cs +++ b/Sources/GameAtlas/GameAtlas/Views/PageJeu.xaml.cs @@ -1,4 +1,4 @@ -using GameAtlas.Models; +using Models; using System.Diagnostics; using CommunityToolkit.Maui.Alerts; using CommunityToolkit.Maui.Core; diff --git a/Sources/GameAtlas/GameAtlas/Views/PageParcourir.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageParcourir.xaml.cs index b904642..4472ca9 100644 --- a/Sources/GameAtlas/GameAtlas/Views/PageParcourir.xaml.cs +++ b/Sources/GameAtlas/GameAtlas/Views/PageParcourir.xaml.cs @@ -1,6 +1,6 @@ namespace GameAtlas.Views; -using GameAtlas.Models; +using Models; using System.Collections.ObjectModel; public partial class PageParcourir : ContentPage diff --git a/Sources/GameAtlas/GameAtlas/Views/PageProfil.xaml.cs b/Sources/GameAtlas/GameAtlas/Views/PageProfil.xaml.cs index 2347318..7f3176f 100644 --- a/Sources/GameAtlas/GameAtlas/Views/PageProfil.xaml.cs +++ b/Sources/GameAtlas/GameAtlas/Views/PageProfil.xaml.cs @@ -1,4 +1,4 @@ -using GameAtlas.Models; +using Models; namespace GameAtlas.Views; diff --git a/Sources/GameAtlas/GameAtlas/Models/Admin.cs b/Sources/GameAtlas/Models/Admin.cs similarity index 94% rename from Sources/GameAtlas/GameAtlas/Models/Admin.cs rename to Sources/GameAtlas/Models/Admin.cs index 142de3a..c0b7dab 100644 --- a/Sources/GameAtlas/GameAtlas/Models/Admin.cs +++ b/Sources/GameAtlas/Models/Admin.cs @@ -9,7 +9,7 @@ using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; -namespace GameAtlas.Models +namespace Models { [DataContract] public class Admin : Utilisateur diff --git a/Sources/GameAtlas/GameAtlas/Models/IPersistanceManager.cs b/Sources/GameAtlas/Models/IPersistanceManager.cs similarity index 93% rename from Sources/GameAtlas/GameAtlas/Models/IPersistanceManager.cs rename to Sources/GameAtlas/Models/IPersistanceManager.cs index 786a3aa..fb2ca08 100644 --- a/Sources/GameAtlas/GameAtlas/Models/IPersistanceManager.cs +++ b/Sources/GameAtlas/Models/IPersistanceManager.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace GameAtlas.Models +namespace Models { public interface IPersistanceManager { diff --git a/Sources/GameAtlas/GameAtlas/Models/Jeu.cs b/Sources/GameAtlas/Models/Jeu.cs similarity index 98% rename from Sources/GameAtlas/GameAtlas/Models/Jeu.cs rename to Sources/GameAtlas/Models/Jeu.cs index 8d07acf..0479abf 100644 --- a/Sources/GameAtlas/GameAtlas/Models/Jeu.cs +++ b/Sources/GameAtlas/Models/Jeu.cs @@ -10,7 +10,7 @@ using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; -namespace GameAtlas.Models +namespace Models { [DataContract] public class Jeu diff --git a/Sources/GameAtlas/GameAtlas/Models/Manager.cs b/Sources/GameAtlas/Models/Manager.cs similarity index 99% rename from Sources/GameAtlas/GameAtlas/Models/Manager.cs rename to Sources/GameAtlas/Models/Manager.cs index d9ff100..5612e24 100644 --- a/Sources/GameAtlas/GameAtlas/Models/Manager.cs +++ b/Sources/GameAtlas/Models/Manager.cs @@ -7,7 +7,7 @@ using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; -namespace GameAtlas.Models +namespace Models { public class Manager : INotifyPropertyChanged { diff --git a/Sources/GameAtlas/Models/Models.csproj b/Sources/GameAtlas/Models/Models.csproj new file mode 100644 index 0000000..cfadb03 --- /dev/null +++ b/Sources/GameAtlas/Models/Models.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/Sources/GameAtlas/GameAtlas/Models/Utilisateur.cs b/Sources/GameAtlas/Models/Utilisateur.cs similarity index 96% rename from Sources/GameAtlas/GameAtlas/Models/Utilisateur.cs rename to Sources/GameAtlas/Models/Utilisateur.cs index 169fa8b..ddb0b1c 100644 --- a/Sources/GameAtlas/GameAtlas/Models/Utilisateur.cs +++ b/Sources/GameAtlas/Models/Utilisateur.cs @@ -2,7 +2,6 @@ /// \brief Définition de la classe Utilisateur. /// \author Rémi Lavergne - Yvan Calatayud -using GameAtlas.Views; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -11,7 +10,7 @@ using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; -namespace GameAtlas.Models +namespace Models { [DataContract] [KnownType(typeof(Admin))] diff --git a/Sources/GameAtlas/Tests/Tests.csproj b/Sources/GameAtlas/Tests/Tests.csproj new file mode 100644 index 0000000..4568c3b --- /dev/null +++ b/Sources/GameAtlas/Tests/Tests.csproj @@ -0,0 +1,29 @@ + + + + net7.0 + enable + enable + + false + true + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/Sources/GameAtlas/Tests/UnitTest1.cs b/Sources/GameAtlas/Tests/UnitTest1.cs new file mode 100644 index 0000000..8c6df0e --- /dev/null +++ b/Sources/GameAtlas/Tests/UnitTest1.cs @@ -0,0 +1,17 @@ +using Models; +using System.Diagnostics; + +namespace Tests +{ + public class UnitTest1 + { + [Fact] + public void Test1() + { + Utilisateur Georges = new Utilisateur("georges.gio@gmail.com", "GeoStorm", "Storm7!"); + Debug.WriteLine(Georges.Mail); + Debug.WriteLine(Georges.Pseudo); + Debug.WriteLine(Georges.EstAdmin); + } + } +} \ No newline at end of file diff --git a/Sources/GameAtlas/Tests/UnitTest2.cs b/Sources/GameAtlas/Tests/UnitTest2.cs new file mode 100644 index 0000000..5e87a63 --- /dev/null +++ b/Sources/GameAtlas/Tests/UnitTest2.cs @@ -0,0 +1,22 @@ +using Models; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tests +{ + public class UnitTest2 + { + [Fact] + public void Test1() + { + Admin Antoine = new Admin("antoine@gameatlas.com", "Antoine", "adminAntoine01"); + Debug.WriteLine(Antoine.Mail); + Debug.WriteLine(Antoine.Pseudo); + Debug.WriteLine(Antoine.EstAdmin); + } + } +} diff --git a/Sources/GameAtlas/Tests/Usings.cs b/Sources/GameAtlas/Tests/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/Sources/GameAtlas/Tests/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file From 4098ba6453dffead16ed61166e05bce0f4772db0 Mon Sep 17 00:00:00 2001 From: "remi.lavergne" Date: Wed, 7 Jun 2023 17:14:55 +0200 Subject: [PATCH 2/4] Test Unitaire Utilisateur --- Sources/GameAtlas/Tests/UnitTest2.cs | 2 +- .../GameAtlas/Tests/UtilisateurSimulation.cs | 54 +++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 Sources/GameAtlas/Tests/UtilisateurSimulation.cs diff --git a/Sources/GameAtlas/Tests/UnitTest2.cs b/Sources/GameAtlas/Tests/UnitTest2.cs index 5e87a63..b8bc97c 100644 --- a/Sources/GameAtlas/Tests/UnitTest2.cs +++ b/Sources/GameAtlas/Tests/UnitTest2.cs @@ -11,7 +11,7 @@ namespace Tests public class UnitTest2 { [Fact] - public void Test1() + public void Test2() { Admin Antoine = new Admin("antoine@gameatlas.com", "Antoine", "adminAntoine01"); Debug.WriteLine(Antoine.Mail); diff --git a/Sources/GameAtlas/Tests/UtilisateurSimulation.cs b/Sources/GameAtlas/Tests/UtilisateurSimulation.cs new file mode 100644 index 0000000..49c65c6 --- /dev/null +++ b/Sources/GameAtlas/Tests/UtilisateurSimulation.cs @@ -0,0 +1,54 @@ +using Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Diagnostics; + +namespace Tests +{ + public class UtilisateurSimulation + { + readonly Utilisateur Georges = new Utilisateur("georges.gio@gmail.com", "GeoStorm", "Storm7!"); + + public void UserCheck() + { + Debug.WriteLine(Georges.Mail); + Debug.WriteLine(Georges.Pseudo); + Debug.WriteLine(Georges.EstAdmin); + } + + public void ListeFavoris() + { + Jeu TheLastOfUs = new Jeu("The Last Of Us Part I", "Dans un monde dévasté où rôdent infectés et survivants endurcis, Joel, un protagoniste désabusé, est engagé pour faire sortir Ellie, 14 ans, d'une zone de quarantaine militaire. Mais ce qui devait être une simple mission de routine se transforme vite en un dangereux périple à travers le pays.", "28 Mars 2023", "PS5 PC", "Naughty Dog LLC", "PlayStation PC LLC", 8.5, 487, "Solo Action Aventure", "cover_lastofus1.png"); + Georges.ListeFavoris.Add(TheLastOfUs); + Debug.WriteLine($"Nombre de jeux dans la Liste des Favoris: {Georges.ListeFavoris.Count()}"); + Debug.WriteLine($"Nom du Jeu: {Georges.ListeFavoris[0].Nom}"); + + Georges.ListeFavoris.Remove(TheLastOfUs); + Debug.WriteLine($"Nombre de jeux dans la Liste des Favoris: {Georges.ListeFavoris.Count()}"); + } + + public void ListePossedes() + { + Jeu ForzaHorizon = new Jeu("Forza Horizon 5", "Dans ce jeu, vous pouvez explorer une carte en monde ouvert vraiment massive, cinquante pour cent plus grande que la carte non négligeable de Forza Horizon 4. Faites la course avec divers véhicules à travers la caldeira d'un volcan, explorez les jungles et les forêts tropicales à la recherche de villes en ruines cachées, parcourez les plages de sable blanc, et passez devant des chutes d'eau, des montagnes enneigées et de grandes villes comme Guanajuato, qui possède un réseau de tunnels secrets à explorer !", "9 Novembre 2021", "PC XOne", "Playground Games", "Xbox Game Studios", 6.5, 420, "Course Simulation Sport", "cover_forzahorizon5.png"); + Georges.ListePossedes.Add(ForzaHorizon); + Debug.WriteLine($"Nombre de jeux dans la Liste de Possédés: {Georges.ListePossedes.Count()}"); + Debug.WriteLine($"Nom du Jeu: {Georges.ListePossedes[0].Nom}"); + + Georges.ListePossedes.Remove(ForzaHorizon); + Debug.WriteLine($"Nombre de jeux dans la Liste de Possédés: {Georges.ListePossedes.Count()}"); + } + + public void RemoveFavoris() + { + Georges.ListePossedes.Remove(ForzaHorizon); + } + + public void RemovePossedes() + { + + } + } +} From 0ae0321814e9b6273cfb193eadff31ffbcb00e5d Mon Sep 17 00:00:00 2001 From: "remi.lavergne" Date: Wed, 7 Jun 2023 17:23:56 +0200 Subject: [PATCH 3/4] Ajout de tests sur Utilisateur --- Sources/GameAtlas/Tests/UtilisateurSimulation.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/Sources/GameAtlas/Tests/UtilisateurSimulation.cs b/Sources/GameAtlas/Tests/UtilisateurSimulation.cs index 49c65c6..a65bb37 100644 --- a/Sources/GameAtlas/Tests/UtilisateurSimulation.cs +++ b/Sources/GameAtlas/Tests/UtilisateurSimulation.cs @@ -40,15 +40,5 @@ namespace Tests Georges.ListePossedes.Remove(ForzaHorizon); Debug.WriteLine($"Nombre de jeux dans la Liste de Possédés: {Georges.ListePossedes.Count()}"); } - - public void RemoveFavoris() - { - Georges.ListePossedes.Remove(ForzaHorizon); - } - - public void RemovePossedes() - { - - } } } From 9d6c070d053ec137b10621d97924459229a53a39 Mon Sep 17 00:00:00 2001 From: "remi.lavergne" Date: Wed, 7 Jun 2023 17:31:30 +0200 Subject: [PATCH 4/4] [Fact] on Units Tests --- Sources/GameAtlas/Tests/UtilisateurSimulation.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sources/GameAtlas/Tests/UtilisateurSimulation.cs b/Sources/GameAtlas/Tests/UtilisateurSimulation.cs index a65bb37..cddd1d6 100644 --- a/Sources/GameAtlas/Tests/UtilisateurSimulation.cs +++ b/Sources/GameAtlas/Tests/UtilisateurSimulation.cs @@ -12,6 +12,7 @@ namespace Tests { readonly Utilisateur Georges = new Utilisateur("georges.gio@gmail.com", "GeoStorm", "Storm7!"); + [Fact] public void UserCheck() { Debug.WriteLine(Georges.Mail); @@ -19,6 +20,7 @@ namespace Tests Debug.WriteLine(Georges.EstAdmin); } + [Fact] public void ListeFavoris() { Jeu TheLastOfUs = new Jeu("The Last Of Us Part I", "Dans un monde dévasté où rôdent infectés et survivants endurcis, Joel, un protagoniste désabusé, est engagé pour faire sortir Ellie, 14 ans, d'une zone de quarantaine militaire. Mais ce qui devait être une simple mission de routine se transforme vite en un dangereux périple à travers le pays.", "28 Mars 2023", "PS5 PC", "Naughty Dog LLC", "PlayStation PC LLC", 8.5, 487, "Solo Action Aventure", "cover_lastofus1.png"); @@ -30,6 +32,7 @@ namespace Tests Debug.WriteLine($"Nombre de jeux dans la Liste des Favoris: {Georges.ListeFavoris.Count()}"); } + [Fact] public void ListePossedes() { Jeu ForzaHorizon = new Jeu("Forza Horizon 5", "Dans ce jeu, vous pouvez explorer une carte en monde ouvert vraiment massive, cinquante pour cent plus grande que la carte non négligeable de Forza Horizon 4. Faites la course avec divers véhicules à travers la caldeira d'un volcan, explorez les jungles et les forêts tropicales à la recherche de villes en ruines cachées, parcourez les plages de sable blanc, et passez devant des chutes d'eau, des montagnes enneigées et de grandes villes comme Guanajuato, qui possède un réseau de tunnels secrets à explorer !", "9 Novembre 2021", "PC XOne", "Playground Games", "Xbox Game Studios", 6.5, 420, "Course Simulation Sport", "cover_forzahorizon5.png");