Пример #1
0
        public void SimpleTransformerTest()
        {
            var gliders = new List <Glider>()
            {
                new Glider("Puchacz", false),
                new Glider("Pirat", false)
            };

            List <Szybowiec> Map(List <Glider> x) => gliders
            .Select(y => new Szybowiec(y.Type, y.HasEngine))
            .ToList();

            var transformer = new SimpleDataTransformer <Glider, Szybowiec>(Map);
            var szybowce    = transformer.Transform(gliders);

            Assert.AreEqual("Puchacz", szybowce[0].Typ);
            Assert.AreEqual("Pirat", szybowce[1].Typ);
        }
Пример #2
0
        public void FullEtlOperationTest()
        {
            // Define data extractor
            List <Glider> MapExtracted(List <List <string> > x) => x
            .Select(y =>
                    new Glider(y[0], Boolean.Parse(y[1])))
            .ToList();

            var extractor = new FileCsvExtractor <Glider>("../../../Data/gliders.csv", ';', MapExtracted);

            // Define data cleanser
            var cleanser = new FileCsvCleanser <Glider>();

            // Define data transformer
            List <Szybowiec> MapTransform(List <Glider> x) => x
            .Select(y => new Szybowiec(y.Type, y.HasEngine))
            .ToList();

            var transformer = new SimpleDataTransformer <Glider, Szybowiec>(MapTransform);

            // Define data loader
            var loader = new JsonFileLoader <Szybowiec>(_jsonPath);

            // ETL operation
            var processor = new ETLProcessor <Glider, Szybowiec>(extractor, cleanser, transformer, loader);
            var result    = processor.Process();

            Assert.AreEqual(true, result.Result);


            // Check output file
            var glidersJson = File.ReadAllText(_jsonPath);

            var glidersDeserialized = JsonConvert.DeserializeObject <List <Szybowiec> >(glidersJson);

            Assert.AreEqual("Puchacz", glidersDeserialized[0].Typ);
            Assert.AreEqual("Pirat", glidersDeserialized[1].Typ);
        }