public void CallsTransformProviders() { var provider1 = new TestTransformProvider(); var provider2 = new TestTransformProvider(); var provider3 = new TestTransformProvider(); var builder = new TransformBuilder(new ServiceCollection().BuildServiceProvider(), Array.Empty <ITransformFactory>(), new[] { provider1, provider2, provider3 }); var route = new RouteConfig(); var errors = builder.ValidateRoute(route); Assert.Empty(errors); Assert.Equal(1, provider1.ValidateRouteCalls); Assert.Equal(1, provider2.ValidateRouteCalls); Assert.Equal(1, provider3.ValidateRouteCalls); var cluster = new ClusterConfig(); errors = builder.ValidateCluster(cluster); Assert.Empty(errors); Assert.Equal(1, provider1.ValidateClusterCalls); Assert.Equal(1, provider2.ValidateClusterCalls); Assert.Equal(1, provider3.ValidateClusterCalls); var transforms = builder.BuildInternal(route, cluster); Assert.Equal(1, provider1.ApplyCalls); Assert.Equal(1, provider2.ApplyCalls); Assert.Equal(1, provider3.ApplyCalls); Assert.Equal(3, transforms.ResponseTrailerTransforms.Count); }
public void CreateOutputElement_CreatesIndentAttributeCorrectly(bool formatXml) { var builder = new TransformBuilder(); var element = builder.CreateOutput(OutputType.Xml, formatXml); Assert.Equal(formatXml, element.Attributes().Any(a => a.Name == "indent")); }
public void CallsTransformFactories() { var factory1 = new TestTransformFactory("1"); var factory2 = new TestTransformFactory("2"); var factory3 = new TestTransformFactory("3"); var builder = new TransformBuilder(new ServiceCollection().BuildServiceProvider(), new[] { factory1, factory2, factory3 }, Array.Empty <ITransformProvider>()); var route = new RouteConfig().WithTransform(transform => { transform["2"] = "B"; }); var errors = builder.ValidateRoute(route); Assert.Empty(errors); Assert.Equal(1, factory1.ValidationCalls); Assert.Equal(1, factory2.ValidationCalls); Assert.Equal(0, factory3.ValidationCalls); var transforms = builder.BuildInternal(route, new ClusterConfig()); Assert.Equal(1, factory1.BuildCalls); Assert.Equal(1, factory2.BuildCalls); Assert.Equal(0, factory3.BuildCalls); Assert.Single(transforms.ResponseTrailerTransforms); }
public void Build_DefaultConfiguration_DocumentHasCorrectRootNode() { var builder = new TransformBuilder(); var document = builder.Build(); Assert.NotNull(document.Root); Assert.Equal("stylesheet", document.Root.Name.LocalName); }
public void Append_ReturnedBuilderIsSameObject() { var builder = new TransformBuilder(); var testElement = new XElement("TestElement"); var returnedBuilder = builder.Append(testElement); Assert.Same(builder, returnedBuilder); }
public void CreateOutputElement_CreatesMethodAttributeCorrectly(OutputType outputType, string expectedValue) { var builder = new TransformBuilder(); var element = builder.CreateOutput(outputType, true); var methodAttribute = element.Attribute("method"); Assert.NotNull(methodAttribute); Assert.Equal(expectedValue, methodAttribute.Value); }
public void Append_NullValue_IsIgnored() { var builder = new TransformBuilder(); builder.Append(null); var document = builder.Build(); Assert.NotNull(document.Root); }
public void Build_DefaultConfiguration_DocumentIsValidXslt() { var builder = new TransformBuilder(); var document = builder.Build(); var transform = new XslCompiledTransform(); using (var reader = document.CreateReader()) { transform.Load(reader); } }
public void Append_SingleValue_AddsObjectToRoot() { var builder = new TransformBuilder(); var testElement = new XElement("TestElement"); builder.Append(testElement); var document = builder.Build(); var rootNode = document.Root; Assert.NotNull(rootNode); Assert.Contains(rootNode.Elements(), e => e == testElement); }
/// <summary> /// Transform a record based on predefined rules (in appsettings.json) /// </summary> /// <param name="csvItem">a record in CSV file</param> /// <returns>transformed record</returns> public ExpandoObject TransformRecord(dynamic expando) { if (Options != null) { var builder = new TransformBuilder(Options, expando); return(builder .RemoveColumns() .NewSumColumns() .GetInstance()); } return(expando); }
public void Initialize_DefaultConfiguration_RootHasCorrectSubNodes() { var builder = new TransformBuilder(); builder.Initialize(); var document = builder.Build(); var rootNode = document.Root; Assert.NotNull(rootNode); Assert.Equal(3, rootNode.Elements().Count()); Assert.Contains(rootNode.Elements(), e => e.Name.LocalName == "strip-space"); Assert.Contains(rootNode.Elements(), e => e.Name.LocalName == "output"); Assert.Contains(rootNode.Elements(), e => e.Name.LocalName == "template"); }
public void Build_ConfigIgnoreWhitespaceIsFalse_RemovesStripSpaceCorrectly() { var config = new TransformBuilderConfiguration { IgnoreWhitespace = false }; var builder = new TransformBuilder(config); var document = builder.Build(); builder.Initialize(); var rootNode = document.Root; Assert.NotNull(rootNode); Assert.DoesNotContain(rootNode.Elements(), e => e.Name.LocalName == "strip-space"); }
public void Append_MultipleValues_AddsObjectsToRoot() { var builder = new TransformBuilder(); var testElement = new XElement("TestElement"); var testAttribute = new XAttribute("TestAttribute", "TestAttributeValue"); builder.Append(testElement, testAttribute); var document = builder.Build(); var rootNode = document.Root; Assert.NotNull(rootNode); Assert.Contains(rootNode.Elements(), e => e.Name.LocalName == "TestElement"); Assert.Contains(rootNode.Attributes(), e => e.Name.LocalName == "TestAttribute" && e.Value == "TestAttributeValue"); }
public BranchBuilder(TransformBuilder transformBuilder, TflBranch branch) { _transformBuilder = transformBuilder; _branch = branch; }
public BranchBuilder(TransformBuilder transformBuilder, TflBranch branch) { _transformBuilder = transformBuilder; _branch = branch; }
static HttpTransformer() { Default = TransformBuilder.CreateTransformer(new TransformBuilderContext()); }