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.
Readarr/NzbDrone.Core.Test/FluentTest.cs

169 lines
4.6 KiB

using System;
using System.IO;
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test
{
[TestFixture]
// ReSharper disable InconsistentNaming
public class FluentTest : TestBase
{
[TestCase(null, "def", "def")]
[TestCase("", "def", "def")]
[TestCase("", 1, "1")]
[TestCase(null, "", "")]
[TestCase("actual", "def", "actual")]
public void WithDefault_success(string actual, object defaultValue, string result)
{
actual.WithDefault(defaultValue).Should().Be(result);
}
[Test]
[ExpectedException(typeof(ArgumentNullException))]
public void WithDefault_Fail()
{
"test".WithDefault(null);
}
[Test]
public void ToBestDateTime_Yesterday()
{
var dateTime = DateTime.Today.AddDays(-1);
dateTime.ToBestDateString().Should().Be("Yesterday");
}
[Test]
public void ToBestDateTime_Today()
{
var dateTime = DateTime.Today;
dateTime.ToBestDateString().Should().Be("Today");
}
[Test]
public void ToBestDateTime_Tomorrow()
{
var dateTime = DateTime.Today.AddDays(1);
dateTime.ToBestDateString().Should().Be("Tomorrow");
}
[Test]
public void ToBestDateTime_DayOfWeek()
{
for (int i = 2; i < 7; i++)
{
var dateTime = DateTime.Today.AddDays(i);
Console.WriteLine(dateTime.DayOfWeek);
dateTime.ToBestDateString().Should().Be(dateTime.DayOfWeek.ToString());
}
}
[Test]
public void ToBestDateTime_Over_One_Week()
{
var dateTime = DateTime.Today.AddDays(8);
Console.WriteLine(dateTime.DayOfWeek);
dateTime.ToBestDateString().Should().Be(dateTime.ToShortDateString());
}
[Test]
public void ToBestDateTime_Before_Yesterday()
{
var dateTime = DateTime.Today.AddDays(-2);
Console.WriteLine(dateTime.DayOfWeek);
dateTime.ToBestDateString().Should().Be(dateTime.ToShortDateString());
}
[Test]
public void ParentUriString_should_return_self_if_already_parent()
{
//Setup
var url = "http://www.nzbdrone.com";
var uri = new Uri(url);
//Act
var result = uri.ParentUriString();
//Resolve
result.Should().Be(url);
}
[Test]
public void ParentUriString_should_return_parent_url_when_path_is_passed()
{
//Setup
var url = "http://www.nzbdrone.com/test/";
var uri = new Uri(url);
//Act
var result = uri.ParentUriString();
//Resolve
result.Should().Be("http://www.nzbdrone.com");
}
[Test]
public void ParentUriString_should_return_parent_url_when_multiple_paths_are_passed()
{
//Setup
var url = "http://www.nzbdrone.com/test/test2";
var uri = new Uri(url);
//Act
var result = uri.ParentUriString();
//Resolve
result.Should().Be("http://www.nzbdrone.com");
}
[Test]
public void ParentUriString_should_return_parent_url_when_url_with_query_string_is_passed()
{
//Setup
var url = "http://www.nzbdrone.com/test.aspx?test=10";
var uri = new Uri(url);
//Act
var result = uri.ParentUriString();
//Resolve
result.Should().Be("http://www.nzbdrone.com");
}
[Test]
public void ParentUriString_should_return_parent_url_when_url_with_path_and_query_strings_is_passed()
{
//Setup
var url = "http://www.nzbdrone.com/tester/test.aspx?test=10";
var uri = new Uri(url);
//Act
var result = uri.ParentUriString();
//Resolve
result.Should().Be("http://www.nzbdrone.com");
}
[Test]
public void ParentUriString_should_return_parent_url_when_url_with_query_strings_is_passed()
{
//Setup
var url = "http://www.nzbdrone.com/test.aspx?test=10&test2=5";
var uri = new Uri(url);
//Act
var result = uri.ParentUriString();
//Resolve
result.Should().Be("http://www.nzbdrone.com");
}
}
}