/// <summary> /// Gets the text describing for the method for log operations. /// </summary> /// <param name="method">The method.</param> /// <returns>The text describing for the method for log operations.</returns> private string GetMethodText(FullMethodDescription method) { string result = method.GetFullName(); result += " [Delay= " + method.Delay + " Timeout= " + method.TimeOut + "]"; return(result); }
public void InvokeMethod_Should_ReturnTrue_Given_TheInvokedMethodReturnsAAssertionResultSuccessfulObject() { GameObject gameObject = UnitTestUtility.CreateGameObject(); ExtensionRunnerBusinessLogic businessLogic = new ExtensionRunnerBusinessLogic(gameObject); Component component = Substitute.For <Component>(); MethodInfo mockedMethodInfo = Substitute.For <MethodInfo>(); object methodInvokeAssertionResult = new AssertionResultSuccessful(); object[] parameters = new object[0]; mockedMethodInfo.Invoke(component, parameters).Returns(methodInvokeAssertionResult); FullMethodDescription methodDescription = Substitute.For <FullMethodDescription>(); methodDescription.Method = mockedMethodInfo; methodDescription.GetFullName().Returns <string>("component.method"); ExtensionRunnerBusinessLogic mockedBusinessLogic = Substitute.For <ExtensionRunnerBusinessLogic>(gameObject); DateTime firstNowDatetime = new DateTime(2017, 05, 01, 00, 00, 00, 000); mockedBusinessLogic.StartDelayTime = firstNowDatetime; DateTime secondNowDatetime = new DateTime(2017, 05, 01, 00, 00, 00, 000); mockedBusinessLogic.DateTimeNow().Returns <DateTime>(secondNowDatetime); mockedBusinessLogic.GetParametersValues(methodDescription).Returns <object[]>(parameters); mockedMethodInfo.Invoke(component, parameters).Returns(methodInvokeAssertionResult); methodDescription.Method = mockedMethodInfo; bool result = businessLogic.InvokeMethod(mockedBusinessLogic, methodDescription, gameObject); Assert.IsTrue(result, "The method InvokeMethod doesn't return the right state"); }
/// <summary> /// Builds the index of the parameter. /// </summary> /// <param name="fullMethodDescription">The full method description.</param> /// <param name="parameter">The parameter.</param> /// <param name="index">The index.</param> /// <param name="arrayFieldInfo">The array field information.</param> /// <returns>A string containing the parameter index.</returns> private string BuildParameterIndex(FullMethodDescription fullMethodDescription, MethodParameter parameter, int index, FieldInfo arrayFieldInfo) { // ";string,BDDComponentForTest.GivenMethod.stringParam.fullId,stringsArrayStorage.Array.data[0];" MethodsManagementUtilities methodsManagementUtilities = new MethodsManagementUtilities(); return(parameter.ParameterInfoObject.ParameterType.FullName + "," + fullMethodDescription.GetFullName() + "." + parameter.ParameterInfoObject.Name + "." + methodsManagementUtilities.GetMainFullId(fullMethodDescription.MainMethod) + fullMethodDescription.Id + "," + arrayFieldInfo.Name + ".Array.data[" + index + "]"); }
public void InvokeMethod_Should_PerformTheExpectedCallsAndReturnFalse_Given_TheInvokedMethodReturnsAAssertionResultRetryObject() { GameObject gameObject = UnitTestUtility.CreateGameObject(); ExtensionRunnerBusinessLogic businessLogic = new ExtensionRunnerBusinessLogic(gameObject); Component component = Substitute.For <Component>(); MethodInfo mockedMethodInfo = Substitute.For <MethodInfo>(); string errorText = "message"; IAssertionResult methodInvokeAssertionResult = new AssertionResultRetry(errorText); object[] parameters = new object[0]; mockedMethodInfo.Invoke(component, parameters).Returns(methodInvokeAssertionResult); FullMethodDescription methodDescription = Substitute.For <FullMethodDescription>(); methodDescription.Method = mockedMethodInfo; methodDescription.GetFullName().Returns <string>("component.method"); ExtensionRunnerBusinessLogic mockedBusinessLogic = Substitute.For <ExtensionRunnerBusinessLogic>(gameObject); DateTime firstNowDatetime = new DateTime(2017, 05, 01, 00, 00, 00, 000); mockedBusinessLogic.StartDelayTime = firstNowDatetime; DateTime secondNowDatetime = new DateTime(2017, 05, 01, 00, 00, 00, 000); mockedBusinessLogic.DateTimeNow().Returns <DateTime>(secondNowDatetime); mockedBusinessLogic.GetParametersValues(methodDescription).Returns <object[]>(parameters); string scenarioText = "scenarioText"; string bddMethodLocation = "bddMethodLocation"; List <FullMethodDescription> methods = new List <FullMethodDescription>(); methods.Add(methodDescription); mockedBusinessLogic.MethodsDescription = methods; mockedBusinessLogic.GetScenarioTextForErrorInSpecificMethod(methods, methodDescription).Returns(scenarioText); mockedBusinessLogic.GetbddMethodLocationForSpecificMethod(methods, methodDescription).Returns(bddMethodLocation); bool result = businessLogic.InvokeMethod(mockedBusinessLogic, methodDescription, gameObject); Received.InOrder(() => { mockedBusinessLogic.DateTimeNow(); mockedBusinessLogic.DateTimeNow(); mockedBusinessLogic.GetParametersValues(methodDescription); mockedMethodInfo.Invoke(component, parameters); mockedBusinessLogic.DateTimeNow(); mockedBusinessLogic.InvokeAssertionFailed(errorText, scenarioText, bddMethodLocation, gameObject); }); Assert.IsFalse(result, "The method InvokeMethod doesn't return the right state"); }
public void RunCycle_Should_PerformTheExpectedCallsForTheFirstMethodInTheListAndReturnTheIndexForTheNextMethod_Given_TheMethodHasNotAConfiguredDelay() { GameObject gameObject = UnitTestUtility.CreateGameObject(); ExtensionRunnerBusinessLogic businessLogic = new ExtensionRunnerBusinessLogic(gameObject); Component component = Substitute.For <Component>(); MethodInfo mockedMethodInfo = Substitute.For <MethodInfo>(); object methodInvokeAssertionResult = new AssertionResultSuccessful(); object[] parameters = new object[0]; mockedMethodInfo.Invoke(component, parameters).Returns(methodInvokeAssertionResult); FullMethodDescription methodDescription = Substitute.For <FullMethodDescription>(); methodDescription.Method = mockedMethodInfo; methodDescription.GetFullName().Returns <string>("component.method"); ExtensionRunnerBusinessLogic mockedBusinessLogic = Substitute.For <ExtensionRunnerBusinessLogic>(gameObject); mockedBusinessLogic.IntegrationTestGameObject = gameObject; List <FullMethodDescription> methodsDescription = new List <FullMethodDescription>(); methodsDescription.Add(methodDescription); methodsDescription.Add(Substitute.For <FullMethodDescription>()); DateTime firstNowDatetime = new DateTime(2017, 05, 01, 00, 00, 00, 000); mockedBusinessLogic.DateTimeNow().Returns <DateTime>(firstNowDatetime); mockedBusinessLogic.InvokeMethod(mockedBusinessLogic, methodDescription, gameObject).Returns <bool>(true); int indexToRun = -1; int newIndexToRun = businessLogic.RunCycle(mockedBusinessLogic, methodsDescription, indexToRun); Received.InOrder(() => { mockedBusinessLogic.DateTimeNow(); mockedBusinessLogic.InvokeMethod(mockedBusinessLogic, methodDescription, gameObject); mockedBusinessLogic.DateTimeNow(); }); Assert.AreEqual(1, newIndexToRun, "The method RunCycle doesn't return the right value"); }
public void InvokeMethod_Should_PerformTheExpectedCallsAndReturnFalse_Given_TheInvokedMethodHasAReachedDelayAndReturnsAAssertionResultRetryObject() { GameObject gameObject = UnitTestUtility.CreateGameObject(); ExtensionRunnerBusinessLogic businessLogic = new ExtensionRunnerBusinessLogic(gameObject); Component component = Substitute.For <Component>(); MethodInfo mockedMethodInfo = Substitute.For <MethodInfo>(); object methodInvokeAssertionResult = new AssertionResultRetry("message"); object[] parameters = new object[0]; mockedMethodInfo.Invoke(component, parameters).Returns(methodInvokeAssertionResult); FullMethodDescription methodDescription = Substitute.For <FullMethodDescription>(); methodDescription.Method = mockedMethodInfo; methodDescription.GetFullName().Returns <string>("component.method"); methodDescription.TimeOut = 1000; ExtensionRunnerBusinessLogic mockedBusinessLogic = Substitute.For <ExtensionRunnerBusinessLogic>(gameObject); DateTime firstNowDatetime = new DateTime(2017, 05, 01, 00, 00, 00, 000); mockedBusinessLogic.StartDelayTime = firstNowDatetime; DateTime secondNowDatetime = new DateTime(2017, 05, 01, 00, 00, 00, 000); mockedBusinessLogic.DateTimeNow().Returns <DateTime>(secondNowDatetime); mockedBusinessLogic.GetParametersValues(methodDescription).Returns <object[]>(parameters); bool result = businessLogic.InvokeMethod(mockedBusinessLogic, methodDescription, gameObject); Received.InOrder(() => { mockedBusinessLogic.DateTimeNow(); mockedBusinessLogic.DateTimeNow(); mockedBusinessLogic.GetParametersValues(methodDescription); mockedMethodInfo.Invoke(component, parameters); mockedBusinessLogic.DateTimeNow(); }); Assert.IsFalse(result, "The method InvokeMethod doesn't return the right state"); }