public void AddCheckpoint() { DataStoreReaderTests.CreateTable(database); var writer = new DataStoreWriter(database); // Add a checkpoint string file = Path.Combine(Path.GetTempPath(), $"dummy-{Guid.NewGuid()}.txt"); File.WriteAllText(file, "abcde"); try { writer.AddCheckpoint("Saved2", new string[] { file }); writer.Stop(); Assert.IsTrue( Utilities.CreateTable(new string[] { "CheckpointID", "SimulationID", "Col1", "Col2" }, new List <object[]> { new object[] { 1, 1, new DateTime(2017, 01, 01), 1 }, new object[] { 1, 1, new DateTime(2017, 01, 02), 2 }, new object[] { 1, 2, new DateTime(2017, 01, 01), 21 }, new object[] { 1, 2, new DateTime(2017, 01, 02), 22 }, new object[] { 2, 1, new DateTime(2017, 01, 01), 11 }, new object[] { 2, 1, new DateTime(2017, 01, 02), 12 }, new object[] { 2, 2, new DateTime(2017, 01, 01), 31 }, new object[] { 2, 2, new DateTime(2017, 01, 02), 32 }, new object[] { 3, 1, new DateTime(2017, 01, 01), 1 }, new object[] { 3, 1, new DateTime(2017, 01, 02), 2 }, new object[] { 3, 2, new DateTime(2017, 01, 01), 21 }, new object[] { 3, 2, new DateTime(2017, 01, 02), 22 } }) .IsSame(Utilities.GetTableFromDatabase(database, "Report"))); Assert.IsTrue( Utilities.CreateTable(new string[] { "ID", "Name" }, new List <object[]> { new object[] { 1, "Current" }, new object[] { 2, "Saved1" }, new object[] { 3, "Saved2" } }) .IsSame(Utilities.GetTableFromDatabase(database, "_Checkpoints", new string[] { "ID", "Name" }))); Assert.IsTrue( Utilities.CreateTable(new string[] { "CheckpointID", "FileName", "Contents" }, new List <object[]> { new object[] { 3, file, "System.Byte[]" } }) .IsSame(Utilities.GetTableFromDatabase(database, "_CheckpointFiles"))); } finally { File.Delete(file); } }
public void OverwriteExistingCheckpoint() { DataStoreReaderTests.CreateTable(database); // Write new rows for sim2. Should get rid of old sim2 data and replace // with these 2 new rows. // Write some new current data. var data1 = new ReportData() { CheckpointName = "Current", SimulationName = "Sim2", TableName = "Report", ColumnNames = new string[] { "Col1", "Col2" }, ColumnUnits = new string[] { null, "g" } }; data1.Rows.Add(new List <object>() { new DateTime(2017, 1, 1), 3.0 }); data1.Rows.Add(new List <object>() { new DateTime(2017, 1, 2), 4.0 }); var writer = new DataStoreWriter(database); var cleanCommand = writer.Clean(new List <string>() { "Sim2" }); cleanCommand.Run(null); writer.WriteTable(data1); // Add a checkpoint - overwrite existing one. writer.AddCheckpoint("Saved1"); writer.Stop(); Assert.IsTrue( Utilities.CreateTable(new string[] { "CheckpointID", "SimulationID", "Col1", "Col2" }, new List <object[]> { new object[] { 1, 1, new DateTime(2017, 01, 01), 1 }, new object[] { 1, 1, new DateTime(2017, 01, 02), 2 }, new object[] { 1, 2, new DateTime(2017, 01, 01), 3 }, new object[] { 1, 2, new DateTime(2017, 01, 02), 4 }, new object[] { 2, 1, new DateTime(2017, 01, 01), 1 }, new object[] { 2, 1, new DateTime(2017, 01, 02), 2 }, new object[] { 2, 2, new DateTime(2017, 01, 01), 3 }, new object[] { 2, 2, new DateTime(2017, 01, 02), 4 } }) .IsSame(Utilities.GetTableFromDatabase(database, "Report"))); }
public void AddCheckpoint() { DataStoreReaderTests.CreateTable(database); var writer = new DataStoreWriter(database); // Add a checkpoint File.WriteAllText("Dummy.txt", "abcde"); writer.AddCheckpoint("Saved2", new string[] { "Dummy.txt" }); writer.Stop(); Assert.IsTrue( Utilities.CreateTable(new string[] { "CheckpointID", "SimulationID", "Col1", "Col2" }, new List <object[]> { new object[] { 1, 1, new DateTime(2017, 01, 01), 1 }, new object[] { 1, 1, new DateTime(2017, 01, 02), 2 }, new object[] { 1, 2, new DateTime(2017, 01, 01), 21 }, new object[] { 1, 2, new DateTime(2017, 01, 02), 22 }, new object[] { 2, 1, new DateTime(2017, 01, 01), 11 }, new object[] { 2, 1, new DateTime(2017, 01, 02), 12 }, new object[] { 2, 2, new DateTime(2017, 01, 01), 31 }, new object[] { 2, 2, new DateTime(2017, 01, 02), 32 }, new object[] { 3, 1, new DateTime(2017, 01, 01), 1 }, new object[] { 3, 1, new DateTime(2017, 01, 02), 2 }, new object[] { 3, 2, new DateTime(2017, 01, 01), 21 }, new object[] { 3, 2, new DateTime(2017, 01, 02), 22 } }) .IsSame(Utilities.GetTableFromDatabase(database, "Report"))); Assert.IsTrue( Utilities.CreateTable(new string[] { "ID", "Name" }, new List <object[]> { new object[] { 1, "Current" }, new object[] { 2, "Saved1" }, new object[] { 3, "Saved2" } }) .IsSame(Utilities.GetTableFromDatabase(database, "_Checkpoints", new string[] { "ID", "Name" }))); Assert.IsTrue( Utilities.CreateTable(new string[] { "CheckpointID", "FileName", "Contents" }, new List <object[]> { new object[] { 3, "Dummy.txt", "System.Byte[]" } }) .IsSame(Utilities.GetTableFromDatabase(database, "_CheckpointFiles"))); }
public void OverwriteExistingCheckpoint() { DataStoreReaderTests.CreateTable(database); // Write new rows for sim2. Should get rid of old sim2 data and replace // with these 2 new rows. // Write some new current data. var data1 = new ReportData() { CheckpointName = "Current", SimulationName = "Sim2", TableName = "Report", ColumnNames = new string[] { "Col1", "Col2" }, ColumnUnits = new string[] { null, "g" } }; data1.Rows.Add(new List <object>() { new DateTime(2017, 1, 1), 3.0 }); data1.Rows.Add(new List <object>() { new DateTime(2017, 1, 2), 4.0 }); var writer = new DataStoreWriter(database); writer.WriteTable(data1); // Add a checkpoint - overwrite existing one. writer.AddCheckpoint("Saved1"); writer.Stop(); Assert.AreEqual(Utilities.TableToString(database, "Report"), $"CheckpointID,SimulationID, Col1, Col2{Environment.NewLine}" + $" 1, 1,2017-01-01,1.000{Environment.NewLine}" + $" 1, 1,2017-01-02,2.000{Environment.NewLine}" + $" 1, 2,2017-01-01,3.000{Environment.NewLine}" + $" 1, 2,2017-01-02,4.000{Environment.NewLine}" + $" 2, 1,2017-01-01,1.000{Environment.NewLine}" + $" 2, 1,2017-01-02,2.000{Environment.NewLine}" + $" 2, 2,2017-01-01,3.000{Environment.NewLine}" + $" 2, 2,2017-01-02,4.000{Environment.NewLine}"); }
public void AddCheckpoint() { DataStoreReaderTests.CreateTable(database); var writer = new DataStoreWriter(database); // Add a checkpoint File.WriteAllText("Dummy.txt", "abcde"); writer.AddCheckpoint("Saved2", new string[] { "Dummy.txt" }); writer.Stop(); Assert.AreEqual(Utilities.TableToString(database, "Report"), $"CheckpointID,SimulationID, Col1, Col2{Environment.NewLine}" + $" 1, 1,2017-01-01, 1.000{Environment.NewLine}" + $" 1, 1,2017-01-02, 2.000{Environment.NewLine}" + $" 1, 2,2017-01-01,21.000{Environment.NewLine}" + $" 1, 2,2017-01-02,22.000{Environment.NewLine}" + $" 2, 1,2017-01-01,11.000{Environment.NewLine}" + $" 2, 1,2017-01-02,12.000{Environment.NewLine}" + $" 2, 2,2017-01-01,31.000{Environment.NewLine}" + $" 2, 2,2017-01-02,32.000{Environment.NewLine}" + $" 3, 1,2017-01-01, 1.000{Environment.NewLine}" + $" 3, 1,2017-01-02, 2.000{Environment.NewLine}" + $" 3, 2,2017-01-01,21.000{Environment.NewLine}" + $" 3, 2,2017-01-02,22.000{Environment.NewLine}"); Assert.AreEqual(Utilities.TableToString(database, "_Checkpoints", new string[] { "ID", "Name" }), $"ID, Name{Environment.NewLine}" + $" 1,Current{Environment.NewLine}" + $" 2, Saved1{Environment.NewLine}" + $" 3, Saved2{Environment.NewLine}"); Assert.AreEqual(Utilities.TableToString(database, "_CheckpointFiles", new string[] { "CheckpointID", "FileName", "Contents" }), $"CheckpointID, FileName, Contents{Environment.NewLine}" + $" 3,Dummy.txt,System.Byte[]{Environment.NewLine}"); }