mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
291 lines
7.2 KiB
C#
291 lines
7.2 KiB
C#
// Kyoo - A portable and vast media library solution.
|
|
// Copyright (c) Kyoo.
|
|
//
|
|
// See AUTHORS.md and LICENSE file in the project root for full license information.
|
|
//
|
|
// Kyoo is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// any later version.
|
|
//
|
|
// Kyoo is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Kyoo. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Kyoo.Abstractions.Models;
|
|
using Kyoo.Postgresql;
|
|
|
|
namespace Kyoo.Tests
|
|
{
|
|
public static class TestSample
|
|
{
|
|
private static readonly Dictionary<Type, Func<object>> NewSamples =
|
|
new()
|
|
{
|
|
{
|
|
typeof(Collection),
|
|
() =>
|
|
new Collection
|
|
{
|
|
Id = 2.AsGuid(),
|
|
Slug = "new-collection",
|
|
Name = "New Collection",
|
|
Overview = "A collection created by new sample",
|
|
Thumbnail = new Image("thumbnail")
|
|
}
|
|
},
|
|
{
|
|
typeof(Show),
|
|
() =>
|
|
new Show
|
|
{
|
|
Id = 2.AsGuid(),
|
|
Slug = "new-show",
|
|
Name = "New Show",
|
|
Overview = "overview",
|
|
Status = Status.Planned,
|
|
StartAir = new DateTime(2011, 1, 1).ToUniversalTime(),
|
|
EndAir = new DateTime(2011, 1, 1).ToUniversalTime(),
|
|
Poster = new Image("Poster"),
|
|
Logo = new Image("Logo"),
|
|
Thumbnail = new Image("Thumbnail"),
|
|
Studio = null
|
|
}
|
|
},
|
|
{
|
|
typeof(Season),
|
|
() =>
|
|
new Season
|
|
{
|
|
Id = 2.AsGuid(),
|
|
ShowId = 1.AsGuid(),
|
|
ShowSlug = Get<Show>().Slug,
|
|
Name = "New season",
|
|
Overview = "New overview",
|
|
EndDate = new DateTime(2000, 10, 10).ToUniversalTime(),
|
|
SeasonNumber = 2,
|
|
StartDate = new DateTime(2010, 10, 10).ToUniversalTime(),
|
|
Logo = new Image("logo")
|
|
}
|
|
},
|
|
{
|
|
typeof(Episode),
|
|
() =>
|
|
new Episode
|
|
{
|
|
Id = 2.AsGuid(),
|
|
ShowId = 1.AsGuid(),
|
|
ShowSlug = Get<Show>().Slug,
|
|
SeasonId = 1.AsGuid(),
|
|
SeasonNumber = Get<Season>().SeasonNumber,
|
|
EpisodeNumber = 3,
|
|
AbsoluteNumber = 4,
|
|
Path = "/episode-path",
|
|
Name = "New Episode Title",
|
|
ReleaseDate = new DateTime(2000, 10, 10).ToUniversalTime(),
|
|
Overview = "new episode overview",
|
|
Logo = new Image("new episode logo")
|
|
}
|
|
},
|
|
{
|
|
typeof(People),
|
|
() =>
|
|
new People
|
|
{
|
|
Id = 2.AsGuid(),
|
|
Slug = "new-person-name",
|
|
Name = "New person name",
|
|
Logo = new Image("Old Logo"),
|
|
Poster = new Image("Old poster")
|
|
}
|
|
}
|
|
};
|
|
|
|
private static readonly Dictionary<Type, Func<object>> Samples =
|
|
new()
|
|
{
|
|
{
|
|
typeof(Collection),
|
|
() =>
|
|
new Collection
|
|
{
|
|
Id = 1.AsGuid(),
|
|
Slug = "collection",
|
|
Name = "Collection",
|
|
Overview = "A nice collection for tests",
|
|
Poster = new Image("Poster")
|
|
}
|
|
},
|
|
{
|
|
typeof(Show),
|
|
() =>
|
|
new Show
|
|
{
|
|
Id = 1.AsGuid(),
|
|
Slug = "anohana",
|
|
Name = "Anohana: The Flower We Saw That Day",
|
|
Aliases = new List<string>
|
|
{
|
|
"Ano Hi Mita Hana no Namae o Bokutachi wa Mada Shiranai.",
|
|
"AnoHana",
|
|
"We Still Don't Know the Name of the Flower We Saw That Day."
|
|
},
|
|
Overview =
|
|
"When Yadomi Jinta was a child, he was a central piece in a group of close friends. "
|
|
+ "In time, however, these childhood friends drifted apart, and when they became high "
|
|
+ "school students, they had long ceased to think of each other as friends.",
|
|
Status = Status.Finished,
|
|
StudioId = 1.AsGuid(),
|
|
StartAir = new DateTime(2011, 1, 1).ToUniversalTime(),
|
|
EndAir = new DateTime(2011, 1, 1).ToUniversalTime(),
|
|
Poster = new Image("Poster"),
|
|
Logo = new Image("Logo"),
|
|
Thumbnail = new Image("Thumbnail"),
|
|
Studio = null
|
|
}
|
|
},
|
|
{
|
|
typeof(Season),
|
|
() =>
|
|
new Season
|
|
{
|
|
Id = 1.AsGuid(),
|
|
ShowSlug = "anohana",
|
|
ShowId = 1.AsGuid(),
|
|
SeasonNumber = 1,
|
|
Name = "Season 1",
|
|
Overview = "The first season",
|
|
StartDate = new DateTime(2020, 06, 05).ToUniversalTime(),
|
|
EndDate = new DateTime(2020, 07, 05).ToUniversalTime(),
|
|
Poster = new Image("Poster"),
|
|
Logo = new Image("Logo"),
|
|
Thumbnail = new Image("Thumbnail")
|
|
}
|
|
},
|
|
{
|
|
typeof(Episode),
|
|
() =>
|
|
new Episode
|
|
{
|
|
Id = 1.AsGuid(),
|
|
ShowSlug = "anohana",
|
|
ShowId = 1.AsGuid(),
|
|
SeasonId = 1.AsGuid(),
|
|
SeasonNumber = 1,
|
|
EpisodeNumber = 1,
|
|
AbsoluteNumber = 1,
|
|
Path = "/home/kyoo/anohana-s1e1",
|
|
Poster = new Image("Poster"),
|
|
Logo = new Image("Logo"),
|
|
Thumbnail = new Image("Thumbnail"),
|
|
Name = "Episode 1",
|
|
Overview = "Summary of the first episode",
|
|
ReleaseDate = new DateTime(2020, 06, 05).ToUniversalTime()
|
|
}
|
|
},
|
|
{
|
|
typeof(People),
|
|
() =>
|
|
new People
|
|
{
|
|
Id = 1.AsGuid(),
|
|
Slug = "the-actor",
|
|
Name = "The Actor",
|
|
Poster = new Image("Poster"),
|
|
Logo = new Image("Logo"),
|
|
Thumbnail = new Image("Thumbnail")
|
|
}
|
|
},
|
|
{
|
|
typeof(Studio),
|
|
() =>
|
|
new Studio
|
|
{
|
|
Id = 1.AsGuid(),
|
|
Slug = "hyper-studio",
|
|
Name = "Hyper studio",
|
|
}
|
|
},
|
|
{
|
|
typeof(User),
|
|
() =>
|
|
new User
|
|
{
|
|
Id = 1.AsGuid(),
|
|
Slug = "user",
|
|
Username = "User",
|
|
Email = "user@im-a-user.com",
|
|
Password = "MD5-encoded",
|
|
Permissions = new[] { "overall.read" }
|
|
}
|
|
}
|
|
};
|
|
|
|
public static T Get<T>()
|
|
{
|
|
return (T)Samples[typeof(T)]();
|
|
}
|
|
|
|
public static T GetNew<T>()
|
|
{
|
|
return (T)NewSamples[typeof(T)]();
|
|
}
|
|
|
|
public static void FillDatabase(DatabaseContext context)
|
|
{
|
|
Collection collection = Get<Collection>();
|
|
context.Collections.Add(collection);
|
|
|
|
Show show = Get<Show>();
|
|
context.Shows.Add(show);
|
|
|
|
Season season = Get<Season>();
|
|
season.Show = show;
|
|
context.Seasons.Add(season);
|
|
|
|
Episode episode = Get<Episode>();
|
|
episode.Show = show;
|
|
episode.Season = season;
|
|
context.Episodes.Add(episode);
|
|
|
|
Studio studio = Get<Studio>();
|
|
studio.Shows = new List<Show> { show };
|
|
context.Studios.Add(studio);
|
|
|
|
People people = Get<People>();
|
|
// context.People.Add(people);
|
|
|
|
User user = Get<User>();
|
|
context.Users.Add(user);
|
|
|
|
context.SaveChanges();
|
|
}
|
|
|
|
public static Episode GetAbsoluteEpisode()
|
|
{
|
|
return new()
|
|
{
|
|
Id = 2.AsGuid(),
|
|
ShowSlug = "anohana",
|
|
ShowId = 1.AsGuid(),
|
|
SeasonNumber = null,
|
|
EpisodeNumber = null,
|
|
AbsoluteNumber = 3,
|
|
Path = "/home/kyoo/anohana-3",
|
|
Poster = new Image("Poster"),
|
|
Logo = new Image("Logo"),
|
|
Thumbnail = new Image("Thumbnail"),
|
|
Name = "Episode 3",
|
|
Overview = "Summary of the third absolute episode",
|
|
ReleaseDate = new DateTime(2020, 06, 05).ToUniversalTime()
|
|
};
|
|
}
|
|
}
|
|
}
|