1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System;
- using Xunit;
- namespace Jellyfin.Extensions.Tests
- {
- public class TypeExtensionsTests
- {
- [Theory]
- [InlineData(typeof(byte), byte.MaxValue, false)]
- [InlineData(typeof(short), short.MinValue, false)]
- [InlineData(typeof(ushort), ushort.MaxValue, false)]
- [InlineData(typeof(int), int.MinValue, false)]
- [InlineData(typeof(uint), uint.MaxValue, false)]
- [InlineData(typeof(long), long.MinValue, false)]
- [InlineData(typeof(ulong), ulong.MaxValue, false)]
- [InlineData(typeof(decimal), -1.0, false)]
- [InlineData(typeof(bool), true, false)]
- [InlineData(typeof(char), 'a', false)]
- [InlineData(typeof(string), "", false)]
- [InlineData(typeof(object), 1, false)]
- [InlineData(typeof(byte), 0, true)]
- [InlineData(typeof(short), 0, true)]
- [InlineData(typeof(ushort), 0, true)]
- [InlineData(typeof(int), 0, true)]
- [InlineData(typeof(uint), 0, true)]
- [InlineData(typeof(long), 0, true)]
- [InlineData(typeof(ulong), 0, true)]
- [InlineData(typeof(decimal), 0, true)]
- [InlineData(typeof(bool), false, true)]
- [InlineData(typeof(char), '\x0000', true)]
- [InlineData(typeof(string), null, true)]
- [InlineData(typeof(object), null, true)]
- [InlineData(typeof(PhonyClass), null, true)]
- [InlineData(typeof(DateTime), null, true)] // Special case handled within the test.
- [InlineData(typeof(DateTime), null, false)] // Special case handled within the test.
- [InlineData(typeof(byte?), null, true)]
- [InlineData(typeof(short?), null, true)]
- [InlineData(typeof(ushort?), null, true)]
- [InlineData(typeof(int?), null, true)]
- [InlineData(typeof(uint?), null, true)]
- [InlineData(typeof(long?), null, true)]
- [InlineData(typeof(ulong?), null, true)]
- [InlineData(typeof(decimal?), null, true)]
- [InlineData(typeof(bool?), null, true)]
- [InlineData(typeof(char?), null, true)]
- public void IsNullOrDefault_Matches_Expected(Type type, object? value, bool expectedResult)
- {
- if (type == typeof(DateTime))
- {
- if (expectedResult)
- {
- value = default(DateTime);
- }
- else
- {
- value = DateTime.Now;
- }
- }
- Assert.Equal(expectedResult, type.IsNullOrDefault(value));
- Assert.Equal(expectedResult, value.IsNullOrDefault());
- }
- private class PhonyClass
- {
- }
- }
- }
|