Lidarr/src/NzbDrone.Core.Test/FluentTest.cs

205 lines
5.0 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Text;
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Core.Test.Framework;
using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test
{
[TestFixture]
2013-03-28 22:07:09 +00:00
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]
public void WithDefault_Fail()
{
Assert.Throws<ArgumentNullException>(() => "test".WithDefault(null));
ExceptionVerification.IgnoreWarns();
}
2011-09-28 17:12:53 +00:00
[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");
}
2011-09-28 17:12:53 +00:00
[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 MaxOrDefault_should_return_zero_when_collection_is_empty()
{
2013-03-28 22:07:09 +00:00
2013-03-28 22:07:09 +00:00
var result = (new List<int>()).MaxOrDefault();
//Resolve
result.Should().Be(0);
}
[Test]
public void MaxOrDefault_should_return_max_when_collection_is_not_empty()
{
2013-03-28 22:07:09 +00:00
var list = new List<int> { 6, 4, 5, 3, 8, 10 };
2013-03-28 22:07:09 +00:00
var result = list.MaxOrDefault();
//Resolve
result.Should().Be(10);
}
[Test]
public void MaxOrDefault_should_return_zero_when_collection_is_null()
{
2013-03-28 22:07:09 +00:00
List<int> list = null;
2013-03-28 22:07:09 +00:00
var result = list.MaxOrDefault();
//Resolve
result.Should().Be(0);
}
[Test]
public void Truncate_should_truncate_strings_to_max_specified_number_of_bytes()
{
2013-03-28 22:07:09 +00:00
var str = ReadAllText("Files/LongOverview.txt");
2013-03-28 22:07:09 +00:00
var resultString = str.Truncate(1000);
//Resolve
var result = new UTF8Encoding().GetBytes(resultString);
result.Length.Should().BeLessOrEqualTo(1000);
}
[Test]
public void Truncate_should_not_truncate_string_shorter_than_max_bytes()
{
2013-03-28 22:07:09 +00:00
var str = "Hello World";
2013-03-28 22:07:09 +00:00
var resultString = str.Truncate(1000);
//Resolve
var result = new UTF8Encoding().GetBytes(resultString);
result.Length.Should().Be(11);
}
[Test]
public void MinOrDefault_should_return_zero_when_collection_is_empty()
{
2013-03-28 22:07:09 +00:00
2013-03-28 22:07:09 +00:00
var result = (new List<int>()).MinOrDefault();
//Resolve
result.Should().Be(0);
}
[Test]
public void MinOrDefault_should_return_min_when_collection_is_not_empty()
{
2013-03-28 22:07:09 +00:00
var list = new List<int> { 6, 4, 5, 3, 8, 10 };
2013-03-28 22:07:09 +00:00
var result = list.MinOrDefault();
//Resolve
result.Should().Be(3);
}
[Test]
public void MinOrDefault_should_return_zero_when_collection_is_null()
{
2013-03-28 22:07:09 +00:00
List<int> list = null;
2013-03-28 22:07:09 +00:00
var result = list.MinOrDefault();
//Resolve
result.Should().Be(0);
}
[TestCase(100,100,100)]
[TestCase(110,100,100)]
[TestCase(199,100,100)]
[TestCase(1000,100,1000)]
[TestCase(0,100,0)]
public void round_to_level(long number, int level, int result)
{
number.Round(level).Should().Be(result);
}
}
}