Compare commits

..

5 Commits

Author SHA1 Message Date
Corentin LEMAIRE d505218ba0 Finish Functional tests
continuous-integration/drone/push Build is passing Details
2 years ago
Corentin LEMAIRE b38105a287 Fix Update Manager UT
continuous-integration/drone/push Build is passing Details
2 years ago
Corentin LEMAIRE d75773c01a Merge branch 'master' of https://codefirst.iut.uca.fr/git/corentin.lemaire/Linaris_MAUI_SAE_201
continuous-integration/drone/push Build is passing Details
2 years ago
Corentin LEMAIRE e0c161dc02 Add Serialization method when a music is add
2 years ago
Corentin LEMAIRE 33b6be1bf6 Mise à jour de 'README.md'
continuous-integration/drone/push Build was killed Details
2 years ago

@ -50,17 +50,15 @@ You can find all the documentation [here](https://codefirst.iut.uca.fr/git/coren
### Cross-platform
- Playing music reset when a page change
- Publish doesn't work with Visual Studio Interface. You must use command lines.
### Android
- Cut custom titles display in a playlist
- Footer not aestetic
- Footer controls too hard to find
- In Debug, System.IO.FileNotFoundException is thrown 3 times before the launch of Linaris.
### Windows
- The Layout doesn't disappear as the screen is shrinking
- Sometimes, when the app launches, no images load, and you can't do anything. You must restart the application.
## Complex features

@ -29,6 +29,8 @@ namespace Console
public void FonctionalTests()
{
// Playlist system
Manager.AddPlaylist(new Playlist("MegaTeuf", "DescPlaylist", "ImagePlaylist"));
System.Console.WriteLine(Current?.Name);
@ -54,6 +56,8 @@ namespace Console
Previous(10);
// Serialization
Manager.LoadSerialization();
DisplaySerialization(Manager.GetPlaylists());
@ -64,13 +68,32 @@ namespace Console
Artist newArtist = new();
Manager.AddArtist(newArtist);
Manager.AddAlbum(new Album("Nouvel album", "nouveau.png", newArtist, "nouvelle desc", "nouvelles infos"));
Album album = new("Nouvel album", "nouveau.png", newArtist, "nouvelle desc", "nouvelles infos");
Manager.AddAlbum(album);
Separator();
DisplaySerialization(Manager.GetAlbums());
Manager.SaveSerialization();
Manager.LoadSerialization();
DisplaySerialization(Manager.GetPlaylists());
DisplaySerialization(Manager.GetAlbums());
DisplaySerialization(Manager.GetArtists());
DisplaySerialization(Manager.GetCustomTitles());
DisplaySerialization(Manager.GetInfoTitles());
Manager.RemoveAlbum(album);
Manager.SaveSerialization();
Manager.LoadSerialization();
DisplaySerialization(Manager.GetPlaylists());
DisplaySerialization(Manager.GetAlbums());
DisplaySerialization(Manager.GetArtists());
DisplaySerialization(Manager.GetCustomTitles());
DisplaySerialization(Manager.GetInfoTitles());
}
public void Next(int n)

@ -107,6 +107,7 @@ public partial class LocalFilesPage : ContentPage
}
}
}
(Application.Current as App).Manager.SaveSerialization();
}
async void AddToPlaylist(object sender, EventArgs e)
@ -123,6 +124,7 @@ public partial class LocalFilesPage : ContentPage
return;
}
playlist.AddTitle(customTitle);
(Application.Current as App).Manager.SaveSerialization();
ResetAll(sender, e);
}
}
@ -133,7 +135,7 @@ public partial class LocalFilesPage : ContentPage
{
if (sender is Entry entry)
{
Playlist playlist = new Playlist(entry.Text, "", "none.png");
Playlist playlist = new(entry.Text, "", "none.png");
if (!IsInPlaylists(playlist))
{
(Application.Current as App).Manager.AddPlaylist(playlist);
@ -160,6 +162,7 @@ public partial class LocalFilesPage : ContentPage
customTitles.Remove(titleToRemove);
File.Delete(titleToRemove.Path);
(Application.Current as App).Manager.RemoveCustomTitleFromPlaylists(titleToRemove);
(Application.Current as App).Manager.SaveSerialization();
}
}
}

@ -116,10 +116,6 @@ namespace TestUnitaires
}
[Theory]
[InlineData("nom", "url2.png", "artist", "desc", "info", Genre.POP, "path.mp3")]
[InlineData("nom", "url2.png", "", "desc", "info", Genre.POP, "path.mp3")]
[InlineData("nom", "url2.png", "artist", "", "info", Genre.POP, "path.mp3")]
[InlineData("nom", "url2.png", "artist", "desc", "", Genre.POP, "path.mp3")]
[InlineData("nom", "url2.png", "artist", "desc", "", Genre.POP, "")]
public void TU_Update(string nom, string url, string artistName, string description, string info, Genre genre, string path)
{
@ -138,95 +134,89 @@ namespace TestUnitaires
Playlist playlist = new("nom1", "desc", "img1.png");
Playlist playlist2 = new("nom2", "desc", "img2.png");
try
{
Manager m = new(new LinqXmlSerialization(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Data")));
Manager m = new(new LinqXmlSerialization(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Data")));
m.AddAlbum(album);
m.AddAlbum(album2);
m.AddArtist(artist);
m.AddArtist(artist2);
m.AddInfoTitle(infoTitle);
m.AddInfoTitle(infoTitle2);
m.AddCustomTitle(customTitle);
m.AddCustomTitle(customTitle2);
m.AddPlaylist(playlist);
m.AddPlaylist(playlist2);
Manager.UpdateAlbum(album, nom, url, new Artist(artistName), description, info);
m.UpdateAlbumByName(album2.Name, nom, url, new Artist(artistName), description, info);
Manager.UpdateArtist(artist, nom);
m.UpdateArtistByName(artist2.Name, nom);
Manager.UpdateInfoTitle(infoTitle, nom, url, info, new Artist(artistName), description, genre);
m.UpdateInfoTitleByName(infoTitle2.Name, nom, url, info, new Artist(artistName), description, genre);
Manager.UpdateCustomTitle(customTitle, nom, url, info, path);
m.UpdateCustomTitleByPath(customTitle2.Path, nom, url, info, path);
Manager.UpdatePlaylist(playlist, nom, description, url);
m.UpdatePlaylistByName(playlist2.Name, nom, description, url);
List<Album> albums = new()
{
album, album2
};
List<Artist> artists = new()
{
artist, artist2
};
List<InfoTitle> infoTitles = new()
{
infoTitle, infoTitle2
};
List<CustomTitle> customTitles = new()
{
customTitle, customTitle2
};
List<Playlist> playlists = new()
{
playlist, playlist2
};
foreach (Album a in albums)
{
Assert.Equal(nom, a.Name);
Assert.Equal(url, a.ImageURL);
Assert.Equal(artistName, a.Artist.Name);
Assert.Equal(description, a.Description);
Assert.Equal(info, a.Information);
}
foreach (Artist a in artists)
{
Assert.Equal(nom, a.Name);
}
foreach (InfoTitle it in infoTitles)
{
Assert.Equal(nom, it.Name);
Assert.Equal(url, it.ImageURL);
Assert.Equal(description, it.Description);
Assert.Equal(info, it.Information);
Assert.Equal(genre, it.Genre);
}
foreach (CustomTitle ct in customTitles)
{
Assert.Equal(nom, ct.Name);
Assert.Equal(url, ct.ImageURL);
Assert.Equal(info, ct.Information);
Assert.Equal(path, ct.Path);
}
foreach (Playlist p in playlists)
{
Assert.Equal(nom, p.Name);
Assert.Equal(description, p.Description);
Assert.Equal(url, p.ImageURL);
}
}
catch
m.AddAlbum(album);
m.AddAlbum(album2);
m.AddArtist(artist);
m.AddArtist(artist2);
m.AddInfoTitle(infoTitle);
m.AddInfoTitle(infoTitle2);
m.AddCustomTitle(customTitle);
m.AddCustomTitle(customTitle2);
m.AddPlaylist(playlist);
m.AddPlaylist(playlist2);
Manager.UpdateAlbum(album, nom, url, new Artist(artistName), description, info);
m.UpdateAlbumByName(album2.Name, nom, url, new Artist(artistName), description, info);
Manager.UpdateArtist(artist, nom);
m.UpdateArtistByName(artist2.Name, nom);
Manager.UpdateInfoTitle(infoTitle, nom, url, info, new Artist(artistName), description, genre);
m.UpdateInfoTitleByName(infoTitle2.Name, nom, url, info, new Artist(artistName), description, genre);
Manager.UpdateCustomTitle(customTitle, nom, url, info, path);
m.UpdateCustomTitleByPath(customTitle2.Path, nom, url, info, path);
Manager.UpdatePlaylist(playlist, nom, description, url);
m.UpdatePlaylistByName(playlist2.Name, nom, description, url);
List<Album> albums = new()
{
album, album2
};
List<Artist> artists = new()
{
artist, artist2
};
List<InfoTitle> infoTitles = new()
{
infoTitle, infoTitle2
};
List<CustomTitle> customTitles = new()
{
customTitle, customTitle2
};
List<Playlist> playlists = new()
{
playlist, playlist2
};
foreach (Album a in albums)
{
Assert.Equal(nom, a.Name);
Assert.Equal(url, a.ImageURL);
Assert.Equal(artistName, a.Artist.Name);
Assert.Equal(description, a.Description);
Assert.Equal(info, a.Information);
}
foreach (Artist a in artists)
{
Assert.Equal(nom, a.Name);
}
foreach (InfoTitle it in infoTitles)
{
Assert.Equal(nom, it.Name);
Assert.Equal(url, it.ImageURL);
Assert.Equal(description, it.Description);
Assert.Equal(info, it.Information);
Assert.Equal(genre, it.Genre);
}
foreach (CustomTitle ct in customTitles)
{
Assert.Equal(nom, ct.Name);
Assert.Equal(url, ct.ImageURL);
Assert.Equal(info, ct.Information);
Assert.Equal(path, ct.Path);
}
foreach (Playlist p in playlists)
{
Assert.Equal(nom, p.Name);
Assert.Equal(description, p.Description);
Assert.Equal(url, p.ImageURL);
}
}
}

Loading…
Cancel
Save