ProjectZ/Assets/Mirror/Tests/Editor/Weaver/WeaverNetworkBehaviourTests.cs

251 lines
16 KiB
C#
Raw Normal View History

2024-02-19 21:00:36 +03:00
using NUnit.Framework;
namespace Mirror.Weaver.Tests
{
public class WeaverNetworkBehaviourTests : WeaverTestsBuildFromTestName
{
[Test]
public void NetworkBehaviourGenericSyncVar()
{
HasError("genericSyncVarNotAllowed has generic type. Generic SyncVars are not supported",
"T WeaverNetworkBehaviourTests.NetworkBehaviourGeneric.NetworkBehaviourGeneric`1::genericSyncVarNotAllowed");
}
[Test]
public void NetworkBehaviourGenericRpc()
{
HasError("RpcGeneric cannot have generic parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourGeneric.NetworkBehaviourGeneric`1::RpcGeneric(T)");
}
[Test]
public void NetworkBehaviourCmdGenericParam()
{
HasError("CmdCantHaveGeneric cannot have generic parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourCmdGenericParam.NetworkBehaviourCmdGenericParam::CmdCantHaveGeneric()");
}
[Test]
public void NetworkBehaviourCmdCoroutine()
{
HasError("CmdCantHaveCoroutine cannot be a coroutine",
"System.Collections.IEnumerator WeaverNetworkBehaviourTests.NetworkBehaviourCmdCoroutine.NetworkBehaviourCmdCoroutine::CmdCantHaveCoroutine()");
}
[Test]
public void NetworkBehaviourCmdVoidReturn()
{
HasError("CmdCantHaveNonVoidReturn cannot return a value. Make it void instead",
"System.Int32 WeaverNetworkBehaviourTests.NetworkBehaviourCmdVoidReturn.NetworkBehaviourCmdVoidReturn::CmdCantHaveNonVoidReturn()");
}
[Test]
public void NetworkBehaviourTargetRpcGenericParam()
{
HasError("TargetRpcCantHaveGeneric cannot have generic parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcGenericParam.NetworkBehaviourTargetRpcGenericParam::TargetRpcCantHaveGeneric()");
}
[Test]
public void NetworkBehaviourTargetRpcCoroutine()
{
HasError("TargetRpcCantHaveCoroutine cannot be a coroutine",
"System.Collections.IEnumerator WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcCoroutine.NetworkBehaviourTargetRpcCoroutine::TargetRpcCantHaveCoroutine()");
}
[Test]
public void NetworkBehaviourTargetRpcVoidReturn()
{
HasError("TargetRpcCantHaveNonVoidReturn cannot return a value. Make it void instead",
"System.Int32 WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcVoidReturn.NetworkBehaviourTargetRpcVoidReturn::TargetRpcCantHaveNonVoidReturn()");
}
[Test]
public void NetworkBehaviourTargetRpcParamOut()
{
HasError("TargetRpcCantHaveParamOut cannot have out parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamOut.NetworkBehaviourTargetRpcParamOut::TargetRpcCantHaveParamOut(Mirror.NetworkConnection,System.Int32&)");
}
[Test]
public void NetworkBehaviourTargetRpcParamOptional()
{
HasError("TargetRpcCantHaveParamOptional cannot have optional parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamOptional.NetworkBehaviourTargetRpcParamOptional::TargetRpcCantHaveParamOptional(Mirror.NetworkConnection,System.Int32)");
}
[Test]
public void NetworkBehaviourTargetRpcParamRef()
{
HasError("Cannot pass Int32& by reference",
"System.Int32&");
HasError("TargetRpcCantHaveParamRef has invalid parameter monkeys",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamRef.NetworkBehaviourTargetRpcParamRef::TargetRpcCantHaveParamRef(Mirror.NetworkConnection,System.Int32&)");
HasError("Cannot pass type Int32& by reference",
"System.Int32&");
HasError("TargetRpcCantHaveParamRef has invalid parameter monkeys. Unsupported type System.Int32&, use a supported Mirror type instead",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamRef.NetworkBehaviourTargetRpcParamRef::TargetRpcCantHaveParamRef(Mirror.NetworkConnection,System.Int32&)");
}
[Test]
public void NetworkBehaviourTargetRpcParamAbstract()
{
HasError("Cannot generate writer for abstract class AbstractClass. Use a supported type or provide a custom writer",
"WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamAbstract.NetworkBehaviourTargetRpcParamAbstract/AbstractClass");
// TODO change weaver to run checks for write/read at the same time
//HasError("AbstractClass can't be deserialized because it has no default constructor",
// "WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamAbstract.NetworkBehaviourTargetRpcParamAbstract/AbstractClass");
}
[Test]
public void NetworkBehaviourTargetRpcParamComponent()
{
HasError("Cannot generate writer for component type ComponentClass. Use a supported type or provide a custom writer",
"WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamComponent.NetworkBehaviourTargetRpcParamComponent/ComponentClass");
HasError("TargetRpcCantHaveParamComponent has invalid parameter monkeyComp",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamComponent.NetworkBehaviourTargetRpcParamComponent::TargetRpcCantHaveParamComponent(Mirror.NetworkConnection,WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamComponent.NetworkBehaviourTargetRpcParamComponent/ComponentClass)");
HasError("Cannot generate reader for component type ComponentClass. Use a supported type or provide a custom reader",
"WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamComponent.NetworkBehaviourTargetRpcParamComponent/ComponentClass");
HasError("TargetRpcCantHaveParamComponent has invalid parameter monkeyComp. Unsupported type WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamComponent.NetworkBehaviourTargetRpcParamComponent/ComponentClass, use a supported Mirror type instead",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamComponent.NetworkBehaviourTargetRpcParamComponent::TargetRpcCantHaveParamComponent(Mirror.NetworkConnection,WeaverNetworkBehaviourTests.NetworkBehaviourTargetRpcParamComponent.NetworkBehaviourTargetRpcParamComponent/ComponentClass)");
}
[Test]
public void NetworkBehaviourClientRpcGenericParam()
{
HasError("RpcCantHaveGeneric cannot have generic parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcGenericParam.NetworkBehaviourClientRpcGenericParam::RpcCantHaveGeneric()");
}
[Test]
public void NetworkBehaviourClientRpcCoroutine()
{
HasError("RpcCantHaveCoroutine cannot be a coroutine",
"System.Collections.IEnumerator WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcCoroutine.NetworkBehaviourClientRpcCoroutine::RpcCantHaveCoroutine()");
}
[Test]
public void NetworkBehaviourClientRpcVoidReturn()
{
HasError("RpcCantHaveNonVoidReturn cannot return a value. Make it void instead",
"System.Int32 WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcVoidReturn.NetworkBehaviourClientRpcVoidReturn::RpcCantHaveNonVoidReturn()");
}
[Test]
public void NetworkBehaviourClientRpcParamOut()
{
HasError("RpcCantHaveParamOut cannot have out parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamOut.NetworkBehaviourClientRpcParamOut::RpcCantHaveParamOut(System.Int32&)");
}
[Test]
public void NetworkBehaviourClientRpcParamOptional()
{
HasError("RpcCantHaveParamOptional cannot have optional parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamOptional.NetworkBehaviourClientRpcParamOptional::RpcCantHaveParamOptional(System.Int32)");
}
[Test]
public void NetworkBehaviourClientRpcParamRef()
{
HasError("Cannot pass Int32& by reference",
"System.Int32&");
HasError("RpcCantHaveParamRef has invalid parameter monkeys",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamRef.NetworkBehaviourClientRpcParamRef::RpcCantHaveParamRef(System.Int32&)");
// TODO change weaver to run checks for write/read at the same time
//HasError("Cannot pass type Int32& by reference",
// "System.Int32&");
//HasError("RpcCantHaveParamRef has invalid parameter monkeys. Unsupported type System.Int32&, use a supported Mirror type instead",
// "System.Void WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamRef.NetworkBehaviourClientRpcParamRef::RpcCantHaveParamRef(System.Int32&)");
}
[Test]
public void NetworkBehaviourClientRpcParamAbstract()
{
HasError("Cannot generate writer for abstract class AbstractClass. Use a supported type or provide a custom writer",
"WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamAbstract.NetworkBehaviourClientRpcParamAbstract/AbstractClass");
// TODO change weaver to run checks for write/read at the same time
//HasError("AbstractClass can't be deserialized because it has no default constructor",
// "WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamAbstract.NetworkBehaviourClientRpcParamAbstract/AbstractClass");
}
[Test]
public void NetworkBehaviourClientRpcParamComponent()
{
HasError("Cannot generate writer for component type ComponentClass. Use a supported type or provide a custom writer",
"WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamComponent.NetworkBehaviourClientRpcParamComponent/ComponentClass");
HasError("RpcCantHaveParamComponent has invalid parameter monkeyComp",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamComponent.NetworkBehaviourClientRpcParamComponent::RpcCantHaveParamComponent(WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamComponent.NetworkBehaviourClientRpcParamComponent/ComponentClass)");
// TODO change weaver to run checks for write/read at the same time
//HasError("Cannot generate reader for component type ComponentClass. Use a supported type or provide a custom reader",
// "WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamComponent.NetworkBehaviourClientRpcParamComponent/ComponentClass");
//HasError("RpcCantHaveParamComponent has invalid parameter monkeyComp. Unsupported type WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamComponent.NetworkBehaviourClientRpcParamComponent/ComponentClass, use a supported Mirror type instead",
// "System.Void WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamComponent.NetworkBehaviourClientRpcParamComponent::RpcCantHaveParamComponent(WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamComponent.NetworkBehaviourClientRpcParamComponent/ComponentClass)");
}
[Test]
public void NetworkBehaviourClientRpcParamNetworkConnection()
{
HasError("RpcCantHaveParamOptional has invalid parameter monkeyCon. Cannot pass NetworkConnections",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourClientRpcParamNetworkConnection.NetworkBehaviourClientRpcParamNetworkConnection::RpcCantHaveParamOptional(Mirror.NetworkConnection)");
}
[Test]
public void NetworkBehaviourCmdParamOut()
{
HasError("CmdCantHaveParamOut cannot have out parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamOut.NetworkBehaviourCmdParamOut::CmdCantHaveParamOut(System.Int32&)");
}
[Test]
public void NetworkBehaviourCmdParamOptional()
{
HasError("CmdCantHaveParamOptional cannot have optional parameters",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamOptional.NetworkBehaviourCmdParamOptional::CmdCantHaveParamOptional(System.Int32)");
}
[Test]
public void NetworkBehaviourCmdParamRef()
{
HasError("Cannot pass Int32& by reference",
"System.Int32&");
HasError("CmdCantHaveParamRef has invalid parameter monkeys",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamRef.NetworkBehaviourCmdParamRef::CmdCantHaveParamRef(System.Int32&)");
HasError("Cannot pass type Int32& by reference",
"System.Int32&");
HasError("CmdCantHaveParamRef has invalid parameter monkeys. Unsupported type System.Int32&, use a supported Mirror type instead",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamRef.NetworkBehaviourCmdParamRef::CmdCantHaveParamRef(System.Int32&)");
}
[Test]
public void NetworkBehaviourCmdParamAbstract()
{
HasError("Cannot generate writer for abstract class AbstractClass. Use a supported type or provide a custom writer",
"WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamAbstract.NetworkBehaviourCmdParamAbstract/AbstractClass");
// TODO change weaver to run checks for write/read at the same time
//HasError("AbstractClass can't be deserialized because it has no default constructor",
// "WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamAbstract.NetworkBehaviourCmdParamAbstract/AbstractClass");
}
[Test]
public void NetworkBehaviourCmdParamComponent()
{
HasError("Cannot generate writer for component type ComponentClass. Use a supported type or provide a custom writer",
"WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamComponent.NetworkBehaviourCmdParamComponent/ComponentClass");
HasError("CmdCantHaveParamComponent has invalid parameter monkeyComp",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamComponent.NetworkBehaviourCmdParamComponent::CmdCantHaveParamComponent(WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamComponent.NetworkBehaviourCmdParamComponent/ComponentClass)");
HasError("Cannot generate reader for component type ComponentClass. Use a supported type or provide a custom reader",
"WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamComponent.NetworkBehaviourCmdParamComponent/ComponentClass");
HasError("CmdCantHaveParamComponent has invalid parameter monkeyComp. Unsupported type WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamComponent.NetworkBehaviourCmdParamComponent/ComponentClass, use a supported Mirror type instead",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamComponent.NetworkBehaviourCmdParamComponent::CmdCantHaveParamComponent(WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamComponent.NetworkBehaviourCmdParamComponent/ComponentClass)");
}
[Test]
public void NetworkBehaviourCmdParamNetworkConnection()
{
HasError("CmdCantHaveParamOptional has invalid parameter monkeyCon, Cannot pass NetworkConnections. Instead use 'NetworkConnectionToClient conn = null' to get the sender's connection on the server",
"System.Void WeaverNetworkBehaviourTests.NetworkBehaviourCmdParamNetworkConnection.NetworkBehaviourCmdParamNetworkConnection::CmdCantHaveParamOptional(Mirror.NetworkConnection)");
}
}
}