mirror of
https://github.com/Radarr/Radarr
synced 2024-12-24 17:01:38 +00:00
fix bug where info update from tvdb would overwrite our own data, fileid, date flags ...
This commit is contained in:
parent
5faeccf098
commit
c8252495af
2 changed files with 50 additions and 2 deletions
|
@ -4,6 +4,7 @@
|
||||||
using FizzWare.NBuilder;
|
using FizzWare.NBuilder;
|
||||||
using MbUnit.Framework;
|
using MbUnit.Framework;
|
||||||
using Moq;
|
using Moq;
|
||||||
|
using Moq.Linq;
|
||||||
using NzbDrone.Core.Providers;
|
using NzbDrone.Core.Providers;
|
||||||
using NzbDrone.Core.Providers.Core;
|
using NzbDrone.Core.Providers.Core;
|
||||||
using NzbDrone.Core.Repository;
|
using NzbDrone.Core.Repository;
|
||||||
|
@ -125,6 +126,47 @@ public void import_new_daily_file()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
[Description("Verifies that a new file imported properly")]
|
||||||
|
public void import_existing_season_file()
|
||||||
|
{
|
||||||
|
//Arrange
|
||||||
|
/////////////////////////////////////////
|
||||||
|
|
||||||
|
//Constants
|
||||||
|
const string fileName = @"WEEDS.S03E01.DUAL.BDRip.XviD.AC3.-HELLYWOOD.avi";
|
||||||
|
const int seasonNumber = 3;
|
||||||
|
const int episodeNumner = 1;
|
||||||
|
const int size = 12345;
|
||||||
|
|
||||||
|
//Fakes
|
||||||
|
var fakeSeries = Builder<Series>.CreateNew().Build();
|
||||||
|
var fakeEpisode = Builder<Episode>.CreateNew()
|
||||||
|
.With(c => c.SeriesId = fakeSeries.SeriesId)
|
||||||
|
.With(c => c.EpisodeFileId = 12).Build();
|
||||||
|
|
||||||
|
//Mocks
|
||||||
|
var mocker = new AutoMoqer();
|
||||||
|
|
||||||
|
mocker.GetMock<IRepository>(MockBehavior.Strict)
|
||||||
|
.Setup(r => r.Exists(It.IsAny<Expression<Func<EpisodeFile, Boolean>>>())).Returns(true).Verifiable();
|
||||||
|
|
||||||
|
//mocker.GetMock<EpisodeProvider>()
|
||||||
|
// .Setup(e => e.GetEpisode(fakeSeries.SeriesId, seasonNumber, episodeNumner)).Returns(fakeEpisode)
|
||||||
|
// .Verifiable();
|
||||||
|
|
||||||
|
mocker.GetMock<DiskProvider>()
|
||||||
|
.Setup(e => e.GetSize(fileName)).Returns(size).Verifiable();
|
||||||
|
|
||||||
|
|
||||||
|
//Act
|
||||||
|
var result = mocker.Resolve<MediaFileProvider>().ImportFile(fakeSeries, fileName);
|
||||||
|
|
||||||
|
//Assert
|
||||||
|
mocker.VerifyAllMocks();
|
||||||
|
Assert.IsNull(result);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
[Description("Verifies that a new file imported properly")]
|
[Description("Verifies that a new file imported properly")]
|
||||||
public void import_sample_file()
|
public void import_sample_file()
|
||||||
|
@ -161,7 +203,7 @@ public void import_sample_file()
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Assert.IsNull(result);
|
Assert.IsNull(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
[Description("Verifies that an existing file will skip import")]
|
[Description("Verifies that an existing file will skip import")]
|
||||||
|
|
|
@ -183,14 +183,20 @@ public virtual void RefreshEpisodeInfo(int seriesId)
|
||||||
SeasonId = episode.SeasonId,
|
SeasonId = episode.SeasonId,
|
||||||
SeasonNumber = episode.SeasonNumber,
|
SeasonNumber = episode.SeasonNumber,
|
||||||
SeriesId = seriesId,
|
SeriesId = seriesId,
|
||||||
Title = episode.EpisodeName
|
Title = episode.EpisodeName,
|
||||||
|
LastInfoSync = DateTime.Now
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var existingEpisode = GetEpisode(episode.SeriesId, episode.SeasonNumber, episode.EpisodeNumber);
|
var existingEpisode = GetEpisode(episode.SeriesId, episode.SeasonNumber, episode.EpisodeNumber);
|
||||||
|
|
||||||
if (existingEpisode != null)
|
if (existingEpisode != null)
|
||||||
{
|
{
|
||||||
|
//TODO: Write test for this, possibly make it future proof, we should only copy fields that come from tvdb
|
||||||
newEpisode.EpisodeId = existingEpisode.EpisodeId;
|
newEpisode.EpisodeId = existingEpisode.EpisodeId;
|
||||||
|
newEpisode.EpisodeFileId = existingEpisode.EpisodeFileId;
|
||||||
|
newEpisode.LastDiskSync = existingEpisode.LastDiskSync;
|
||||||
|
newEpisode.Status = existingEpisode.Status;
|
||||||
updateList.Add(newEpisode);
|
updateList.Add(newEpisode);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue