89 lines
2.5 KiB
C#
89 lines
2.5 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System.Linq;
|
|
using Microsoft.AspNetCore.SignalR.Internal;
|
|
using Xunit;
|
|
|
|
namespace Microsoft.AspNetCore.SignalR.Tests
|
|
{
|
|
public class HubReflectionHelperTests
|
|
{
|
|
[Fact]
|
|
public void EmptyHubHasNoHubMethods()
|
|
{
|
|
var hubMethods = HubReflectionHelper.GetHubMethods(typeof(EmptyHub));
|
|
|
|
Assert.Empty(hubMethods);
|
|
}
|
|
|
|
[Fact]
|
|
public void HubWithMethodsHasHubMethods()
|
|
{
|
|
var hubType = typeof(BaseMethodHub);
|
|
var hubMethods = HubReflectionHelper.GetHubMethods(hubType);
|
|
|
|
Assert.Equal(3, hubMethods.Count());
|
|
Assert.Contains(hubMethods, m => m == hubType.GetMethod("VoidMethod"));
|
|
Assert.Contains(hubMethods, m => m == hubType.GetMethod("IntMethod"));
|
|
Assert.Contains(hubMethods, m => m == hubType.GetMethod("ArgMethod"));
|
|
}
|
|
|
|
[Fact]
|
|
public void InheritedHubHasBaseHubMethodsAndOwnMethods()
|
|
{
|
|
var hubType = typeof(InheritedMethodHub);
|
|
var hubMethods = HubReflectionHelper.GetHubMethods(hubType);
|
|
|
|
Assert.Equal(4, hubMethods.Count());
|
|
Assert.Contains(hubMethods, m => m == hubType.GetMethod("ExtraMethod"));
|
|
Assert.Contains(hubMethods, m => m == hubType.GetMethod("VoidMethod"));
|
|
Assert.Contains(hubMethods, m => m == hubType.GetMethod("IntMethod"));
|
|
Assert.Contains(hubMethods, m => m == hubType.GetMethod("ArgMethod"));
|
|
}
|
|
|
|
private class EmptyHub : Hub
|
|
{
|
|
}
|
|
|
|
private class BaseMethodHub : Hub
|
|
{
|
|
public void VoidMethod()
|
|
{
|
|
}
|
|
|
|
public int IntMethod()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
public void ArgMethod(string str)
|
|
{
|
|
}
|
|
|
|
// static is not supported as a Hub method
|
|
public static void StaticMethod()
|
|
{
|
|
}
|
|
|
|
// internal is not a Hub method
|
|
internal void InternalMethod()
|
|
{
|
|
}
|
|
|
|
// private is not a Hub method
|
|
private void PrivateMethod()
|
|
{
|
|
}
|
|
}
|
|
|
|
private class InheritedMethodHub : BaseMethodHub
|
|
{
|
|
public int ExtraMethod(bool b)
|
|
{
|
|
return 2;
|
|
}
|
|
}
|
|
}
|
|
}
|