You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.4 KiB
104 lines
3.4 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using FluentAssertions;
|
|
using NUnit.Framework;
|
|
using NzbDrone.Common.Serializer;
|
|
using NzbDrone.Core.Datastore.Migration;
|
|
using NzbDrone.Core.Datastore.Migration.Framework;
|
|
using NzbDrone.Core.Test.Framework;
|
|
|
|
namespace NzbDrone.Core.Test.Datastore.Migration
|
|
{
|
|
[TestFixture]
|
|
public class history_downloadIdFixture : MigrationTest<history_downloadId>
|
|
{
|
|
[Test]
|
|
public void should_move_grab_id_from_date_to_columns()
|
|
{
|
|
var db = WithMigrationTestDb(c =>
|
|
{
|
|
InsertHistory(c, new Dictionary<string, string>
|
|
{
|
|
{ "indexer", "test" },
|
|
{ "downloadClientId", "123" }
|
|
});
|
|
|
|
InsertHistory(c, new Dictionary<string, string>
|
|
{
|
|
{ "indexer", "test" },
|
|
{ "downloadClientId", "abc" }
|
|
});
|
|
});
|
|
|
|
var history = db.Query<History72>("SELECT \"DownloadId\", \"Data\" FROM \"History\"");
|
|
|
|
history.Should().HaveCount(2);
|
|
history.Should().NotContain(c => c.Data.ContainsKey("downloadClientId"));
|
|
history.Should().Contain(c => c.DownloadId == "123");
|
|
history.Should().Contain(c => c.DownloadId == "abc");
|
|
}
|
|
|
|
[Test]
|
|
public void should_leave_items_with_no_grabid()
|
|
{
|
|
var db = WithMigrationTestDb(c =>
|
|
{
|
|
InsertHistory(c, new Dictionary<string, string>
|
|
{
|
|
{ "indexer", "test" },
|
|
{ "downloadClientId", "123" }
|
|
});
|
|
|
|
InsertHistory(c, new Dictionary<string, string>
|
|
{
|
|
{ "indexer", "test" }
|
|
});
|
|
});
|
|
|
|
var history = db.Query<History72>("SELECT \"DownloadId\", \"Data\" FROM \"History\"");
|
|
|
|
history.Should().HaveCount(2);
|
|
history.Should().NotContain(c => c.Data.ContainsKey("downloadClientId"));
|
|
history.Should().Contain(c => c.DownloadId == "123");
|
|
history.Should().Contain(c => c.DownloadId == null);
|
|
}
|
|
|
|
[Test]
|
|
public void should_leave_other_data()
|
|
{
|
|
var db = WithMigrationTestDb(c =>
|
|
{
|
|
InsertHistory(c, new Dictionary<string, string>
|
|
{
|
|
{ "indexer", "test" },
|
|
{ "group", "test2" },
|
|
{ "downloadClientId", "123" }
|
|
});
|
|
});
|
|
|
|
var history = db.Query<History72>("SELECT \"DownloadId\", \"Data\" FROM \"History\"").Single();
|
|
|
|
history.Data.Should().NotContainKey("downloadClientId");
|
|
history.Data.Should().Contain(new KeyValuePair<string, string>("indexer", "test"));
|
|
history.Data.Should().Contain(new KeyValuePair<string, string>("group", "test2"));
|
|
|
|
history.DownloadId.Should().Be("123");
|
|
}
|
|
|
|
private void InsertHistory(NzbDroneMigrationBase migration, Dictionary<string, string> data)
|
|
{
|
|
migration.Insert.IntoTable("History").Row(new
|
|
{
|
|
EpisodeId = 1,
|
|
SeriesId = 1,
|
|
SourceTitle = "Test",
|
|
Date = DateTime.Now,
|
|
Quality = "{}",
|
|
Data = data.ToJson(),
|
|
EventType = 1
|
|
});
|
|
}
|
|
}
|
|
}
|