public async Task TestFileCSV() { #region ARRANGE StringBuilder sb = new StringBuilder(); sb.AppendLine("model,Track_number"); sb.AppendLine("Ford,B325ROS"); sb.AppendLine("Audi,PL654CSM"); sb.AppendLine("BMW,B325DFH"); sb.AppendLine("Ford,B325IYS"); string filename = SimpleJobConditionalTransformersTest.DeleteFileIfExists("mycsv.csv"); File.WriteAllText(filename, sb.ToString()); #endregion #region ACT var CSVfile = new ReceiverCSVFileInt(filename, Encoding.ASCII); await CSVfile.LoadData(); #endregion #region ASSERT Assert.AreEqual(4, CSVfile.valuesRead.Length); Assert.AreEqual("Ford", CSVfile.valuesRead[0].Values["model"].ToString()); Assert.AreEqual("B325ROS", CSVfile.valuesRead[0].Values["Track_number"].ToString()); #endregion }
public async Task Test2Receivers() { #region arrange var dir = AppContext.BaseDirectory; dir = Path.Combine(dir, "Test2Receivers"); if (Directory.Exists(dir)) { Directory.Delete(dir, true); } Directory.CreateDirectory(dir); string fileNameToWrite = "andrei.txt"; string fullNameFile = Path.Combine(dir, fileNameToWrite); if (File.Exists(fullNameFile)) { File.Delete(fullNameFile); } File.WriteAllText(fullNameFile, "andrei ignat"); IReceive folder = new ReceiverFolderHierarchical(dir, "andrei.txt"); StringBuilder sb = new StringBuilder(); sb.AppendLine("model,Track_number"); sb.AppendLine("Ford,B325ROS"); sb.AppendLine("Audi,PL654CSM"); sb.AppendLine("BMW,B325DFH"); sb.AppendLine("Ford,B325IYS"); string filenameCSV = "mycsv.csv"; if (File.Exists(filenameCSV)) { File.Delete(filenameCSV); } File.WriteAllText(filenameCSV, sb.ToString()); //System.Diagnostics.Process.Start("notepad.exe", filenameCSV); var CSVfile = new ReceiverCSVFileInt(filenameCSV, Encoding.ASCII); #endregion #region ACT var m = new AsyncReceiverMultiple(CSVfile, folder); await m.LoadData(); #endregion #region assert //4 records in CSV + 1 folder + 1 file Assert.AreEqual(6, m.valuesRead.Length); #endregion }
public async Task TestFile() { #region arrange StringBuilder sb = new StringBuilder(); sb.AppendLine("model,Track_number"); sb.AppendLine("Ford,B325ROS"); sb.AppendLine("Audi,PL654CSM"); sb.AppendLine("BMW,B325DFH"); sb.AppendLine("Ford,B325IYS"); string filename = SimpleJobConditionalTransformersTest.DeleteFileIfExists("mycsv.csv"); File.WriteAllText(filename, sb.ToString()); var CSVfile = new ReceiverCSVFileInt(filename, Encoding.ASCII); await CSVfile.LoadData(); string filenameJSON = SimpleJobConditionalTransformersTest.DeleteFileIfExists("cars.json"); var sjons = new Sender_JSON(filenameJSON); sjons.valuesToBeSent = CSVfile.valuesRead; await sjons.Send(); #endregion #region act var f = new ReceiverJSONFileInt(filenameJSON, Encoding.UTF8); await f.LoadData(); #endregion #region assert f?.valuesRead?.Length.ShouldBe(4); f.valuesRead[0].Values["model"].ShouldBe("Ford"); f.valuesRead[0].Values["Track_number"].ShouldBe("B325ROS"); f.valuesRead[1].Values["model"].ShouldBe("Audi"); f.valuesRead[1].Values["Track_number"].ShouldBe("PL654CSM"); f.valuesRead[3].Values["Track_number"].ShouldBe("B325IYS"); #endregion }
public async Task TransmitDataJob2JobFileHardDisk() { StringBuilder sb = new StringBuilder(); sb.AppendLine("model,Track_number"); sb.AppendLine("Ford,B325ROS"); sb.AppendLine("Audi,PL654CSM"); sb.AppendLine("BMW,B325DFH"); sb.AppendLine("Ford,B325IYS"); string filename = SimpleJobConditionalTransformersTest.DeleteFileIfExists("mycsv.csv"); File.WriteAllText(filename, sb.ToString()); var CSVReceiver = new ReceiverCSVFileInt(filename, Encoding.ASCII); string bin = SimpleJobConditionalTransformersTest.DeleteFileIfExists("a.bin"); var senderBinary = new Sender_Binary(bin); var job = new SimpleJob(); job.Receivers.Add(0, CSVReceiver); job.Senders.Add(0, senderBinary); var continueJob = new SimpleJob(); var binReceiver = new ReceiverFileFromStorageBinary(bin); continueJob.Receivers.Add(0, binReceiver); #region ACT await job.Execute(); await continueJob.Execute(); #endregion #region assert Assert.AreEqual(4, binReceiver.valuesRead.Length); Assert.AreEqual("Ford", binReceiver.valuesRead[0].Values["model"]); Assert.AreEqual("B325IYS", binReceiver.valuesRead[3].Values["Track_number"]); #endregion }
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 }