public void JsonBuilder_ValidJson() { var flowData = new Mock <IFlowData>(); IJsonBuilderElementData result = null; var _missingPropertyService = new Mock <IMissingPropertyService>(); flowData.Setup(d => d.ElementDataAsDictionary()).Returns(new Dictionary <string, object>() { { "test", _elementDataMock.Object } }); flowData.Setup(d => d.GetOrAdd( It.IsAny <TypedKey <IJsonBuilderElementData> >(), It.IsAny <Func <IPipeline, IJsonBuilderElementData> >())) .Returns <TypedKey <IJsonBuilderElementData>, Func <IPipeline, IJsonBuilderElementData> >( (k, f) => { result = f(flowData.Object.Pipeline); return(result); }); string session = "somesessionid"; flowData.Setup(d => d.TryGetEvidence("query.session-id", out session)).Returns(true); int iteration = 1; flowData.Setup(d => d.TryGetEvidence("query.sequence", out iteration)).Returns(true); _jsonBuilderElement.Process(flowData.Object); Assert.IsTrue(IsExpectedJson(result.Json)); }
private string TestIteration(int iteration, Dictionary <string, object> data = null, Mock <IFlowData> flowData = null) { if (data == null) { data = new Dictionary <string, object>() { { "test", _elementDataMock.Object } }; } if (flowData == null) { flowData = new Mock <IFlowData>(); } var _missingPropertyService = new Mock <IMissingPropertyService>(); flowData.Setup(d => d.ElementDataAsDictionary()).Returns(data); string session = "somesessionid"; flowData.Setup(d => d.TryGetEvidence("query.session-id", out session)).Returns(true); flowData.Setup(d => d.TryGetEvidence("query.sequence", out iteration)).Returns(true); flowData.Setup(d => d.GetWhere(It.IsAny <Func <IElementPropertyMetaData, bool> >())).Returns( (Func <IElementPropertyMetaData, bool> filter) => { return(_propertyMetaData .SelectMany(e => e.Value) .Where(p => filter(p.Value)) .Select(p => new KeyValuePair <string, object>(p.Value.Element.ElementDataKey + "." + p.Key, p.Value))); }); IJsonBuilderElementData result = null; flowData.Setup(d => d.GetOrAdd( It.IsAny <TypedKey <IJsonBuilderElementData> >(), It.IsAny <Func <IPipeline, IJsonBuilderElementData> >())) .Returns <TypedKey <IJsonBuilderElementData>, Func <IPipeline, IJsonBuilderElementData> >( (k, f) => { result = f(flowData.Object.Pipeline); return(result); }); flowData.Setup(d => d.Pipeline).Returns(_pipeline.Object); _jsonBuilderElement.Process(flowData.Object); var json = result["json"].ToString(); return(json); }