Add NotNull Empty and tests (#51)
This commit is contained in:
@@ -52,4 +52,13 @@ public static class NotNullExtensions
|
||||
}
|
||||
return obj.Value;
|
||||
}
|
||||
|
||||
public static IEnumerable<T> Empty<T>(this IEnumerable<T>? obj)
|
||||
{
|
||||
if (obj is null)
|
||||
{
|
||||
return Enumerable.Empty<T>();
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -358,6 +358,7 @@
|
||||
"Microsoft.NET.Test.Sdk": "[17.10.0, )",
|
||||
"NUnit": "[4.1.0, )",
|
||||
"NUnit3TestAdapter": "[4.5.0, )",
|
||||
"Shouldly": "[4.2.1, )",
|
||||
"Speckle.Core": "[1.0.0, )",
|
||||
"Speckle.Transports.Disk": "[1.0.0, )",
|
||||
"altcover": "[8.8.74, )"
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
using NUnit.Framework;
|
||||
using Shouldly;
|
||||
using Speckle.Core.Common;
|
||||
|
||||
namespace Speckle.Core.Tests.Unit.Common;
|
||||
|
||||
public class NotNullTests
|
||||
{
|
||||
[TestCase(null, 0)]
|
||||
[TestCase(new string[0], 0)]
|
||||
[TestCase(new[] { "yay" }, 1)]
|
||||
public void Empty(string[]? test, int length)
|
||||
{
|
||||
var list = NotNullExtensions.Empty(test).ToList();
|
||||
list.Count.ShouldBe(length);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void NotNullClass()
|
||||
{
|
||||
var t = NotNullExtensions.NotNull("test");
|
||||
t.ShouldNotBeNull().ShouldBe("test");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void NotNullStruct()
|
||||
{
|
||||
var t = NotNullExtensions.NotNull<int>(2);
|
||||
t.ShouldBe(2);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task NotNullClass_Task()
|
||||
{
|
||||
var t = await NotNullExtensions.NotNull(Task.FromResult<string?>("test"));
|
||||
t.ShouldNotBeNull().ShouldBe("test");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task NotNullStruct_Task()
|
||||
{
|
||||
var t = await NotNullExtensions.NotNull(Task.FromResult<int?>(2));
|
||||
t.ShouldBe(2);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void NotNullClass_Exception() =>
|
||||
Assert.Throws<ArgumentNullException>(() => NotNullExtensions.NotNull((string?)null));
|
||||
|
||||
[Test]
|
||||
public void NotNullStruct_Exception() =>
|
||||
Assert.Throws<ArgumentNullException>(() => NotNullExtensions.NotNull((int?)null));
|
||||
|
||||
[Test]
|
||||
public void NotNullClass_Task_Exception() =>
|
||||
Assert.ThrowsAsync<ArgumentNullException>(() => NotNullExtensions.NotNull(Task.FromResult((string?)null)));
|
||||
|
||||
[Test]
|
||||
public void NotNullStruct_Task_Exception() =>
|
||||
Assert.ThrowsAsync<ArgumentNullException>(() => NotNullExtensions.NotNull(Task.FromResult((int?)null)));
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
using NUnit.Framework;
|
||||
using NUnit.Framework;
|
||||
using Serilog.Context;
|
||||
using Serilog.Events;
|
||||
using Speckle.Core.Logging;
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" />
|
||||
<PackageReference Include="NUnit" />
|
||||
<PackageReference Include="NUnit3TestAdapter" />
|
||||
<PackageReference Include="Shouldly" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -52,12 +52,36 @@
|
||||
"resolved": "1.14.1",
|
||||
"contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ=="
|
||||
},
|
||||
"Shouldly": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.2.1, )",
|
||||
"resolved": "4.2.1",
|
||||
"contentHash": "dKAKiSuhLKqD2TXwLKtqNg1nwzJcIKOOMncZjk9LYe4W+h+SCftpWdxwR79YZUIHMH+3Vu9s0s0UHNrgICLwRQ==",
|
||||
"dependencies": {
|
||||
"DiffEngine": "11.3.0",
|
||||
"EmptyFiles": "4.4.0"
|
||||
}
|
||||
},
|
||||
"Speckle.InterfaceGenerator": {
|
||||
"type": "Direct",
|
||||
"requested": "[0.9.5, )",
|
||||
"resolved": "0.9.5",
|
||||
"contentHash": "oU/L7pN1R7q8KkbrpQ3WJnHirPHqn+9DEA7asOcUiggV5dzVg1A/VYs7GOSusD24njxXh03tE3a2oTLOjt3cVg=="
|
||||
},
|
||||
"DiffEngine": {
|
||||
"type": "Transitive",
|
||||
"resolved": "11.3.0",
|
||||
"contentHash": "k0ZgZqd09jLZQjR8FyQbSQE86Q7QZnjEzq1LPHtj1R2AoWO8sjV5x+jlSisL7NZAbUOI4y+7Bog8gkr9WIRBGw==",
|
||||
"dependencies": {
|
||||
"EmptyFiles": "4.4.0",
|
||||
"System.Management": "6.0.1"
|
||||
}
|
||||
},
|
||||
"EmptyFiles": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.4.0",
|
||||
"contentHash": "gwJEfIGS7FhykvtZoscwXj/XwW+mJY6UbAZk+qtLKFUGWC95kfKXnj8VkxsZQnWBxJemM/q664rGLN5nf+OHZw=="
|
||||
},
|
||||
"GraphQL.Client.Abstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.0.0",
|
||||
@@ -259,11 +283,24 @@
|
||||
"resolved": "4.5.0",
|
||||
"contentHash": "pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A=="
|
||||
},
|
||||
"System.CodeDom": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.0.0",
|
||||
"contentHash": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA=="
|
||||
},
|
||||
"System.ComponentModel.Annotations": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.5.0",
|
||||
"contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg=="
|
||||
},
|
||||
"System.Management": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.0.1",
|
||||
"contentHash": "10J1D0h/lioojphfJ4Fuh5ZUThT/xOVHdV9roGBittKKNP2PMjrvibEdbVTGZcPra1399Ja3tqIJLyQrc5Wmhg==",
|
||||
"dependencies": {
|
||||
"System.CodeDom": "6.0.0"
|
||||
}
|
||||
},
|
||||
"System.Memory": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.5.3",
|
||||
|
||||
Reference in New Issue
Block a user