Ejemplo n.º 1
0
        public async Task TestTransformString2Int()
        {
            var dir = AppContext.BaseDirectory;

            #region arange

            var rows   = new List <IRow>();
            int nrRows = 10;
            for (int i = 0; i < nrRows; i++)
            {
                var rowAndrei = new Mock <IRow>();

                rowAndrei.SetupProperty(it => it.Values,
                                        new Dictionary <string, object>()
                {
                    ["ID"]        = i.ToString(),
                    ["FirstName"] = "Andrei" + i,
                    ["LastName"]  = "Ignat" + i
                }
                                        );

                rows.Add(rowAndrei.Object);
            }


            #endregion
            #region act
            var transform = new TransformerFieldStringInt("ID", "NewIntID");
            //var transform = new TransformOneValueGeneral("int.Parse((oldValue??0).ToString())", "ID", "NewIntID");
            transform.valuesRead = rows.ToArray();
            await transform.Run();

            #endregion
            #region assert
            foreach (var item in transform.valuesTransformed)
            {
                Assert.AreEqual(item.Values["ID"].ToString(), item.Values["NewIntID"].ToString());
                Assert.AreEqual(item.Values["ID"].GetType(), typeof(string));
                Assert.AreEqual(item.Values["NewIntID"].GetType(), typeof(int));
            }

            #endregion
        }
Ejemplo n.º 2
0
        public static SimpleJobConditionalTransformers GetJobCSV()
        {
            #region ARRANGE
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("model,Track_number,buyYear");
            sb.AppendLine("Ford,B325ROS,1990");
            sb.AppendLine("Audi,PL654CSM,2004");
            sb.AppendLine("BMW,B325DFH,2005");
            sb.AppendLine("Ford,B325IYS,2007");

            string filename = "mycsv.csv";

            File.WriteAllText(filename, sb.ToString());
            //define a receiver
            var receiverCSV = new ReceiverCSVFileInt(filename, Encoding.ASCII);
            //receiverCSV.Name = "From model:" + filename;
            //define a sender to csv for all records
            var senderAllToCSV = new Sender_CSV(DeleteFileIfExists("myAll.csv"));
            //senderAllToCSV.Name = "to csv allRecords";

            //define a filter for audi
            var filterAudi = new FilterComparableEqual(typeof(string), "Audi", "model");

            //define a sender just for audi
            var senderCSVAudi = new Sender_CSV(DeleteFileIfExists("myAudi.csv"));
            //senderCSVAudi.Name= "sender CSV";
            //define a filter to transform the buyYear to string

            var buyYearTOString = new TransformerFieldStringInt("buyYear", "NewBuyYear");
            //buyYearTOString.Name = "transform buyYear to int";
            //define a filter for year>2000
            var filterYear2000 = new FilterComparableGreat(typeof(int), 2000, "NewBuyYear");

            //define a sender the year > 2000 to csv
            var sender2000CSV = new Sender_CSV(DeleteFileIfExists("my2000.csv"));
            //sender2000CSV.Name = "sender CSV";
            //define a sender the year > 2000 to json
            var sender2000JSon = new Sender_JSON(DeleteFileIfExists("my2000.js"));
            //sender2000JSon.Name = "sender json";
            //define a filter for Ford
            var filterFord = new FilterComparableEqual(typeof(string), "Ford", "model");

            //define a sender just for ford
            var senderCSVFord = new Sender_CSV(DeleteFileIfExists("myFord.csv"));
            //senderCSVFord.Name = "sender CSV";
            var cond = new SimpleJobConditionalTransformers();
            //add a receiver
            cond.Receivers.Add(0, receiverCSV);

            //add a sender to csv for all records
            cond.AddSender(senderAllToCSV);



            //add a filter to transform the buyYear to string
            //and then fiter for year>2000
            var buy = cond.Add(buyYearTOString, filterYear2000);

            //send the year> 2000 to csv
            cond.Add(filterYear2000, sender2000CSV);
            //send the year >2000 to json
            cond.Add(filterYear2000, sender2000JSon);


            //add a filter for audi and a sender just for audi
            cond.Add(filterAudi, senderCSVAudi);

            //add a filter for ford and a sender just for ford
            cond.Add(filterFord, senderCSVFord);

            return(cond);

            #endregion
        }