Refactor ShowAudience handling across the application to align with MPAA rating system. Update ShowAudience enum to reflect new ratings (G, PG, PG-13, R, NC-17) and adjust related data models, API types, and frontend components to support nullable audience values. Enhance metadata handling to incorporate content ratings from external sources, ensuring proper audience filtering in scheduling logic. Update documentation to clarify changes in audience categorization and its implications for content management.
This commit is contained in:
@@ -66,23 +66,23 @@ public class CandidateFilterTests
|
||||
[Fact]
|
||||
public void Audience_FiltersOutStricterContent()
|
||||
{
|
||||
var kids = Element(ShowAudience.Kids);
|
||||
var adult = Element(ShowAudience.Adult, position: 1);
|
||||
var forEveryone = Element(ShowAudience.G);
|
||||
var adult = Element(ShowAudience.Nc17, position: 1);
|
||||
|
||||
var pick = ElementSelector.Select(
|
||||
Slot([adult, kids], maxAudience: ShowAudience.Family),
|
||||
Slot([adult, forEveryone], maxAudience: ShowAudience.Pg),
|
||||
T0,
|
||||
new FirstAlways()
|
||||
);
|
||||
|
||||
Assert.NotNull(pick);
|
||||
Assert.Equal(kids.ElementId, pick.Element.ElementId);
|
||||
Assert.Equal(forEveryone.ElementId, pick.Element.ElementId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Audience_WithoutLimit_KeepsEverything()
|
||||
{
|
||||
var adult = Element(ShowAudience.Adult);
|
||||
var adult = Element(ShowAudience.Nc17);
|
||||
|
||||
var pick = ElementSelector.Select(Slot([adult]), T0, new FirstAlways());
|
||||
|
||||
@@ -91,13 +91,13 @@ public class CandidateFilterTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Audience_UnknownCategory_IsNotDropped()
|
||||
public void Audience_UnknownRating_IsNotDropped()
|
||||
{
|
||||
// Неизвестная категория — не повод выбрасывать: иначе контент исчезал бы из эфира молча.
|
||||
// Непроставленный рейтинг — не повод выбрасывать: иначе контент исчезал бы из эфира молча.
|
||||
var unknown = Element(audience: null);
|
||||
|
||||
var pick = ElementSelector.Select(
|
||||
Slot([unknown], maxAudience: ShowAudience.Kids),
|
||||
Slot([unknown], maxAudience: ShowAudience.G),
|
||||
T0,
|
||||
new FirstAlways()
|
||||
);
|
||||
@@ -110,7 +110,7 @@ public class CandidateFilterTests
|
||||
public void Audience_AllFilteredOut_ReturnsNothing()
|
||||
{
|
||||
var pick = ElementSelector.Select(
|
||||
Slot([Element(ShowAudience.Adult)], maxAudience: ShowAudience.Kids),
|
||||
Slot([Element(ShowAudience.Nc17)], maxAudience: ShowAudience.G),
|
||||
T0,
|
||||
new FirstAlways()
|
||||
);
|
||||
@@ -121,11 +121,11 @@ public class CandidateFilterTests
|
||||
[Fact]
|
||||
public void Audience_AppliesToSequentialStrategyToo()
|
||||
{
|
||||
var adult = Element(ShowAudience.Adult, position: 0);
|
||||
var teen = Element(ShowAudience.Teen, position: 1);
|
||||
var adult = Element(ShowAudience.Nc17, position: 0);
|
||||
var teen = Element(ShowAudience.Pg13, position: 1);
|
||||
|
||||
var pick = ElementSelector.Select(
|
||||
Slot([adult, teen], maxAudience: ShowAudience.Teen, strategy: SlotStrategyKind.Sequential),
|
||||
Slot([adult, teen], maxAudience: ShowAudience.Pg13, strategy: SlotStrategyKind.Sequential),
|
||||
T0,
|
||||
new FirstAlways()
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user