mirror of
https://github.com/Radarr/Radarr.git
synced 2024-11-12 14:03:16 +01:00
Fixed: Don't save invalid scene mappings into database
This commit is contained in:
parent
65f1dbde00
commit
e40508e5e9
@ -10,6 +10,7 @@
|
|||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test.DataAugmentationFixture.Scene
|
namespace NzbDrone.Core.Test.DataAugmentationFixture.Scene
|
||||||
{
|
{
|
||||||
@ -134,6 +135,48 @@ public void should_not_refresh_cache_if_cache_is_not_empty_when_looking_for_tvdb
|
|||||||
.Verify(v => v.All(), Times.Once());
|
.Verify(v => v.All(), Times.Once());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_not_add_mapping_with_blank_parse_title()
|
||||||
|
{
|
||||||
|
GivenProviders(new[] { _provider1 });
|
||||||
|
|
||||||
|
var fakeMappings = Builder<SceneMapping>.CreateListOfSize(2)
|
||||||
|
.TheLast(1)
|
||||||
|
.With(m => m.ParseTerm = null)
|
||||||
|
.Build()
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
_provider1.Setup(s => s.GetSceneMappings()).Returns(fakeMappings);
|
||||||
|
|
||||||
|
Mocker.GetMock<ISceneMappingRepository>().Setup(c => c.All()).Returns(_fakeMappings);
|
||||||
|
|
||||||
|
Subject.Execute(new UpdateSceneMappingCommand());
|
||||||
|
|
||||||
|
Mocker.GetMock<ISceneMappingRepository>().Verify(c => c.InsertMany(It.Is<IList<SceneMapping>>(m => !m.Any(s => s.ParseTerm.IsNullOrWhiteSpace()))), Times.Once());
|
||||||
|
ExceptionVerification.ExpectedWarns(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_not_add_mapping_with_blank_search_title()
|
||||||
|
{
|
||||||
|
GivenProviders(new[] { _provider1 });
|
||||||
|
|
||||||
|
var fakeMappings = Builder<SceneMapping>.CreateListOfSize(2)
|
||||||
|
.TheLast(1)
|
||||||
|
.With(m => m.SearchTerm = null)
|
||||||
|
.Build()
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
_provider1.Setup(s => s.GetSceneMappings()).Returns(fakeMappings);
|
||||||
|
|
||||||
|
Mocker.GetMock<ISceneMappingRepository>().Setup(c => c.All()).Returns(_fakeMappings);
|
||||||
|
|
||||||
|
Subject.Execute(new UpdateSceneMappingCommand());
|
||||||
|
|
||||||
|
Mocker.GetMock<ISceneMappingRepository>().Verify(c => c.InsertMany(It.Is<IList<SceneMapping>>(m => !m.Any(s => s. SearchTerm.IsNullOrWhiteSpace()))), Times.Once());
|
||||||
|
ExceptionVerification.ExpectedWarns(1);
|
||||||
|
}
|
||||||
|
|
||||||
private void AssertNoUpdate()
|
private void AssertNoUpdate()
|
||||||
{
|
{
|
||||||
_provider1.Verify(c => c.GetSceneMappings(), Times.Once());
|
_provider1.Verify(c => c.GetSceneMappings(), Times.Once());
|
||||||
|
@ -114,6 +114,12 @@ private void UpdateMappings()
|
|||||||
|
|
||||||
foreach (var sceneMapping in mappings)
|
foreach (var sceneMapping in mappings)
|
||||||
{
|
{
|
||||||
|
if (sceneMapping.ParseTerm.IsNullOrWhiteSpace() ||
|
||||||
|
sceneMapping.SearchTerm.IsNullOrWhiteSpace())
|
||||||
|
{
|
||||||
|
_logger.Warn("Invalid scene mapping found for: {0}, skipping", sceneMapping.TvdbId);
|
||||||
|
}
|
||||||
|
|
||||||
sceneMapping.ParseTerm = sceneMapping.Title.CleanSeriesTitle();
|
sceneMapping.ParseTerm = sceneMapping.Title.CleanSeriesTitle();
|
||||||
sceneMapping.Type = sceneMappingProvider.GetType().Name;
|
sceneMapping.Type = sceneMappingProvider.GetType().Name;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user