示例#1
0
        public async Task TransformAsync_DefaultData_Test()
        {
            var t = new TransformerService(op => op.GlobalParameters = new object[] { new { A = "Bao" } });
            var s = await t.TransformAsync("Hoang [A] Duy");

            s.Should().Be("Hoang Bao Duy");
        }
示例#2
0
        public async Task TransformAsync_Custom_Test()
        {
            var t = new TransformerService();
            var s = await t.TransformAsync("Hoang [[A]] Duy", new { A = "Bao" });

            s.Should().Be("Hoang [Bao] Duy");
        }
        public void CanTranslateCSVToDictionary()
        {
            var transformer = new TransformerService(new FileToCSV(), new CSVToDictionary());

            var file = new FileInfo(TestContext.CurrentContext.TestDirectory + @"\SampleFiles\SampleCSV1.csv");

            var dictionary = transformer.Transform <FileInfo, MappedCSV>(file);

            Assert.AreEqual("100 Comma Avenue, NotADelimiter Town USA", dictionary.ElementAt(2)["Address"]);
        }
示例#4
0
        public async Task Transform_HugeTemplate_Async_DataProvider_Test()
        {
            var d        = Path.GetDirectoryName(typeof(TransformTests).Assembly.Location);
            var template = await File.ReadAllTextAsync(d + "/TestData/Data.txt");

            var t = new TransformerService();
            var s = await t.TransformAsync(template, token => Task.FromResult("Duy" as object));

            s.Should().Contain("Duy")
            .And.Subject.Should().NotContainAny("{", "[", "<");
        }
示例#5
0
        public async Task Transform_HugeTemplate_Async_Test()
        {
            var d        = Path.GetDirectoryName(typeof(TransformTests).Assembly.Location);
            var template = await File.ReadAllTextAsync(d + "/TestData/Data.txt");

            var t = new TransformerService();
            var s = await t.TransformAsync(template, new { A = "Hoang", B = "Bao", C = "Duy", D = "HBD" });

            s.Should().ContainAll("Hoang", "Bao", "Duy", "HBD")
            .And.Subject.Should().NotContainAny("{", "[", "<");
        }
示例#6
0
        public void CanHandleTransformingTypeToItself()
        {
            var transformer = new GenericTransformer <SampleClassA, SampleClassA>(a => new SampleClassA {
                Value = a.Value
            });
            var service = new TransformerService(transformer);
            var model   = new SampleClassA {
                Value = "100"
            };
            var circularTransform = service.Transform <SampleClassA, SampleClassA>(model);

            Assert.AreEqual("100", circularTransform.Value);
        }
示例#7
0
        public void CanTransformObjectBetweenThreeTypesAtOnce()
        {
            var model = new SampleClassA {
                Value = "100"
            };
            var transformer1 = new GenericTransformer <SampleClassA, SampleClassB>(a => new SampleClassB {
                Value = int.Parse(a.Value)
            });
            var transformer2 = new GenericTransformer <SampleClassB, SampleClassC>(b => new SampleClassC {
                StringValue = b.Value.ToString(), IntValue = b.Value
            });

            var transformerService = new TransformerService(transformer1, transformer2);
            var transformed        = transformerService.Transform <SampleClassA, SampleClassC>(model);

            Assert.AreEqual("100", transformed.StringValue);
            Assert.AreEqual(100, transformed.IntValue);
        }
        public void CanConsolidateMultipleCSVs()
        {
            var folder = new DirectoryInfo(TestContext.CurrentContext.TestDirectory + @"\SampleFiles\");

            var csvImporter = new CSVToDictionary();

            csvImporter.AddMapping("First Name", "First Name");
            csvImporter.AddMapping("Last Name", "Last Name");
            csvImporter.AddMapping("Address", "Address");
            csvImporter.AddMapping("Name", "First Name");
            csvImporter.AddMapping("SurName", "Last Name");

            var transformer = new TransformerService(new FolderToFiles("*.csv", recurse: false),
                                                     new FileToCSV(),
                                                     csvImporter);

            var results = transformer.Transform <DirectoryInfo, MappedCSV[]>(folder);

            Assert.AreEqual("Jones", results[1].First()["Last Name"]);
        }
示例#9
0
        public void CanTransformMany()
        {
            List <SampleClassA> list = new List <SampleClassA>();

            list.Add(new SampleClassA {
                Value = "10"
            });
            list.Add(new SampleClassA {
                Value = "20"
            });

            var transformer = new GenericTransformer <SampleClassA, SampleClassB>(a => new SampleClassB {
                Value = int.Parse(a.Value)
            });
            var transformerService = new TransformerService(transformer);

            var result = transformerService.Transform <SampleClassA[], SampleClassB[]>(list.ToArray());

            Assert.AreEqual(20, result[1].Value);
        }
示例#10
0
        public Entities.Entity transform(UIEntity entity)
        {
            if (cyclicDependencyChecker)
            {
                return(null);
            }

            TransformerService ts       = new TransformerService();
            SubDiagram         sd       = entity as SubDiagram;
            Submodel           submodel = new Submodel()
            {
                name = entity.EntityName, id = entity.Id
            };

            cyclicDependencyChecker = true;
            submodel.setEntites(ts.transform(new FileService().open(sd.ProjectItem.FullPath).Children));
            cyclicDependencyChecker = false;

            submodel.setResources(ts.getResources());
            return(submodel);
        }
示例#11
0
        public void CanHandleCircularGraph()
        {
            var transformer1 = new GenericTransformer <SampleClassA, SampleClassB>(a => new SampleClassB {
                Value = int.Parse(a.Value)
            });
            var transformer2 = new GenericTransformer <SampleClassB, SampleClassC>(b => new SampleClassC {
                StringValue = b.Value.ToString(), IntValue = b.Value
            });
            var transformer3 = new GenericTransformer <SampleClassC, SampleClassA>(c => new SampleClassA {
                Value = c.StringValue
            });

            var service = new TransformerService(transformer1, transformer2, transformer3);
            var model   = new SampleClassA {
                Value = "100"
            };

            var circularTransform = service.Transform <SampleClassA, SampleClassA>(model);

            Assert.AreEqual("100", circularTransform.Value);
        }
示例#12
0
        public void CanUseMultipleTransformersOnSameArray()
        {
            var transformer1 = new GenericTransformer <SampleClassA, SampleClassB>(a => new SampleClassB {
                Value = int.Parse(a.Value)
            }, a => a.Value.StartsWith("1"));
            var transformer2 = new GenericTransformer <SampleClassA, SampleClassB>(a => new SampleClassB {
                Value = 10 * int.Parse(a.Value)
            }, a => !a.Value.StartsWith("1"));

            var models = new SampleClassA[] { new SampleClassA {
                                                  Value = "100"
                                              }, new SampleClassA {
                                                  Value = "200"
                                              } };

            var service = new TransformerService(transformer1, transformer2);

            var result = service.Transform <SampleClassA[], SampleClassB[]>(models);

            Assert.AreEqual(100, result[0].Value);
            Assert.AreEqual(2000, result[1].Value);
        }
示例#13
0
        private void simulate(ProjectItem pi)
        {
            TransformerService ts         = new TransformerService();
            List <Entity>      entities   = ts.transform(pi.Canvas.Children);
            Controller         controller = new Controller(entities, ts.getResources());

            try
            {
                resetUIShadows(Project.Instance.MainProjectItem.Canvas.Children);
                SaveAll_Click(null, null);
                errorsListBox.Items.Clear();
                controller.validate();
                new RunSimulation(pi, controller).ShowDialog();
            }
            catch (ValidationException ex)
            {
                errorsTab.IsSelected = true;
                foreach (var err in ex.Errors)
                {
                    errorsListBox.Items.Add(new ListBoxItemError(err.Message, ts.transform(err.Entities)));
                }
            }
        }