Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .nuget/nuget.exe
Binary file not shown.
1 change: 1 addition & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageVersion Include="NSubstitute" Version="5.0.0" />
<PackageVersion Include="Testcontainers" Version="2.3.0" />
<PackageVersion Include="TUnit" Version="0.4.105" />
<PackageVersion Include="xunit.v3" Version="1.0.0" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.0" />
</ItemGroup>
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="MSTest.Sdk/3.6.1">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
Expand All @@ -19,16 +19,16 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="coverlet.collector" />
<PackageReference Include="TUnit" />
<PackageReference Include="coverlet.collector">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\MagicOnion.Client\MagicOnion.Client.csproj" />
<ProjectReference Include="..\..\src\MagicOnion.Client.SourceGenerator\MagicOnion.Client.SourceGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
</ItemGroup>

<ItemGroup>
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
</ItemGroup>

</Project>
61 changes: 30 additions & 31 deletions tests/MagicOnion.Client.NativeAot.Tests/ResolverTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
namespace MagicOnion.Client.NativeAot.Tests;

// NOTE: This test uses a Resolver that contains code corresponding to the arguments and return values of IUnaryTestService.
[TestClass]
public sealed class ResolverTest
{
static ResolverTest()
Expand All @@ -13,8 +12,8 @@ static ResolverTest()
_ = typeof(MessagePack.GeneratedMessagePackResolver).GetFields();
}

[TestMethod]
public void MyObject()
[Test]
public async Task MyObject()
{
// Arrange
var options = MessagePackSerializerOptions.Standard.WithResolver(CompositeResolver.Create(MagicOnionClientGeneratedInitializer.Resolver, StandardResolver.Instance));
Expand All @@ -27,12 +26,12 @@ public void MyObject()
writer.Flush();

// Assert
Assert.IsNotNull(formatter);
Assert.AreEqual("0x91, 0xcd, 0x30, 0x39", string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}")));
await Assert.That(formatter).IsNotNull();
await Assert.That(string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}"))).IsEqualTo("0x91, 0xcd, 0x30, 0x39");
}

[TestMethod]
public void DynamicArgumentTuple()
[Test]
public async Task DynamicArgumentTuple()
{
// Arrange
var options = MessagePackSerializerOptions.Standard.WithResolver(CompositeResolver.Create(MagicOnionClientGeneratedInitializer.Resolver, StandardResolver.Instance));
Expand All @@ -45,12 +44,12 @@ public void DynamicArgumentTuple()
writer.Flush();

// Assert
Assert.IsNotNull(formatter);
Assert.AreEqual("0x92, 0xcd, 0x30, 0x39, 0xac, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21", string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}")));
await Assert.That(formatter).IsNotNull();
await Assert.That(string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}"))).IsEqualTo("0x92, 0xcd, 0x30, 0x39, 0xac, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21");
}

//[TestMethod]
//public void DynamicArgumentTuple_Unknown()
//[Test]
//public async Task DynamicArgumentTuple_Unknown()
//{
// // Arrange
// var options = MessagePackSerializerOptions.Standard.WithResolver(CompositeResolver.Create(MagicOnionClientGeneratedInitializer.Resolver, StandardResolver.Instance));
Expand All @@ -59,11 +58,11 @@ public void DynamicArgumentTuple()
// var formatter = options.Resolver.GetFormatter<DynamicArgumentTuple<int, string, object, bool, Uri, Guid, MyEnumValue>>();

// // Assert
// Assert.IsNull(formatter);
// await Assert.That(formatter).IsNull();
//}

[TestMethod]
public void Enum()
[Test]
public async Task Enum()
{
// Arrange
var options = MessagePackSerializerOptions.Standard.WithResolver(CompositeResolver.Create(MagicOnionClientGeneratedInitializer.Resolver, StandardResolver.Instance));
Expand All @@ -76,12 +75,12 @@ public void Enum()
writer.Flush();

// Assert
Assert.IsNotNull(formatter);
Assert.AreEqual("0x02", string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}")));
await Assert.That(formatter).IsNotNull();
await Assert.That(string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}"))).IsEqualTo("0x02");
}

//[TestMethod]
//public void Enum_Unknown()
//[Test]
//public async Task Enum_Unknown()
//{
// // Arrange
// var options = MessagePackSerializerOptions.Standard.WithResolver(CompositeResolver.Create(MagicOnionClientGeneratedInitializer.Resolver, StandardResolver.Instance));
Expand All @@ -90,11 +89,11 @@ public void Enum()
// var formatter = options.Resolver.GetFormatter<UnknownEnumValue>();

// // Assert
// Assert.IsNull(formatter);
// await Assert.That(formatter).IsNull();
//}

[TestMethod]
public void BuiltInGenerics_List()
[Test]
public async Task BuiltInGenerics_List()
{
// Arrange
var options = MessagePackSerializerOptions.Standard.WithResolver(CompositeResolver.Create(MagicOnionClientGeneratedInitializer.Resolver, StandardResolver.Instance));
Expand All @@ -107,12 +106,12 @@ public void BuiltInGenerics_List()
writer.Flush();

// Assert
Assert.IsNotNull(formatter);
Assert.AreEqual("0x93, 0x91, 0x01, 0x91, 0x64, 0x91, 0xcd, 0x03, 0xe8", string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}")));
await Assert.That(formatter).IsNotNull();
await Assert.That(string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}"))).IsEqualTo("0x93, 0x91, 0x01, 0x91, 0x64, 0x91, 0xcd, 0x03, 0xe8");
}

[TestMethod]
public void BuiltInGenerics_Dictionary()
[Test]
public async Task BuiltInGenerics_Dictionary()
{
// Arrange
var options = MessagePackSerializerOptions.Standard.WithResolver(CompositeResolver.Create(MagicOnionClientGeneratedInitializer.Resolver, StandardResolver.Instance));
Expand All @@ -129,12 +128,12 @@ [new MyObject(67890)] = "World",
writer.Flush();

// Assert
Assert.IsNotNull(formatter);
Assert.AreEqual("0x82, 0x91, 0xcd, 0x30, 0x39, 0xa5, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x91, 0xce, 0x00, 0x01, 0x09, 0x32, 0xa5, 0x57, 0x6f, 0x72, 0x6c, 0x64", string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}")));
await Assert.That(formatter).IsNotNull();
await Assert.That(string.Join(", ", arrayBufferWriter.WrittenMemory.ToArray().Select(x => $"0x{x:x2}"))).IsEqualTo("0x82, 0x91, 0xcd, 0x30, 0x39, 0xa5, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x91, 0xce, 0x00, 0x01, 0x09, 0x32, 0xa5, 0x57, 0x6f, 0x72, 0x6c, 0x64");
}

//[TestMethod]
//public void BuiltInGenerics_Unknown()
//[Test]
//public async Task BuiltInGenerics_Unknown()
//{
// // Arrange
// var options = MessagePackSerializerOptions.Standard.WithResolver(CompositeResolver.Create(MagicOnionClientGeneratedInitializer.Resolver, StandardResolver.Instance));
Expand All @@ -144,8 +143,8 @@ [new MyObject(67890)] = "World",
// var formatter2 = options.Resolver.GetFormatter<Dictionary<UnknownObject, string>>();

// // Assert
// Assert.IsNull(formatter1);
// Assert.IsNull(formatter2);
// await Assert.That(formatter1).IsNull();
// await Assert.That(formatter2).IsNull();
//}

class UnknownObject;
Expand Down
51 changes: 25 additions & 26 deletions tests/MagicOnion.Client.NativeAot.Tests/UnaryTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@

namespace MagicOnion.Client.NativeAot.Tests;

[TestClass]
public sealed class UnaryTest
{
[TestMethod]
public void Create()
[Test]
public async Task Create()
{
// Arrange
var resolvers = CompositeResolver.Create(MagicOnionClientGeneratedInitializer.Resolver, StandardResolver.Instance);
Expand All @@ -18,10 +17,10 @@ public void Create()
var client = MagicOnionClient.Create<IUnaryTestService>(callInvokerMock, serializerOptions);

// Assert
Assert.IsNotNull(client);
await Assert.That(client).IsNotNull();
}

[TestMethod]
[Test]
public async Task Invoke_With_Arguments()
{
// Arrange
Expand All @@ -36,12 +35,12 @@ public async Task Invoke_With_Arguments()
var result = await resultTask.ResponseAsync.WaitAsync(TimeSpan.FromSeconds(5));

// Assert
Assert.AreEqual(67890, result);
Assert.AreEqual(1, callInvokerMock.RequestPayloads.Count);
Assert.AreEqual("0x92, 0xcd, 0x30, 0x39, 0xa5, 0x48, 0x65, 0x6c, 0x6c, 0x6f", string.Join(", ", callInvokerMock.RequestPayloads[0].Select(x => $"0x{x:x2}")));
await Assert.That(result).IsEqualTo(67890);
await Assert.That(callInvokerMock.RequestPayloads.Count).IsEqualTo(1);
await Assert.That(string.Join(", ", callInvokerMock.RequestPayloads[0].Select(x => $"0x{x:x2}"))).IsEqualTo("0x92, 0xcd, 0x30, 0x39, 0xa5, 0x48, 0x65, 0x6c, 0x6c, 0x6f");
}

[TestMethod]
[Test]
public async Task Invoke_Enum()
{
// Arrange
Expand All @@ -56,11 +55,11 @@ public async Task Invoke_Enum()
await resultTask.ResponseAsync.WaitAsync(TimeSpan.FromSeconds(5));

// Assert
Assert.AreEqual(1, callInvokerMock.RequestPayloads.Count);
Assert.AreEqual("0x02", string.Join(", ", callInvokerMock.RequestPayloads[0].Select(x => $"0x{x:x2}")));
await Assert.That(callInvokerMock.RequestPayloads.Count).IsEqualTo(1);
await Assert.That(string.Join(", ", callInvokerMock.RequestPayloads[0].Select(x => $"0x{x:x2}"))).IsEqualTo("0x02");
}

[TestMethod]
[Test]
public async Task Invoke_Enum_Return()
{
// Arrange
Expand All @@ -75,12 +74,12 @@ public async Task Invoke_Enum_Return()
var result = await resultTask.ResponseAsync.WaitAsync(TimeSpan.FromSeconds(5));

// Assert
Assert.AreEqual(1, callInvokerMock.RequestPayloads.Count);
Assert.AreEqual(MyEnumValue.C, result);
await Assert.That(callInvokerMock.RequestPayloads.Count).IsEqualTo(1);
await Assert.That(result).IsEqualTo(MyEnumValue.C);
}


[TestMethod]
[Test]
public async Task Invoke_BuiltInGeneric()
{
// Arrange
Expand All @@ -95,11 +94,11 @@ public async Task Invoke_BuiltInGeneric()
await resultTask.ResponseAsync.WaitAsync(TimeSpan.FromSeconds(5));

// Assert
Assert.AreEqual(1, callInvokerMock.RequestPayloads.Count);
Assert.AreEqual("0x95, 0x91, 0x01, 0x91, 0x02, 0x91, 0x03, 0x91, 0x04, 0x91, 0x05", string.Join(", ", callInvokerMock.RequestPayloads[0].Select(x => $"0x{x:x2}")));
await Assert.That(callInvokerMock.RequestPayloads.Count).IsEqualTo(1);
await Assert.That(string.Join(", ", callInvokerMock.RequestPayloads[0].Select(x => $"0x{x:x2}"))).IsEqualTo("0x95, 0x91, 0x01, 0x91, 0x02, 0x91, 0x03, 0x91, 0x04, 0x91, 0x05");
}

[TestMethod]
[Test]
public async Task Invoke_BuiltInGeneric_Return()
{
// Arrange
Expand All @@ -114,14 +113,14 @@ public async Task Invoke_BuiltInGeneric_Return()
var result = await resultTask.ResponseAsync.WaitAsync(TimeSpan.FromSeconds(5));

// Assert
Assert.AreEqual(1, callInvokerMock.RequestPayloads.Count);
Assert.IsTrue(result.ContainsKey(new(12)));
Assert.AreEqual("FooBar", result[new(12)]);
Assert.IsTrue(result.ContainsKey(new(34)));
Assert.AreEqual("Baz", result[new(34)]);
await Assert.That(callInvokerMock.RequestPayloads.Count).IsEqualTo(1);
await Assert.That(result.ContainsKey(new(12))).IsTrue();
await Assert.That(result[new(12)]).IsEqualTo("FooBar");
await Assert.That(result.ContainsKey(new(34))).IsTrue();
await Assert.That(result[new(34)]).IsEqualTo("Baz");
}

//[TestMethod]
//[Test]
//public async Task Invoke_With_Arguments_ResolverUnregistered()
//{
// // Arrange
Expand All @@ -143,8 +142,8 @@ public async Task Invoke_BuiltInGeneric_Return()
// }

// // Assert
// Assert.IsNotNull(ex);
// Assert.IsInstanceOfType<MessagePackSerializationException>(ex);
// await Assert.That(ex).IsNotNull();
// await Assert.That(ex).IsTypeOf<MessagePackSerializationException>();
//}
}

Expand Down
2 changes: 2 additions & 0 deletions tests/MagicOnion.Client.NativeAot.Tests/Usings.cs
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
global using Grpc.Core;
global using MessagePack;
global using TUnit.Assertions;
global using TUnit.Core;
Loading