public async Task TestLoadMaxRecordsWithLatestValueDateTime() { #region ARRANGE //ADD A DATABASE AND PUT nrPostsToAdd data into table ISerializeData sd = new SerializeDataInMemory(); var connection = new SqliteConnection(); connection.ConnectionString = "DataSource=:memory:"; connection.Open(); var options = new DbContextOptionsBuilder <ApiContext>() .UseSqlite(connection) .Options; using (var context = new ApiContext(options)) { context.Database.EnsureCreated(); } int nrPostsToAdd = 10; using (var contextAdd = new ApiContext(options)) { for (int i = 0; i < nrPostsToAdd; i++) { contextAdd.Posts.Add(new Post() { Id = i + 1, UserId = i * 2, Content = "Post" + i }); } await contextAdd.SaveChangesAsync(); } int MaxRecordsToLoad = 3; #endregion #region ACT using (var dt = new DBTableDataSqliteMemory <DateTime>(connection, sd) { ConnectionString = "DataSource=:memory:", FieldNameToMark = "LastModifiedOrCreatedTime", TableName = "Posts", MaxRecordsToRead = MaxRecordsToLoad }) { IReceive <DateTime> r = new ReceiverTableSQLiteDateTime(dt); await r.LoadData(); #endregion #region ASSERT Assert.AreEqual(MaxRecordsToLoad, r.valuesRead.Length); Assert.AreEqual(0, (int)r.LastValue.Subtract(DateTime.Now).TotalSeconds); #endregion } }
private static void brrbrrrr() { ISerializeData sd = new SerializeDataInMemory(); var data = new DBTableData <int, SqlConnection>(sd) { ConnectionString = @"Server=(local)\SQL2016;Database=DatePtAndrei;Trusted_Connection=True;", FieldNameToMark = "id", TableName = "active_slowquery_test" }; IReceive r = new ReceiverTableSQLServerInt(data); ISend esExport = new SenderToElasticSearch(@"http://localhost:9200", "ix004", "type007", "id"); ISimpleJob job = new SimpleJob(); job.Receivers.Add(0, r); job.Senders.Add(0, esExport); job.Execute().Wait(); }
public async Task TestOneReceiverAndOneSender() { #region ARRANGE var dir = AppContext.BaseDirectory; string filename = Path.Combine(dir, "a.csv"); if (File.Exists(filename)) { File.Delete(filename); } ISend csvExport = new Sender_CSV(filename); //ADD A DATABASE AND PUT nrPostsToAdd data into table ISerializeData sd = new SerializeDataInMemory(); var connection = new SqliteConnection(); connection.ConnectionString = "DataSource=:memory:"; connection.Open(); var options = new DbContextOptionsBuilder <ApiContext>() .UseSqlite(connection) .Options; using (var context = new ApiContext(options)) { context.Database.EnsureCreated(); } int nrPostsToAdd = 10; using (var contextAdd = new ApiContext(options)) { for (int i = 0; i < nrPostsToAdd; i++) { contextAdd.Posts.Add(new Post() { Id = i + 1, UserId = i * 2, Content = "Post" + i }); } await contextAdd.SaveChangesAsync(); } using (var dt = new DBTableDataSqliteMemory <int>(connection, sd) { ConnectionString = "DataSource=:memory:", FieldNameToMark = "Id", TableName = "Posts" }) { #endregion #region act IReceive r = new ReceiverTableSQLiteInt(dt); ISimpleJob job = new SimpleJob(); job.Receivers.Add(0, r); job.Senders.Add(0, csvExport); await job.Execute(); #endregion #region assert Assert.IsTrue(File.Exists(filename), $"file {filename} must exists in export csv"); var lines = File.ReadAllLines(filename); Assert.AreEqual(nrPostsToAdd + 1, lines.Length); var lineNames = lines[0].Split(','); Assert.AreEqual("Id", lineNames[0]); Assert.AreEqual("Content", lineNames[1]); Assert.AreEqual("LastModifiedOrCreatedTime", lineNames[2]); Assert.AreEqual("UserId", lineNames[3]); #endregion } }
static void Main(string[] args) { var testClass = new TestClass { TheEncoding = Encoding.UTF8 }; var json = JsonConvert.SerializeObject(testClass, Formatting.Indented, new JsonEncodingConverter()); var obj = JsonConvert.DeserializeObject <TestClass>(json, new JsonEncodingConverter()); return; //var f = new TransformerIntString("asd", "bas"); //var settings1 = new JsonSerializerSettings() //{ // TypeNameHandling = TypeNameHandling.Objects, // Formatting = Formatting.Indented, // Error = HandleDeserializationError // //ConstructorHandling= ConstructorHandling.AllowNonPublicDefaultConstructor //}; //settings1.Converters.Add(new ExpressionJsonConverter(Assembly.GetEntryAssembly())); //var x = JsonConvert.SerializeObject(f,settings1); //Console.WriteLine(x); //return; brrbrrrr(); return; var receiver = new ReceiverBookmarkFileChrome(@"C:\Users\admin\Documents\bookmarks_7_25_17.html"); //var tr = new TransformAddField<string, DateTime>( // (addDate) => // { // var secs = double.Parse(addDate); // return new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(secs); // } // , "ADD_DATE", "realDate"); //var tr = new TransformAddField<string, DateTime>( // (addDate) => // new DateTime(1970, 1, 1, 0, 0, 0, 0) // .AddSeconds(double.Parse(addDate)) // , "ADD_DATE", "realDate"); string transformExpression = "var secs = double.Parse((oldValue??null).ToString());" + "var val=new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(secs);" + "val"; var tr = new TransformOneValueGeneral(transformExpression, "ADD_DATE", "realDate"); var sender = new Sender_HTMLRazor("BKChrome.cshtml", "b.html"); SimpleJob sj = new SimpleJob(); sj.Receivers.Add(0, receiver); sj.FiltersAndTransformers.Add(0, tr); sj.Senders.Add(0, sender); sj.Execute().Wait(); return; //var x = MemoryMappedFile.CreateNew("testmap", 2); //using (var writer = x.CreateViewAccessor(0,200, MemoryMappedFileAccess.Write)) //{ // // Write to MMF // for(int s = 0; s < 20; s++) // { // Console.WriteLine(s); // writer.Write(s, ('a'+s)); // } //} //using (var reader = x.CreateViewAccessor(0, 2000, MemoryMappedFileAccess.Read)) //{ // // Write to MMF // for (int s = 0; s < 20; s++) // { // Console.WriteLine(s); // var d= reader.ReadByte(s); // Console.WriteLine((char)d); // } //} //return; ISerializeData sd = new SerializeDataInMemory(); ISend csvExport = new Sender_CSV("a.csv"); ISend xmlExport = new Sender_XML("a.xml", "values"); ISend jsonExport = new Sender_JSON("a.json"); //ISend influx = new SenderDB_Influx("http://localhost:8086", "mydb", "logical_reads", "cpu_time_ms", "total_elapsed_time_ms"); var data = new DBTableData <int, SqlConnection>(sd) { ConnectionString = "Server=.;Database=DatePtAndrei;Trusted_Connection=True;", FieldNameToMark = "id", TableName = "active_slowquery", //Fields=new string[] { "id", "[session_id]" } }; IReceive r = new ReceiverTableSQLServerInt(data); ISimpleJob job = new SimpleJob(); job.Receivers.Add(0, r); job.Senders.Add(0, csvExport); job.Senders.Add(1, xmlExport); job.Senders.Add(2, jsonExport); //job.Senders.Add(3, influx); var settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Objects, Formatting = Formatting.Indented, Error = HandleDeserializationError //ConstructorHandling= ConstructorHandling.AllowNonPublicDefaultConstructor }; //var serialized = JsonConvert.SerializeObject(job, settings); //var deserialized = JsonConvert.DeserializeObject(File.ReadAllText("c.txt"), settings); ////File.WriteAllText("a.txt", serialized); //File.WriteAllText("b.txt",JsonConvert.SerializeObject(deserialized as IJob, settings)); //return; job.Execute().Wait(); return; Process.Start("notepad.exe", "a.json"); //var connection = new SqliteConnection(); //connection.ConnectionString = "DataSource=:memory:"; //connection.Open(); //Console.WriteLine("Hello World!"); //var options = new DbContextOptionsBuilder<ApiContext>() // //.UseInMemoryDatabase(databaseName: "Add_writes_to_database") // .UseSqlite(connection) // //.UseSqlite("DataSource=:memory:") // .Options; //using (var context = new ApiContext(options)) //{ // context.Database.EnsureCreated(); //} //var apiContext = new ApiContext(options); //apiContext.Posts.Add(new Post() //{ // Id = 1, // UserId = 1, // Content = "Post1" //}); //apiContext.SaveChanges(); //var db = apiContext.Database; //var cmd = connection.CreateCommand(); //cmd.CommandText = "select count(*) from Posts"; //var i=cmd.ExecuteScalar(); //var c = ClaimsPrincipal.Current; //if (c == null) //{ //} //var n = Thread.CurrentThread.Name; //Console.WriteLine("ASD"); }
public async Task MySqlTestLoadDataWithLatestValueInt() { #region Arrange //ADD A DATABASE AND PUT nrPostsToAdd data into table string sqlcommand; string testName1 = "TEST"; bool equality = true; RowRead valLoop = null; ISerializeData sd = new SerializeDataInMemory(); IRowReceive[] valuesRead1 = new IRowReceive[100]; var values = new List <IRowReceive>(); var ConnString = @"server=localhost;Database=new_schema ;user id=george95; Pwd=1234;"; Dictionary <int, string> FieldNameToMarks1 = new Dictionary <int, string>(); DBTableData <int, MySqlConnection> tab2 = new DBTableData <int, MySqlConnection>(sd) { ConnectionString = ConnString, FieldNameToMark = "id", TableName = "employees_test;" }; var mysql_obj = new ReceiverTableMySQLInt(tab2); using (MySqlConnection connection = new MySqlConnection(ConnString)) { sqlcommand = "CREATE TABLE Employees_test(ID INT(6), Name VARCHAR(50));"; connection.Open(); using (MySqlCommand command = new MySqlCommand(sqlcommand, connection)) { command.ExecuteNonQuery(); } for (int Emp_ID = 1; Emp_ID < 10; Emp_ID++) { sqlcommand = "INSERT INTO Employees_test (ID, Name) VALUES (" + Emp_ID + ", '" + testName1 + "');"; using (MySqlCommand command = new MySqlCommand(sqlcommand, connection)) { command.ExecuteNonQuery(); } } #endregion #region Act sqlcommand = "SELECT * FROM Employees_test;"; using (MySqlCommand command = new MySqlCommand(sqlcommand, connection)) using (MySqlDataReader reader = (MySqlDataReader)command.ExecuteReader()) { var nrFields1 = reader.FieldCount; for (int i = 0; i < nrFields1; i++) { FieldNameToMarks1.Add(i, reader.GetName(i)); } while (reader.Read()) { valLoop = new RowRead(); for (int i = 0; i < nrFields1; i++) { object val; val = reader.GetValue(i); if (val != null && val == DBNull.Value) { val = null; } valLoop.Values.Add(FieldNameToMarks1[i], val); } values.Add(valLoop); } } connection.Close(); } await mysql_obj.LoadData(); using (MySqlConnection connection = new MySqlConnection(ConnString)) { sqlcommand = "DROP TABLE Employees_test;"; connection.Open(); using (MySqlCommand command = new MySqlCommand(sqlcommand, connection)) { command.ExecuteNonQuery(); } connection.Close(); } #endregion #region Assert var MySqlLoadResult = mysql_obj.valuesRead.Select(o => o.Values).ToList(); var AdoNetResult = values.Select(o => o.Values).ToList(); //AdoNetResult[7]["Name"] = 999; for (int index = 0; index < MySqlLoadResult.Count; index++) { if (!MySqlLoadResult[index].SequenceEqual(AdoNetResult[index])) { equality = false; } } Assert.IsTrue(equality); #endregion }
public async Task TestLoadWholeTableEachTime() { #region ARRANGE //ADD A DATABASE AND PUT nrPostsToAdd data into table ISerializeData sd = new SerializeDataInMemory(); var connection = new SqliteConnection(); connection.ConnectionString = "DataSource=:memory:"; connection.Open(); var options = new DbContextOptionsBuilder <ApiContext>() .UseSqlite(connection) .Options; using (var context = new ApiContext(options)) { context.Database.EnsureCreated(); } int nrPostsToAdd = 10; using (var contextAdd = new ApiContext(options)) { for (int i = 0; i < nrPostsToAdd; i++) { contextAdd.Posts.Add(new Post() { Id = i + 1, UserId = i * 2, Content = "Post" + i }); } await contextAdd.SaveChangesAsync(); } #endregion #region ACT using (var dt = new DBTableDataSqliteMemory <FakeComparable>(connection, sd) { ConnectionString = "DataSource=:memory:", TableName = "Posts" }) { IReceive r = new ReceiverWholeTableSQLite(dt); await r.LoadData(); #endregion #region ASSERT Assert.AreEqual(nrPostsToAdd, r.valuesRead.Length); #endregion #region arange add new data into table using (var contextAddNew = new ApiContext(options)) { contextAddNew.Posts.Add(new Post() { Id = nrPostsToAdd * 2, UserId = nrPostsToAdd, Content = "Post" + nrPostsToAdd }); await contextAddNew.SaveChangesAsync(); } #endregion #region act await r.LoadData(); #endregion #region assert Assert.AreEqual(nrPostsToAdd + 1, r.valuesRead.Length); #endregion #region arange //load from the beginning #endregion #region act await r.LoadData(); #endregion #region assert Assert.AreEqual(nrPostsToAdd + 1, r.valuesRead.Length); #endregion } }