Files
speckle-sharp-sdk/tests/Speckle.Sdk.Tests.Unit/Serialisation/ObjectModelDeprecationTests.cs
T
Jedd Morgan 00a6619cbe
.NET Build and Publish / build (push) Has been cancelled
feat(api)!: Add model permission checks and deprecate canPublish (#434)
* Add permission checks and deprecate canPublish

* Fix tests

* How's this

* make tests more reliable

* lets test this first

* test

* This should speed up unit tests

* skip slow tests

* I HATE flaky tests
2026-01-27 16:35:48 +00:00

49 lines
1.6 KiB
C#

using FluentAssertions;
using Speckle.Sdk.Host;
using Speckle.Sdk.Models;
using Speckle.Sdk.Serialisation.Deprecated;
namespace Speckle.Sdk.Tests.Unit.Serialisation
{
[Collection(nameof(RequiresTypeLoaderCollection))]
public class TypeLoaderTests
{
// Constructor replaces the [SetUp] functionality in NUnit
public TypeLoaderTests()
{
TypeLoader.ReInitialize(typeof(Base).Assembly, typeof(MySpeckleBase).Assembly);
}
[Fact] // Replaces [Test]
public void TestThatTypeWithoutAttributeFails()
{
// Record.Exception is the xUnit alternative of Assert.Throws
var exception = Record.Exception(() => TypeLoader.ParseType(typeof(string)));
exception.Should().NotBeNull(); // Shouldly assertion
exception.Should().BeOfType<InvalidOperationException>(); // Ensure it's the correct exception type
}
[Fact] // Replaces [Test]
public void TestThatTypeWithoutMultipleAttributes()
{
string destinationType = $"Speckle.Core.Serialisation.{nameof(MySpeckleBase)}";
var result = TypeLoader.GetAtomicType(destinationType);
result.Should().Be(typeof(MySpeckleBase)); // Shouldly assertion replaces Assert.That
destinationType = $"Speckle.Core.Serialisation.Deprecated.{nameof(MySpeckleBase)}";
result = TypeLoader.GetAtomicType(destinationType);
result.Should().Be(typeof(MySpeckleBase)); // Shouldly assertion replaces Assert.That
}
}
}
namespace Speckle.Sdk.Serialisation.Deprecated
{
[SpeckleType("Speckle.Core.Serialisation.MySpeckleBase")]
[DeprecatedSpeckleType("Speckle.Core.Serialisation.Deprecated.MySpeckleBase")]
public class MySpeckleBase : Base { }
}