public void ConstructorInvokeTest() { var constructors = new Constructors(); var messageType = typeof(Message).GetTypeData(); var case1 = new InvokeTestCase { ConstructorData = messageType.Constructors.Get(new Name(constructors.DefaultConstructor)), Parameters = new object[0], Value = string.Empty }; var case2 = new InvokeTestCase { ConstructorData = messageType.Constructors.Get(new Name(constructors.NotDefaultConstructor)), Parameters = new object[] { "test" }, Value = "test" }; Run(Test, case1, case2); void Test(InvokeTestCase testCase) { AreEqual(testCase.Value, testCase.ConstructorData.Invoke <Message>(testCase.Parameters).Value); } }
public void MethodInvokeTest() { var message = new Message(); var messageHelper = new MessageHelper(); var case1 = new InvokeTestCase { MethodBaseData = messageHelper.MessageType.Methods.Get(new Name(messageHelper.Append)), Void = true, Parameters = new object[] { "string" }, Value = "string" }; var case2 = new InvokeTestCase { MethodBaseData = messageHelper.MessageType.Methods.Get(new Name(messageHelper.GetCharacters)), Void = false, Parameters = new object[0], ReturnValue = case1.Value.ToCharArray() }; Run(Test, case1, case2); void Test(InvokeTestCase testCase) { if (!testCase.Void) { SequenceEquals((char[])testCase.ReturnValue, testCase.MethodBaseData.Invoke <char[]>(message, testCase.Parameters)); } else { testCase.MethodBaseData.Invoke(message, testCase.Parameters); AreEqual(testCase.Value, message.Value); } } }