Example #1
0
        public async Task TestTFileFetch()
        {
            TRest <WeatherSchema> ff = ctx.GetService <TRest <WeatherSchema> >();

            Assert.IsNotNull(ff);


            ff.Options.Headers.Add("X-Rapidapi-Key", "151c615575msh9dcd2d04eaacee6p1b536fjsnffc5ef311334");
            ff.Options.Headers.Add("X-Rapidapi-Host", "community-open-weather-map.p.rapidapi.com");
            ff.RequestUri = "https://community-open-weather-map.p.rapidapi.com/weather?q=paris&lang=fr";
            RegisterComponentForEvents(ff);

            ff.AddToJob(job);

            TLogRow <WeatherSchema> log = ctx.GetService <TLogRow <WeatherSchema> >();

            Assert.IsNotNull(log);
            log.ShowHeader      = true;
            log.Mode            = TLogRowMode.Table;
            log.Alignment       = TLogRowAlignment.Center;
            log.AdditionalSpace = 2;
            log.ShowItemNumber  = true;
            RegisterComponentForEvents(log);
            log.AddInput(job, ff.OnOutput);


            await Start().ContinueWith(t => Thread.Sleep(1000));
        }
Example #2
0
        public async Task TestTConvertType()
        {
            TRowGenerator <ConvertSchemaFrom> gen = ctx.GetService <TRowGenerator <ConvertSchemaFrom> >();

            Assert.IsNotNull(gen);
            RegisterComponentForEvents(gen);
            gen.Options = new RowGeneratorOptions <ConvertSchemaFrom>()
                          .GeneratorFor(e => e.Index, e => ETLString.GetIntRandom(1, 100))
                          .GeneratorFor(e => e.AProperty, e => ETLString.GetAsciiRandomString(20));
            gen.AddToJob(job);
            TLogRow <ConvertSchemaFrom> log1 = ctx.GetService <TLogRow <ConvertSchemaFrom> >();

            Assert.IsNotNull(log1);
            RegisterComponentForEvents(log1);
            log1.AddInput(job, gen.OnOutput);
            log1.Mode           = TLogRowMode.Table;
            log1.ShowItemNumber = true;
            TConvertType <ConvertSchemaFrom, ConvertSchemaTo> ct = ctx.GetService <TConvertType <ConvertSchemaFrom, ConvertSchemaTo> >();

            Assert.IsNotNull(ct);
            RegisterComponentForEvents(ct);
            ct.AddInput(job, gen.OnOutput);
            ct.MapperConfiguation(s => s.ForMember(e => e.AnotherProperty, opt => opt.MapFrom(src => $"{src.AProperty}-{src.Index}")));

            TLogRow <ConvertSchemaTo> log = ctx.GetService <TLogRow <ConvertSchemaTo> >();

            Assert.IsNotNull(log);
            RegisterComponentForEvents(log);
            log.AddInput(job, ct.OnOutput);
            log.Mode           = TLogRowMode.Table;
            log.ShowItemNumber = true;
            await Start().ContinueWith(t => Thread.Sleep(1000));
        }
Example #3
0
        public async Task TestTRowGenerator(SortOrder order, int nbre, int from, int to)
        {
            int _counter = 0;
            int _index   = order switch
            {
                SortOrder.Ascending => from - 1,
                SortOrder.Descending => to + 1,
                _ => throw new Exception("this Sort order is not managed")
            };
            TRowGenerator <TestSchema1> gen = ctx.GetService <TRowGenerator <TestSchema1> >();

            Assert.IsNotNull(gen);
            gen.Options = new RowGeneratorOptions <TestSchema1>().GeneratorFor(s => s.Index, e => ETLString.GetIntRandom(from, to));
            gen.NumberOfRowToGenerate = nbre;
            RegisterComponentForEvents(gen);
            gen.AddToJob(job);

            TSortRow <TestSchema1, TestSchema1> sort = ctx.GetService <TSortRow <TestSchema1, TestSchema1> >();

            Assert.IsNotNull(sort);
            RegisterComponentForEvents(sort);
            sort.OnOutput.Subscribe(row =>
            {
                // Debug.WriteLine($"{row.Index.ToString()}");
                if (order == SortOrder.Ascending)
                {
                    Assert.IsTrue(row.Index >= _index);
                }
                else
                {
                    Assert.IsTrue(row.Index <= _index);
                }
                _index = row.Index;
                ++_counter;
            });

            sort.AddOrderBy(r => r.Index, order);
            sort.AddInput(job, gen.OnOutput);

            TLogRow <TestSchema1> log = ctx.GetService <TLogRow <TestSchema1> >();

            Assert.IsNotNull(log);
            log.ShowHeader      = true;
            log.Mode            = TLogRowMode.Table;
            log.Alignment       = TLogRowAlignment.Center;
            log.AdditionalSpace = 2;
            log.ShowItemNumber  = true;
            RegisterComponentForEvents(log);
            log.AddInput(job, sort.OnOutput);
            job.OnCompleted.SubscribeOn(scheduler).Subscribe(job =>
            {
                Assert.AreEqual(_counter, nbre);
            });
            await Start().ContinueWith(t =>
            {
                Thread.Sleep(1000);
            });
        }