mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-12 11:15:43 +02:00
TopLogs will now return the count pass in, reduced to 5000 from 7500 to prevent JsonSerialization issues when being sent to the grid.
Added tests for TopLogs and GetPagedLogs.
This commit is contained in:
parent
73fadac397
commit
070115a59a
@ -1,12 +1,17 @@
|
||||
// ReSharper disable RedundantUsingDirective
|
||||
using System;
|
||||
using System.Linq;
|
||||
using AutoMoq;
|
||||
using FizzWare.NBuilder;
|
||||
using FluentAssertions;
|
||||
using Moq;
|
||||
using NLog;
|
||||
using NLog.Config;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Core.Instrumentation;
|
||||
using NzbDrone.Core.Providers;
|
||||
using NzbDrone.Core.Repository;
|
||||
using NzbDrone.Core.Repository.Quality;
|
||||
using NzbDrone.Core.Test.Framework;
|
||||
|
||||
namespace NzbDrone.Core.Test
|
||||
@ -112,8 +117,6 @@ public void clearLog()
|
||||
provider.GetAllLogs().Should().HaveCount(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
[Test]
|
||||
public void write_log_exception()
|
||||
{
|
||||
@ -182,10 +185,6 @@ public void write_log_exception_no_message_should_use_exception_message()
|
||||
ExceptionVerification.ExcpectedErrors(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Test]
|
||||
public void null_string_as_arg_should_not_fail()
|
||||
{
|
||||
@ -198,5 +197,72 @@ public void null_string_as_arg_should_not_fail()
|
||||
epFile.Path.Should().BeNull();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void top_logs()
|
||||
{
|
||||
//Setup
|
||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||
var db = MockLib.GetEmptyDatabase();
|
||||
mocker.SetConstant(db);
|
||||
|
||||
var fakeLogs = Builder<Log>.CreateListOfSize(510)
|
||||
|
||||
.Build();
|
||||
|
||||
db.InsertMany(fakeLogs);
|
||||
|
||||
//Act
|
||||
var logs = mocker.Resolve<LogProvider>().TopLogs(500);
|
||||
|
||||
//Assert
|
||||
logs.Should().HaveCount(501);
|
||||
logs.Last().Message.Should().Be(
|
||||
"Number of logs currently shown: 500. More may exist, check 'All' to see everything");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void top_logs_less_than_number_wanted()
|
||||
{
|
||||
//Setup
|
||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||
var db = MockLib.GetEmptyDatabase();
|
||||
mocker.SetConstant(db);
|
||||
|
||||
var fakeLogs = Builder<Log>.CreateListOfSize(100)
|
||||
|
||||
.Build();
|
||||
|
||||
db.InsertMany(fakeLogs);
|
||||
|
||||
//Act
|
||||
var logs = mocker.Resolve<LogProvider>().TopLogs(500);
|
||||
|
||||
//Assert
|
||||
logs.Should().HaveCount(101);
|
||||
logs.Last().Message.Should().Be(
|
||||
"Number of logs currently shown: 100. More may exist, check 'All' to see everything");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void pagedLogs()
|
||||
{
|
||||
//Setup
|
||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||
var db = MockLib.GetEmptyDatabase();
|
||||
mocker.SetConstant(db);
|
||||
|
||||
var fakeLogs = Builder<Log>.CreateListOfSize(100)
|
||||
|
||||
.Build();
|
||||
|
||||
db.InsertMany(fakeLogs);
|
||||
|
||||
//Act
|
||||
var logs = mocker.Resolve<LogProvider>().GetPagedLogs(1, 50);
|
||||
|
||||
//Assert
|
||||
logs.Items.Should().HaveCount(50);
|
||||
logs.TotalItems.Should().Be(100);
|
||||
}
|
||||
}
|
||||
}
|
@ -22,15 +22,15 @@ public IList<Log> GetAllLogs()
|
||||
return _database.Fetch<Log>();
|
||||
}
|
||||
|
||||
public IList<Log> TopLogs()
|
||||
public IList<Log> TopLogs(int count)
|
||||
{
|
||||
var logs = _database.Fetch<Log>("SELECT TOP 7500 * FROM Logs ORDER BY Time Desc");
|
||||
var logs = _database.Fetch<Log>("SELECT TOP " + count + " * FROM Logs ORDER BY Time Desc");
|
||||
logs.Add(new Log
|
||||
{
|
||||
Time = DateTime.Now.AddYears(-100),
|
||||
Level = "Info",
|
||||
Logger = "NzbDrone.Core.Instrumentation.LogProvider",
|
||||
Message = String.Format("Number of logs currently shown: 7500. More may exist, check 'All' to see everything")
|
||||
Logger = "Core.Instrumentation.LogProvider",
|
||||
Message = String.Format("Number of logs currently shown: {0}. More may exist, check 'All' to see everything", Math.Min(count, logs.Count))
|
||||
});
|
||||
|
||||
return logs;
|
||||
|
@ -35,7 +35,7 @@ public JsonResult Clear()
|
||||
[GridAction]
|
||||
public ActionResult _TopAjaxBinding()
|
||||
{
|
||||
var logs = _logProvider.TopLogs();
|
||||
var logs = _logProvider.TopLogs(5000);
|
||||
|
||||
return View(new GridModel(logs));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user