1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-10-30 23:42:33 +01:00
Sonarr/NzbDrone.Core.Test/FluentTest.cs

196 lines
5.2 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test
{
[TestFixture]
// ReSharper disable InconsistentNaming
public class FluentTest : CoreTest
{
[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");
}
[Test]
public void MaxOrDefault_should_return_zero_when_collection_is_empty()
{
//Setup
//Act
var result = (new List<int>()).MaxOrDefault();
//Resolve
result.Should().Be(0);
}
[Test]
public void MaxOrDefault_should_return_max_when_collection_is_not_empty()
{
//Setup
var list = new List<int> {6, 4, 5, 3, 8, 10};
//Act
var result = list.MaxOrDefault();
//Resolve
result.Should().Be(10);
}
}
}