public void TestWillNotRetrieveValuesIfThereAreNoSetterActions() { string columnName = "col"; IEnumerable <object[]> values = new List <object[]>() { new object[] { "value_for_col" } }; Mock <IColumnToObject <object> > mockColumnToObject = new Mock <IColumnToObject <object> >(); Mock <IQueryResult> mockQueryResult = new Mock <IQueryResult>(); mockColumnToObject.Setup(_ => _.GetColumnSetter(columnName)).Returns(null); mockQueryResult.Setup(_ => _.ColumnsNames()).Returns(new List <string>() { columnName }); mockQueryResult.Setup(_ => _.ResultRows()).Returns(values); QueryTransformer <object> model = new QueryTransformer <object>("transformer", mockColumnToObject.Object); model.Transform(mockQueryResult.Object); IInvocationList invocations = mockQueryResult.Invocations; List <IInvocation> invocationMethods = new List <IInvocation>(invocations); List <string> calledMethods = new List <string>(invocationMethods.ConvertAll(current => current.Method.Name)); CollectionAssert.DoesNotContain(calledMethods, "ResultRows"); }
public static string getConsoleOutput(IInvocationList invocations) { if (!invocations.Any()) { return(string.Empty); } return(string.Concat(invocations.Where(i => i.Method.Name.Contains("Write")).Select(i => i.Arguments.OfType <string>().FirstOrDefault()))); }
public void TestWillNotUseQueryDefinitionUntilExtractMethodIsCalled() { Mock <IQueryDefinition> mock = new Mock <IQueryDefinition>(); new DataBaseExtractor("", mock.Object); IInvocationList invocations = mock.Invocations; Assert.AreEqual(0, invocations.Count); }
public void TestSendResultToMultipleReports() { object o = new object(); Mock <IReport> mockReportOne = new Mock <IReport>(); Mock <IReport> mockReportTwo = new Mock <IReport>(); Mock <IExtractor <object> > mockExtractor = new Mock <IExtractor <object> >(); Mock <ITransformer <object, object> > mockTransformer = new Mock <ITransformer <object, object> >(); Mock <ILoader <object> > mockLoader = new Mock <ILoader <object> >(); mockExtractor.Setup(_ => _.GetID()).Returns("extractor"); mockExtractor.Setup(_ => _.Extract()).Returns(o); mockTransformer.Setup(_ => _.GetID()).Returns("transformer"); mockTransformer.Setup(_ => _.Transform(o)).Returns(o); mockLoader.Setup(_ => _.GetID()).Returns("loader"); ProcessorBuilder <object> builder = new ProcessorBuilder <object>(mockLoader.Object); builder.AddSource("mock processor", mockExtractor.Object, mockTransformer.Object); builder.AddReport(mockReportOne.Object); builder.AddReport(mockReportTwo.Object); IProcessor processor = builder.Build(); IEnumerable <Task <JobResult> > tasks = processor.Process(); Task.WaitAll(new List <Task <JobResult> >(tasks).ToArray()); //Mock one check IInvocationList invocationList = mockReportOne.Invocations; Assert.AreEqual(1, invocationList.Count); IEnumerator <IInvocation> invocationEnumerator = invocationList.GetEnumerator(); invocationEnumerator.MoveNext(); IInvocation invocation = invocationEnumerator.Current; Assert.AreEqual("Report", invocation.Method.Name); //Mock two check invocationList = mockReportTwo.Invocations; Assert.AreEqual(1, invocationList.Count); invocationEnumerator = invocationList.GetEnumerator(); invocationEnumerator.MoveNext(); invocation = invocationEnumerator.Current; Assert.AreEqual("Report", invocation.Method.Name); }
/// <summary> /// 顯示查看資料 /// </summary> /// <param name="datas"></param> private void ShowData(IInvocationList datas) { //可下中斷點查看資料內容 foreach (var signalrResponseData in datas) { var showDatas = new object(); if (signalrResponseData != null && signalrResponseData.Arguments != null) { showDatas = signalrResponseData.Arguments; } } //取得signalr回傳的資料 /* var getGroupResponseDatas = ( client.Invocations!=null && client.Invocations[0]!=null && client.Invocations[0].Arguments!=null && client.Invocations[0].Arguments[0]!=null) ? * client.Invocations[0].Arguments[0] * : null; * //判斷是否取為正確的資料 * Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsInstanceOfType(getGroupResponseDatas, typeof(List<LearningCircle>)); * //將資料轉換成正確的資料 * var targetResData = getGroupResponseDatas as List<LearningCircle>; * //判斷是否為null * Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotNull(targetResData);*/ }
public static void VerifyAndClear(this IInvocationList invocations, params (string Name, object[] Args)[] expectedInvocations)
public static IEnumerable <IInvocation> WithoutAdditional(this IInvocationList invocationList) { //there is no setting to be concerned with return(invocationList.Where(i => i.Method.Name != "get____Additional")); }
public void TestExecutesDefinedSetterActions() { string columnName = "name"; string columnDescription = "description"; string columnPrice = "price"; string columnWithNoAction = "no_action_column"; string columnWithNoAction2 = "no_action_column2"; string name = "name of model"; string description = "desc"; decimal price = 3m; string noAction = "no_action_value"; string noAction2 = "no_action_value2"; IEnumerable <string> columns = new List <string>() { columnName, columnDescription, columnPrice, columnWithNoAction, columnWithNoAction2 }; IEnumerable <object[]> values = new List <object[]>() { new object[] { name, description, price, noAction, noAction2 } }; //Mocked objects Mock <Action <Model, object> > mockNameAction = new Mock <Action <Model, object> >(); Mock <Action <Model, object> > mockDescriptionAction = new Mock <Action <Model, object> >(); Mock <Action <Model, object> > mockPriceAction = new Mock <Action <Model, object> >(); Mock <IColumnToObject <Model> > mockColumnToObject = new Mock <IColumnToObject <Model> >(); Mock <IQueryResult> mockQueryResult = new Mock <IQueryResult>(); //Setup of mockColumnToObject mockColumnToObject.Setup(_ => _.GetColumnSetter(columnName)).Returns(mockNameAction.Object); mockColumnToObject.Setup(_ => _.GetColumnSetter(columnDescription)).Returns(mockDescriptionAction.Object); mockColumnToObject.Setup(_ => _.GetColumnSetter(columnPrice)).Returns(mockPriceAction.Object); mockColumnToObject.Setup(_ => _.GetColumnSetter(columnWithNoAction)).Returns(null); mockColumnToObject.Setup(_ => _.GetColumnSetter(columnWithNoAction2)).Returns(null); //Setup of mockQueryResult mockQueryResult.Setup(_ => _.ColumnsNames()).Returns(columns); mockQueryResult.Setup(_ => _.ResultRows()).Returns(values); IColumnToObject <Model> columnToObject = mockColumnToObject.Object; QueryTransformer <Model> queryTransformer = new QueryTransformer <Model>("transformer", columnToObject); queryTransformer.Transform(mockQueryResult.Object); //Invocation of "Name" check IInvocationList invocations = mockNameAction.Invocations; List <IInvocation> calledMethods = new List <IInvocation>(invocations); List <string> calleMethodsNames = new List <string>(calledMethods.ConvertAll(current => current.Method.Name)); CollectionAssert.Contains(calleMethodsNames, "Invoke"); //Invocation of "Description" check invocations = mockDescriptionAction.Invocations; calledMethods = new List <IInvocation>(invocations); calleMethodsNames = new List <string>(calledMethods.ConvertAll(current => current.Method.Name)); CollectionAssert.Contains(calleMethodsNames, "Invoke"); //Invocation of "Price" check invocations = mockPriceAction.Invocations; calledMethods = new List <IInvocation>(invocations); calleMethodsNames = new List <string>(calledMethods.ConvertAll(current => current.Method.Name)); CollectionAssert.Contains(calleMethodsNames, "Invoke"); //If there is a call on a null action, it will produce a NullPointerException }