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)); }
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)); }
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); }); }