Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/Prowlarr/commit/a6a7732cd5df129fa1eac68d285b67c922270fae
You should set ROOT_URL correctly, otherwise the web may not work correctly.
2 changed files with
53 additions and
8 deletions
@ -0,0 +1,45 @@
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Text ;
using FluentAssertions ;
using Newtonsoft.Json ;
using NUnit.Framework ;
using NzbDrone.Core.Download.Clients.Sabnzbd ;
namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests.JsonConvertersTests
{
[TestFixture]
public class SabnzbdQueueTimeConverterFixture
{
private const string QUERY =
"{0} status : 'Downloading', mb : 1000, filename : 'Droned.S01E01.Pilot.1080p.WEB-DL-DRONE', priority : 0, cat : 'tv', mbleft : 10, percentage : 90, nzo_id : 'sabnzbd_nzb12345', timeleft : '{1}' {2}" ;
[TestCase("0:0:1")]
[TestCase("0:0:0:1")]
public void valid_time_formats_should_be_parsed_correctly ( string time )
{
var thing = string . Format ( QUERY , "{" , time , "}" ) ;
var item = JsonConvert . DeserializeObject < SabnzbdQueueItem > ( thing ) ;
item . Timeleft . Should ( ) . Be ( new TimeSpan ( 0 , 0 , 1 ) ) ;
}
[TestCase("0:1")]
[TestCase("1")]
[TestCase("0:0:0:0:1")]
public void invalid_time_formats_should_throw_an_exception ( string time )
{
var thing = string . Format ( QUERY , "{" , time , "}" ) ;
Assert . That ( ( ) = > JsonConvert . DeserializeObject < SabnzbdQueueItem > ( thing ) , Throws . TypeOf < ArgumentException > ( ) ) ;
}
[TestCase("40:12:14")]
[TestCase("1:16:12:14")]
public void valid_time_formats_of_equal_value_should_be_parsed_the_same ( string time )
{
var thing = string . Format ( QUERY , "{" , time , "}" ) ;
var item = JsonConvert . DeserializeObject < SabnzbdQueueItem > ( thing ) ;
item . Timeleft . Should ( ) . Be ( new TimeSpan ( 40 , 12 , 14 ) ) ;
}
}
}
@ -14,17 +14,17 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd.JsonConverters
public override object ReadJson ( JsonReader reader , Type objectType , object existingValue , JsonSerializer serializer )
{
var split = reader . Value . ToString ( ) . Split ( ':' ) ;
var split = reader . Value . ToString ( ) . Split ( ':' ) .Select ( int . Parse ) . ToArray ( ) ;
if ( split . Count ( ) ! = 3 )
switch ( split . Count ( ) )
{
throw new ArgumentException ( "Expected 0:0:0 format, but received: " + reader . Value ) ;
case 4 :
return new TimeSpan ( split [ 0 ] * 24 + split [ 1 ] , split [ 2 ] , split [ 3 ] ) ;
case 3 :
return new TimeSpan ( split [ 0 ] , split [ 1 ] , split [ 2 ] ) ;
default :
throw new ArgumentException ( "Expected either 0:0:0:0 or 0:0:0 format, but received: " + reader . Value ) ;
}
return new TimeSpan ( int . Parse ( split [ 0 ] ) , // hours
int . Parse ( split [ 1 ] ) , // minutes
int . Parse ( split [ 2 ] ) // seconds
) ;
}
public override bool CanConvert ( Type objectType )