public void sdk_TemplateCreate() { Console.WriteLine("Exclusão do usuário 44: " + eqpt.Destroy <Users>(44)); long idU = eqpt.Add <Users>(new Users() { id = 44, name = "Usuario com biometria", registration = "biometria" }); Assert.IsTrue(idU == 44, "Erro ao incluir o usuário 44"); Console.WriteLine("Incluído usuário 44"); TemplateResult tr1 = eqpt.TemplateExtract(new Bitmap(@"..\..\dedo1.bmp")); TemplateResult tr2 = eqpt.TemplateExtract(new Bitmap(@"..\..\dedo2.bmp")); TemplateResult tr3 = eqpt.TemplateExtract(new Bitmap(@"..\..\dedo3.bmp")); Console.WriteLine("Templates extraidos: " + tr1.quality + " " + tr2.quality + " " + tr3.quality); StatusResult er = eqpt.TemplateCreate(idU, tr1.template, tr2.template, tr3.template); if (er.Codigo != 0) { Console.WriteLine(er.Codigo + ": " + er.Status); Assert.Inconclusive(er.Codigo + ": " + er.Status); } else { Console.WriteLine("Templates Adicionado!"); } }
public TemplateResult Run(Config config, string assemblyPath) { var rv = new TemplateResult(); AssemblyResolver.Create(Path.GetDirectoryName(assemblyPath)); Assembly assembly = Assembly.LoadFile(assemblyPath); rv.Log($"Loaded {assemblyPath}"); ITemplate template = (ITemplate)assembly.CreateInstance("MteTemplate"); try { if (template != null) { rv.Log($"Found template {template.GetType().FullName}"); return(template.Execute(config)); } throw new Exception($"Could not find 'MteTemplate' in {assembly.FullName} @ '{assembly.Location}'"); } catch (Exception e) { rv.Log($"Exception in Template {assemblyPath}\r\n{e}"); throw; } }
public void sdk_TemplateExtract() { TemplateResult tr = eqpt.TemplateExtract(new Bitmap(@"..\..\dedo1.bmp")); Assert.IsTrue(tr.quality > 50 && !string.IsNullOrEmpty(tr.template), "Erro ao extrair template"); Console.WriteLine("Quality: " + tr.quality + "\r\nTemplate: " + tr.template); }
public bool TryGetDescriptorBinding(string shapeType, out ShapeBinding shapeBinding) { var processors = BuildShapeProcessors(); TemplateResult templateResult = null; if (processors.TryGetValue(shapeType, out templateResult)) { shapeBinding = new ShapeBinding { BindingName = "Templates", Binding = ctx => CoerceHtmlString(_templateService.Execute( templateResult.Template, templateResult.Name, templateResult.Processor, ctx.Value)), ShapeDescriptor = new ShapeDescriptor { ShapeType = shapeType } }; return(true); } shapeBinding = null; return(false); }
public async Task ValidateVMInExistingArmSubnetId() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VM3")); var artifacts = new AsmArtifacts(); artifacts.VirtualMachines.Add((await azureContextUSCommercialRetriever.GetAzureAsmCloudServices())[0].VirtualMachines[0]); TestHelper.SetTargetSubnets(artifacts); TemplateResult templateReault = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateReault.GenerateTemplate(); // Validate VM var vmResource = templateJson["resources"].Where( j => j["type"].Value <string>() == "Microsoft.Compute/virtualMachines").Single(); Assert.AreEqual("VM3-vm", vmResource["name"].Value <string>()); StringAssert.Contains(vmResource["properties"]["networkProfile"]["networkInterfaces"][0]["id"].Value <string>(), "'" + ArmConst.ProviderNetworkInterfaces + "VM3-nic'"); // Validate NIC var nicResource = templateJson["resources"].Where( j => j["type"].Value <string>() == "Microsoft.Network/networkInterfaces").Single(); Assert.AreEqual("VM3-nic", nicResource["name"].Value <string>()); StringAssert.Contains(nicResource["properties"]["ipConfigurations"][0]["properties"]["subnet"]["id"].Value <string>(), "/subscriptions/22222222-2222-2222-2222-222222222222/resourceGroups/dummygroup-rg/providers/Microsoft.Network/virtualNetworks/DummyVNet/subnets/subnet01"); }
/// <summary> /// /// </summary> /// <typeparam name="T">is the object type corresponing to the tempalte</typeparam> /// <param name="tPath">xls template path</param> /// <returns></returns> protected virtual ActionResult Template <T>(string tPath, T Model) where T : class { TemplateResult <T> tr = new TemplateResult <T>(tPath); tr.Object = (T)Model; return(tr); }
/// <summary> /// Write a template to storage /// </summary> internal static async Task <TemplateResult> WriteTemplate(string baseDirectory, ITemplate template) { var result = new TemplateResult { FilePath = Path.Combine(CreateFolder(baseDirectory, template.GetFilePath()), template.GetFileName()) }; string content = null; try { content = template.GetFileContent(); } catch (Exception ex) { result.Error = ex.ToString(); result.HasError = true; Console.WriteLine(ex.ToString()); return(result); } if (string.IsNullOrEmpty(content) || string.IsNullOrEmpty(result.FilePath)) { // Skip if file is empty } else { result = await WriteAllText(result.FilePath, content); } return(result); }
public async Task ValidateVMInVnetButNotInTargetVNet() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VM3")); var artifacts = new AsmArtifacts(); artifacts.VirtualMachines.Add((await azureContextUSCommercialRetriever.GetAzureAsmCloudServices())[0].VirtualMachines[0]); bool exceptionThrown = false; try { TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); } catch (Exception exc) { if (exc.GetType() == typeof(ArgumentException) && exc.Message == "Target Virtual Network for ASM Virtual Machine 'VM3' must be specified.") { exceptionThrown = true; } } Assert.IsFalse(!exceptionThrown, "Did not receive Null Target Virtual Network Argument Exception"); }
/// <summary> /// Index action. /// </summary> public ActionResult Index() { // Setup the result to use Default.master as the master page. var result = new TemplateResult() { MasterPageFile = "~/Default.master" }; // Setup some viewdata ViewData[ "title" ] = "Home"; // Master page needs title ViewData[ "MVC" ] = "Cool"; // Load a plain ASP.NET user control into the Body template result.AddControl( "Body", "~/Controls/HelloWorld.ascx" ); // Load a custom control instance into the Body template result.AddControl( "Body", new Block() { CssClass = "block", Text = String.Format( "Page processed at {0}", DateTime.Now ) } ); // Load an MVC view user control into the Right template result.AddControl( "Right", "~/Views/ViewDataDumper.ascx" ); return result; }
//扫描箱码 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { try { if (e.KeyChar == 13) { String result = HttpRequest.GetTemplates(QRanalyze.QRDecod(textBox1.Text.Substring(textBox1.Text.Length - 35, 35)), Session.Id); TemplateResult Result = JsonConvert.DeserializeObject <TemplateResult>(result); if (Result.success) { hashtable.Clear(); comboBox.Items.Clear(); foreach (UnitTemp unitTemp in Result.data.unitTemps) { foreach (TempDel Temp in unitTemp.tempDels) { comboBox.Items.Add(Temp.id); hashtable.Add(Temp.id, Temp); } } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { textBox1.Text = ""; } }
public void sdk_TemplateMatch() { Console.WriteLine("Exclusão do usuário 44: " + eqpt.Destroy <Users>(44)); TemplateResult tr1 = eqpt.TemplateExtract(new Bitmap(@"..\..\dedo1.bmp")); Console.WriteLine("Quality: " + tr1.quality + "\r\nTemplate: " + tr1.template); TemplateResult tr2 = eqpt.TemplateExtract(new Bitmap(@"..\..\dedo2.bmp")); Console.WriteLine("Quality: " + tr2.quality + "\r\nTemplate: " + tr2.template); TemplateResult tr3 = eqpt.TemplateExtract(new Bitmap(@"..\..\dedo3.bmp")); Console.WriteLine("Quality: " + tr3.quality + "\r\nTemplate: " + tr3.template); string cOther = "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"; StatusResult er = eqpt.TemplateMatch(tr1.template, cOther, tr3.template); Console.WriteLine("A) " + er.Codigo + ": " + er.Status); Assert.IsTrue(er.Codigo != 0, "Deveria ter resultado erro"); // Tudo certo aqui er = eqpt.TemplateMatch(tr1.template, tr2.template, tr3.template); Console.WriteLine("B) " + er.Codigo + ": " + er.Status); Assert.IsTrue(er.Codigo == 0, "Deveria ter dado certo"); }
public void Selected_item_is_maintained() { TemplateResult .HasElement("select") .HasElement(x => x.HasAttributeValue("value", "nothing")) .WithAttribute("selected").ShouldHaveValue("true"); }
public void TestPrimitiveHeaderGenerationWithDictionaryCollectionType() { ProjectMappingManagerSetup.InitializeManager(ServiceProvider, "ProjectMapping.DataContractDsl.Tests.xml"); PrimitiveDataTypeCollection collectionElement = CreateDefaultPrimitiveDataTypeCollection(typeof(Dictionary <,>), PrimitiveDataElementType1); TemplateResult result = RunTemplateWithErrors(collectionElement); // should have a warning Assert.AreEqual <int>(1, result.Errors.Length); string content = result.ContentResults; Type generatedType = CompileAndGetType(content); Assert.IsTrue(generatedType.IsClass); Assert.AreEqual <Type>(typeof(Collection <int>), generatedType.BaseType); XmlRootAttribute xmlRootAttr = TypeAsserter.AssertAttribute <XmlRootAttribute>(generatedType); Assert.AreEqual <string>(ElementNamespace, xmlRootAttr.Namespace); Assert.IsFalse(xmlRootAttr.IsNullable); XmlTypeAttribute xmlTypeAttr = TypeAsserter.AssertAttribute <XmlTypeAttribute>(generatedType); Assert.AreEqual <string>(ElementNamespace, xmlTypeAttr.Namespace); }
private string RunTemplateInternal(ModelElement rootElement, ICodeGenerationService codeGenerationService) { TemplateResult result = RunTemplateReturningErrors(rootElement, codeGenerationService); Assert.AreNotEqual <string>("ErrorGeneratingOutput", result.ContentResults); return(result.ContentResults); }
public void Selected_item_is_updated() { TemplateResult .HasElement("select") .HasElement(x => x.HasAttributeValue("value", Entity.Name)) .WithAttribute("selected").ShouldHaveValue("true"); }
public async Task ValidateSingleVnetWithNoSubnetsGetsNewDefaultSubet() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET4")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("asmnet")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("asmnet-vnet", vnets.First()["name"].Value <string>()); Assert.AreEqual("10.0.0.0/20", vnets.First()["properties"]["addressSpace"]["addressPrefixes"][0].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(1, subnets.Count()); Assert.AreEqual("Subnet1", subnets[0]["name"].Value <string>()); Assert.AreEqual("10.0.0.0/20", subnets[0]["properties"]["addressPrefix"].Value <string>()); }
public async Task ValidateSingleVnetWithNsgAndRT() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET2")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("asmtest")); artifacts.NetworkSecurityGroups.Add(await azureContextUSCommercialRetriever.GetAzureAsmNetworkSecurityGroup("asmnsg")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate NSG var nsgs = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/networkSecurityGroups"); Assert.AreEqual(1, nsgs.Count()); Assert.AreEqual("asmnsg-nsg", nsgs.First()["name"].Value <string>()); // Validate NSG rules JArray rules = (JArray)nsgs.First()["properties"]["securityRules"]; Assert.AreEqual(2, rules.Count()); Assert.AreEqual("Enable-Internal-DNS", rules[0]["name"].Value <string>()); Assert.AreEqual("Port-7777-rule", rules[1]["name"].Value <string>()); // Validate RouteTable var rt = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/routeTables"); Assert.AreEqual(1, rt.Count()); Assert.AreEqual("asmrt", rt.First()["name"].Value <string>()); // Validate Routes JArray routes = (JArray)rt.First()["properties"]["routes"]; Assert.AreEqual(1, routes.Count()); Assert.AreEqual("all-traffic-to-fw", routes[0]["name"].Value <string>()); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("asmtest-vnet", vnets.First()["name"].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(1, subnets.Count()); Assert.AreEqual("Subnet-1", subnets.First()["name"].Value <string>()); StringAssert.Contains(subnets.First()["properties"]["networkSecurityGroup"]["id"].Value <string>(), "networkSecurityGroups/asmnsg"); StringAssert.Contains(subnets.First()["properties"]["routeTable"]["id"].Value <string>(), "routeTables/asmrt"); }
private static void CaptureTemplateErrors <TTemplateContext>(TemplateResult templateResult, TemplateContext <TTemplateContext> templateContext, ValidationCategory validationCategory) where TTemplateContext : class { foreach (var templateError in templateContext.Errors) { templateResult.CaptureError(templateError.Message, ErrorLevel.ERROR, validationCategory, templateError.LineInfo); } }
protected override bool ProcessItem(ITaskItem item, Config config, TemplateResult result) { if (Path.GetFileName(item.GetMetadata("FullPath"))?.StartsWith("TemporaryGeneratedFile") == true) { return(true); } return(base.ProcessItem(item, config, result)); }
public async Task ValidateSingleVnetWithExpressRouteGateway() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET3")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("vnet3")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("vnet3-vnet", vnets.First()["name"].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(2, subnets.Count()); // Validate gateway var gw = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworkGateways"); Assert.AreEqual(1, gw.Count()); Assert.AreEqual("vnet3-gw", gw.First()["name"].Value <string>()); Assert.AreEqual("ExpressRoute", gw.First()["properties"]["gatewayType"].Value <string>()); // Validate no local network var localGw = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/localNetworkGateways"); Assert.AreEqual(0, localGw.Count()); // Validate connection var conn = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/connections"); Assert.AreEqual(1, conn.Count()); Assert.AreEqual("vnet3-gw-localsite-connection", conn.First()["name"].Value <string>()); Assert.AreEqual("ExpressRoute", conn.First()["properties"]["connectionType"].Value <string>()); Assert.IsNotNull(conn.First()["properties"]["peer"]["id"].Value <string>()); // Validate message Assert.AreEqual(1, templateResult.Messages.Count); StringAssert.Contains(templateResult.Messages[0], "ExpressRoute"); }
protected virtual bool ProcessItem(ITaskItem item, Config config, TemplateResult result) { string fullPath = item.GetMetadata("FullPath"); //TODO: ensure this is actually a C# file var tree = CSharpSyntaxTree.ParseText(File.ReadAllText(fullPath)); SyntaxNode newRoot = Visit(tree.GetRoot()); newRoot = Formatter.Format(newRoot, newRoot.FullSpan, new AdhocWorkspace()); WriteFile(newRoot, item, config, result); return(true); }
/// <summary> /// Don't use this unless you're implementing ICodeTemplateWidget. Use Insert instead. /// </summary> public TemplateResult InsertTemplateContents (MonoDevelop.Ide.Gui.Document document) { ProjectDom dom = document.Dom; ParsedDocument doc = document.ParsedDocument ?? MonoDevelop.Projects.Dom.Parser.ProjectDomService.GetParsedDocument (dom, document.FileName); MonoDevelop.Ide.Gui.TextEditor editor = document.TextEditor; Mono.TextEditor.TextEditorData data = document.TextEditorData; int offset = editor.CursorPosition; int line, col; editor.GetLineColumnFromPosition (offset, out line, out col); // string leadingWhiteSpace = GetLeadingWhiteSpace (editor, editor.CursorLine); TemplateContext context = new TemplateContext { Template = this, Document = document, ProjectDom = dom, ParsedDocument = doc, InsertPosition = new DomLocation (line, col), LineIndent = GetIndent (editor, line, 0), TemplateCode = IndentCode (Code, document.TextEditorData.EolMarker, GetIndent (editor, line, 0)) }; if (data.IsSomethingSelected) { int start = data.SelectionRange.Offset; while (Char.IsWhiteSpace (data.Document.GetCharAt (start))) { start++; } int end = data.SelectionRange.EndOffset; while (Char.IsWhiteSpace (data.Document.GetCharAt (end - 1))) { end--; } context.LineIndent = GetIndent (editor, data.Document.OffsetToLineNumber (start) + 1, 0); context.SelectedText = RemoveIndent (data.Document.GetTextBetween (start, end), context.LineIndent); data.Remove (start, end - start); offset = start; } else { string word = GetWordBeforeCaret (editor).Trim (); if (word.Length > 0) offset = DeleteWordBeforeCaret (editor); } TemplateResult template = FillVariables (context); template.InsertPosition = offset; document.TextEditorData.Insert (offset, template.Code); if (template.CaretEndOffset >= 0) { document.TextEditorData.Caret.Offset = offset + template.CaretEndOffset; } else { document.TextEditorData.Caret.Offset= offset + template.Code.Length; } return template; }
public bool TryGetDescriptorBinding(string shapeType, out ShapeBinding shapeBinding) { var processors = BuildShapeProcessors(); var acceptableRenderingModes = new List <RenderingMode>() { RenderingMode.FrontEndAndAdmin }; if (AdminFilter.IsApplied(_requestContext)) { acceptableRenderingModes.Add(RenderingMode.Admin); } else { acceptableRenderingModes.Add(RenderingMode.FrontEnd); } var templateResults = processors[shapeType].Where(template => acceptableRenderingModes.Contains(template.RenderingMode)); TemplateResult templateResult = null; var templateResultsCount = templateResults.Count(); if (templateResultsCount == 1) { templateResult = templateResults.FirstOrDefault(); } else if (templateResultsCount > 1) { // Templates with the same name but specified rendering mode are prioritized. templateResult = templateResults.FirstOrDefault(template => template.RenderingMode != RenderingMode.FrontEndAndAdmin); } if (templateResult != null) { shapeBinding = new ShapeBinding { BindingName = "Templates", Binding = ctx => CoerceHtmlString(_templateService.Execute( templateResult.Template, templateResult.Name, templateResult.Processor, ctx.Value)), ShapeDescriptor = new ShapeDescriptor { ShapeType = shapeType } }; return(true); } shapeBinding = null; return(false); }
//关联模板集合 private void button2_Click(object sender, EventArgs e) { try { String result = HttpRequest.GetTemplates(QRanalyze.QRDecod(txtTemplates.Text), Session.Id); TemplateResult TemplateResult = JsonConvert.DeserializeObject <TemplateResult>(result); Console.WriteLine(result); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private Dictionary <string, string> GetProcessedItems(TemplateResult templateResult) { Dictionary <string, string> processedItems = new Dictionary <string, string>(); foreach (ArmResource resource in templateResult.Resources) { if (!processedItems.ContainsKey(resource.type + resource.name)) { processedItems.Add(resource.type + resource.name, resource.location); } } return(processedItems); }
public async Task ValidateComplexSingleVnet() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET1")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("10.2.0.0")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("10.2.0.0-vnet", vnets.First()["name"].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(8, subnets.Count()); // Validate gateway var gw = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworkGateways"); Assert.AreEqual(1, gw.Count()); Assert.AreEqual("10.2.0.0-gw", gw.First()["name"].Value <string>()); var localGw = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/localNetworkGateways"); Assert.AreEqual(2, localGw.Count()); Assert.AreEqual("MOBILEDATACENTER-LocalGateway", localGw.First()["name"].Value <string>()); Assert.AreEqual("EastUSNet-LocalGateway", localGw.Last()["name"].Value <string>()); var pips = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/publicIPAddresses"); Assert.AreEqual(1, pips.Count()); Assert.AreEqual("10.2.0.0-gw-pip", pips.First()["name"].Value <string>()); Assert.AreEqual("Dynamic", pips.First()["properties"]["publicIPAllocationMethod"].Value <string>()); }
public void ShouldErrorWhenPrimitivePartHasEmptyType() { ProjectMappingManagerSetup.InitializeManager(ServiceProvider, "ProjectMapping.ServiceContractDsl.Tests.xml"); Message rootElement = CreateRoot <Message>(MessageContractElementName, MessageContractElementNamespace); rootElement.ServiceContractModel.ProjectMappingTable = "WCF"; PrimitiveMessagePart primitivePart = new PrimitiveMessagePart(Store); primitivePart.Name = "TestProperty"; primitivePart.Type = string.Empty; rootElement.MessageParts.Add(primitivePart); TemplateResult result = RunTemplateWithErrors(rootElement); Assert.AreEqual <int>(1, result.Errors.Length); //StringAssert.Contains(result.Errors[0], "Cannot generate Message Contract due to invalid type"); }
private bool RunTemplate(string assemblyPath, Config config) { AppDomain domain = null; try { var setup = new AppDomainSetup { ApplicationBase = Path.GetDirectoryName(typeof(Runner).Assembly.Location), ConfigurationFile = $"{assemblyPath}.config", LoaderOptimization = LoaderOptimization.MultiDomain }; Log.LogMessage($"Creating app domain for: {assemblyPath}"); domain = AppDomain.CreateDomain(Path.GetFileNameWithoutExtension(assemblyPath) + "MteDomain", null, setup); // ////domain = AppDomain.CreateDomain(Path.GetFileNameWithoutExtension(assemblyPath) + "MteDomain"); // //Log.LogMessage($"MTE.Internal: {typeof(Runner).Assembly.Location}"); // var runner = (Runner)domain.CreateInstanceFromAndUnwrap(typeof(Runner).Assembly.Location, typeof(Runner).FullName); Log.LogMessage("Created runner"); TemplateResult result = runner.Run(config, assemblyPath); Log.LogMessage($"Got TemplateResult {result.Success}"); foreach (var message in result.Messages ?? Enumerable.Empty <string>()) { Log.LogMessage($" ==> {message}"); } if (result.Success) { RemoveItems = result.RemovedItems.ToArray(); NewItems = result.AddedItems.Select(x => new TaskItem(x.FilePath)).Cast <ITaskItem>().ToArray(); } return(true); } finally { if (domain != null) { AppDomain.Unload(domain); } } }
private async Task <JObject> GenerateSingleVMTemplate() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VM1")); var artifacts = new AsmArtifacts(); artifacts.VirtualMachines.Add((await azureContextUSCommercialRetriever.GetAzureAsmCloudServices())[0].VirtualMachines[0]); TestHelper.SetTargetSubnets(artifacts); TemplateResult tempalteResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); return(tempalteResult.GenerateTemplate()); }
public void TestPrimitiveHeaderGenerationWithArrayCollectionType() { ProjectMappingManagerSetup.InitializeManager(ServiceProvider, "ProjectMapping.DataContractDsl.Tests.xml"); PrimitiveDataTypeCollection collectionElement = CreateDefaultPrimitiveDataTypeCollection(typeof(Array), PrimitiveDataElementType1); TemplateResult result = RunTemplateWithErrors(collectionElement); // should have a warning Assert.AreEqual <int>(1, result.Errors.Length); string content = result.ContentResults; Type generatedType = CompileAndGetType(content); Assert.IsTrue(generatedType.IsClass); Assert.AreEqual <Type>(typeof(Collection <int>), generatedType.BaseType); }
/// <summary> /// Write text to a file /// </summary> internal static async Task <TemplateResult> WriteAllText(string path, string contents) { var result = new TemplateResult { FilePath = path }; byte[] existingFile = null; byte[] newFile = null; if (File.Exists(result.FilePath)) { var existingFileInfo = new FileInfo(path); using (var existingStream = existingFileInfo.OpenRead()) { existingFile = System.Security.Cryptography.MD5.Create().ComputeHash(existingStream); } newFile = System.Security.Cryptography.MD5.Create().ComputeHash(System.Text.Encoding.UTF8.GetBytes(contents)); } if (existingFile == null && newFile == null) { // Then a new file so continue } else if (IsHashEqual(existingFile, newFile)) { // files the same so skip return(result); } // else files different so continue try { await File.WriteAllTextAsync(path, contents); } catch (Exception ex) { result.Error = ex.ToString(); result.HasError = true; Console.WriteLine(ex.ToString()); } return(result); }
public TemplateResult FillVariables (TemplateContext context) { var expansion = CodeTemplateService.GetExpansionObject (this); var result = new TemplateResult (); var sb = new StringBuilder (); int lastOffset = 0; string code = context.Editor.FormatString (context.InsertPosition, context.TemplateCode); result.TextLinks = new List<TextLink> (); foreach (System.Text.RegularExpressions.Match match in variableRegEx.Matches (code)) { string name = match.Groups [1].Value; sb.Append (code.Substring (lastOffset, match.Index - lastOffset)); lastOffset = match.Index + match.Length; if (string.IsNullOrEmpty (name)) { // $$ is interpreted as $ sb.Append ("$"); } else if (name == "end") { result.CaretEndOffset = sb.Length; } else if (name == "selected") { if (!string.IsNullOrEmpty (context.SelectedText)) { string indent = GetIndent (sb); string selection = Reindent (context.SelectedText, indent); sb.Append (selection); } } if (!variableDecarations.ContainsKey (name)) continue; var link = result.TextLinks.Find (l => l.Name == name); bool isNew = link == null; if (isNew) { link = new TextLink (name); if (!string.IsNullOrEmpty (variableDecarations [name].ToolTip)) link.Tooltip = GettextCatalog.GetString (variableDecarations [name].ToolTip); link.Values = new CodeTemplateListDataProvider (variableDecarations [name].Values); if (!string.IsNullOrEmpty (variableDecarations [name].Function)) { link.Values = expansion.RunFunction (context, null, variableDecarations [name].Function); } result.TextLinks.Add (link); } link.IsEditable = variableDecarations [name].IsEditable; link.IsIdentifier = variableDecarations [name].IsIdentifier; if (!string.IsNullOrEmpty (variableDecarations [name].Function)) { IListDataProvider<string > functionResult = expansion.RunFunction (context, null, variableDecarations [name].Function); if (functionResult != null && functionResult.Count > 0) { string s = (string)functionResult [functionResult.Count - 1]; if (s == null) { if (variableDecarations.ContainsKey (name)) s = variableDecarations [name].Default; } if (s != null) { link.AddLink (new TextSegment (sb.Length, s.Length)); if (isNew) { link.GetStringFunc = delegate (Func<string, string> callback) { return expansion.RunFunction (context, callback, variableDecarations [name].Function); }; } sb.Append (s); } } else { AddDefaultValue (sb, link, name); } } else { AddDefaultValue (sb, link, name); } } sb.Append (code.Substring (lastOffset, code.Length - lastOffset)); // format & indent template code var data = TextEditorFactory.CreateNewDocument (); data.Text = sb.ToString (); data.TextChanged += delegate(object sender, MonoDevelop.Core.Text.TextChangeEventArgs e) { int delta = e.InsertionLength - e.RemovalLength; foreach (var link in result.TextLinks) { link.Links = link.Links.AdjustSegments (e).ToList (); } if (result.CaretEndOffset > e.Offset) result.CaretEndOffset += delta; }; IndentCode (data, context.LineIndent); result.Code = data.Text; return result; }
public TemplateResult FillVariables (TemplateContext context) { ExpansionObject expansion = CodeTemplateService.GetExpansionObject (this); TemplateResult result = new TemplateResult (); StringBuilder sb = new StringBuilder (); int lastOffset = 0; string code = context.Document.Editor.FormatString (context.InsertPosition, context.TemplateCode); result.TextLinks = new List<TextLink> (); foreach (Match match in variableRegEx.Matches (code)) { string name = match.Groups [1].Value; sb.Append (code.Substring (lastOffset, match.Index - lastOffset)); lastOffset = match.Index + match.Length; if (string.IsNullOrEmpty (name)) { // $$ is interpreted as $ sb.Append ("$"); } else if (name == "end") { result.CaretEndOffset = sb.Length; } else if (name == "selected") { if (!string.IsNullOrEmpty (context.SelectedText)) { string indent = GetIndent (sb); string selection = Reindent (context.SelectedText, indent); sb.Append (selection); } } if (!variableDecarations.ContainsKey (name)) continue; TextLink link = result.TextLinks.Find (l => l.Name == name); bool isNew = link == null; if (isNew) { link = new TextLink (name); if (!string.IsNullOrEmpty (variableDecarations [name].ToolTip)) link.Tooltip = GettextCatalog.GetString (variableDecarations [name].ToolTip); link.Values = new CodeTemplateListDataProvider (variableDecarations [name].Values); if (!string.IsNullOrEmpty (variableDecarations [name].Function)) { link.Values = expansion.RunFunction (context, null, variableDecarations [name].Function); } result.TextLinks.Add (link); } link.IsEditable = variableDecarations [name].IsEditable; link.IsIdentifier = variableDecarations [name].IsIdentifier; if (!string.IsNullOrEmpty (variableDecarations [name].Function)) { IListDataProvider<string > functionResult = expansion.RunFunction (context, null, variableDecarations [name].Function); if (functionResult != null && functionResult.Count > 0) { string s = (string)functionResult [functionResult.Count - 1]; if (s == null) { if (variableDecarations.ContainsKey (name)) s = variableDecarations [name].Default; } if (s != null) { link.AddLink (new Segment (sb.Length, s.Length)); if (isNew) { link.GetStringFunc = delegate (Func<string, string> callback) { return expansion.RunFunction (context, callback, variableDecarations [name].Function); }; } sb.Append (s); } } else { AddDefaultValue (sb, link, name); } } else { AddDefaultValue (sb, link, name); } } sb.Append (code.Substring (lastOffset, code.Length - lastOffset)); // format & indent template code TextEditorData data = new TextEditorData (); data.Text = sb.ToString (); data.Document.TextReplaced += delegate(object sender, ReplaceEventArgs e) { int delta = -e.Count + (e.Value != null ? e.Value.Length : 0); foreach (var link in result.TextLinks) { foreach (var segment in link.Links) { if (segment.Offset > e.Offset) { segment.Offset += delta; } } } if (result.CaretEndOffset > e.Offset) result.CaretEndOffset += delta; }; var formatter = CodeFormatterService.GetFormatter (context.Document.Editor.Document.MimeType); if (formatter != null && context.Document.HasProject) { formatter.OnTheFlyFormat (context.Document.Project.Policies, data, 0, data.Length); } IndentCode (data, context.LineIndent); result.Code = data.Text; data.Dispose (); return result; }
public TemplateResult FillVariables (TemplateContext context) { ExpansionObject expansion = CodeTemplateService.GetExpansionObject (this); TemplateResult result = new TemplateResult (); StringBuilder sb = new StringBuilder (); int lastOffset = 0; string code = context.Document.Editor.FormatString (context.InsertPosition, context.TemplateCode); result.TextLinks = new List<TextLink> (); foreach (Match match in variableRegEx.Matches (code)) { string name = match.Groups[1].Value; sb.Append (code.Substring (lastOffset, match.Index - lastOffset)); lastOffset = match.Index + match.Length; if (string.IsNullOrEmpty (name)) { // $$ is interpreted as $ sb.Append ("$"); } else if (name == "end") { result.CaretEndOffset = sb.Length; } else if (name == "selected") { if (!string.IsNullOrEmpty (context.SelectedText)) { string indent = GetIndent (sb); string selection = Reindent (context.SelectedText, indent); sb.Append (selection); } } if (!variableDecarations.ContainsKey (name)) continue; TextLink link = result.TextLinks.Find (l => l.Name == name); bool isNew = link == null; if (isNew) { link = new TextLink (name); if (!string.IsNullOrEmpty (variableDecarations[name].ToolTip)) link.Tooltip = GettextCatalog.GetString (variableDecarations[name].ToolTip); link.Values = new CodeTemplateListDataProvider (variableDecarations[name].Values); if (!string.IsNullOrEmpty (variableDecarations[name].Function)) { link.Values = expansion.RunFunction (context, null, variableDecarations[name].Function); } result.TextLinks.Add (link); } link.IsEditable = variableDecarations[name].IsEditable; link.IsIdentifier = variableDecarations[name].IsIdentifier; if (!string.IsNullOrEmpty (variableDecarations[name].Function)) { IListDataProvider<string> functionResult = expansion.RunFunction (context, null, variableDecarations[name].Function); if (functionResult != null && functionResult.Count > 0) { string s = (string)functionResult[functionResult.Count - 1]; if (s == null) { if (variableDecarations.ContainsKey (name)) s = variableDecarations[name].Default; } if (s != null) { link.AddLink (new Segment (sb.Length, s.Length)); if (isNew) { link.GetStringFunc = delegate (Func<string, string> callback) { return expansion.RunFunction (context, callback, variableDecarations[name].Function); }; } sb.Append (s); } } else { AddDefaultValue (sb, link, name); } } else { AddDefaultValue (sb, link, name); } } sb.Append (code.Substring (lastOffset, code.Length - lastOffset)); result.Code = sb.ToString (); return result; }