public void SerializationAndDeserializationTest() { List <string> list = new List <string>(); list.Add("qwerty"); list.Add("asdfgh"); list.Add("zxcvbn"); string serializedList = TrueXmlSerializer.XmlSerialize(list); List <string> list2 = TrueXmlSerializer.XmlDeserialize <List <string> >(serializedList); CollectionAssert.AreEqual(list, list2); }
public void SaveAndLoadTest() { List <string> list = new List <string>(); list.Add("qwerty"); list.Add("asdfgh"); list.Add("zxcvbn"); string path = "trueXmlSerializerTest.xml"; TrueXmlSerializer.Save(list, path); List <string> list2 = TrueXmlSerializer.Load <List <string> >(path); CollectionAssert.AreEqual(list, list2); }
private void AddTest(TcpClient tcpClient, TrueMessage trueMessage) { Console.WriteLine($"AddTest"); SqlConnection sqlConnection = new SqlConnection(connectionString); try { if (sqlConnection.State == ConnectionState.Closed) { sqlConnection.Open(); } TestDLL.Test test = (TestDLL.Test)trueMessage.Message; string path = test.Name; string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); foreach (char c in invalid) { path = path.Replace(c.ToString(), ""); } path = "..\\..\\..\\Tests\\" + path + ".xml"; TrueMessage trueMessageToClient = new TrueMessage(); Random random = new Random(); while (File.Exists(path)) { path += random.Next(1, 100); } TrueXmlSerializer.Save(test, path); SqlCommand sqlCommand = new SqlCommand("Proc_AddTest", sqlConnection); sqlCommand.CommandType = CommandType.StoredProcedure; sqlCommand.Parameters.AddWithValue("@Name", test.Name); sqlCommand.Parameters.AddWithValue("@Description", test.Description); sqlCommand.Parameters.AddWithValue("@Path", path); sqlCommand.ExecuteNonQuery(); trueMessageToClient.Command = Command.Approve; trueMessageToClient.Message = test.Name; byte[] dataAddTestAnswer; IFormatter formatter = new BinaryFormatter(); using (MemoryStream stream = new MemoryStream()) { formatter.Serialize(stream, trueMessageToClient); dataAddTestAnswer = stream.ToArray(); } NetworkStream networkStream = tcpClient.GetStream(); networkStream.BeginWrite(dataAddTestAnswer, 0, dataAddTestAnswer.Length, new AsyncCallback(AddTestAnswer), tcpClient); Console.WriteLine($"AddTest ended"); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (sqlConnection.State != ConnectionState.Closed) { sqlConnection.Close(); } } }
private void ChooseCurrentTest(TcpClient tcpClient, TrueMessage trueMessage) { Console.WriteLine($"ChooseCurrentTest"); SqlConnection sqlConnection = new SqlConnection(connectionString); try { if (sqlConnection.State == ConnectionState.Closed) { sqlConnection.Open(); } KeyValuePair <string, string> choosePair = (KeyValuePair <string, string>)trueMessage.Message; string testNameToChoose = choosePair.Key; SqlCommand sqlCommand = new SqlCommand("Proc_GetTestPathByName", sqlConnection); sqlCommand.CommandType = CommandType.StoredProcedure; sqlCommand.Parameters.AddWithValue("@Name", testNameToChoose); string path = Convert.ToString(sqlCommand.ExecuteScalar()); TrueMessage trueMessageToClient = new TrueMessage(); if (File.Exists(path)) { currentTest = TrueXmlSerializer.Load <TestDLL.Test>(path); testTime = choosePair.Value; trueMessageToClient.Command = Command.Approve; } else { trueMessageToClient.Command = Command.Reject; trueMessageToClient.Message = "Test not found"; } byte[] dataChooseCurrentTestAnswer; IFormatter formatter = new BinaryFormatter(); using (MemoryStream stream = new MemoryStream()) { formatter.Serialize(stream, trueMessageToClient); dataChooseCurrentTestAnswer = stream.ToArray(); } NetworkStream networkStream = tcpClient.GetStream(); networkStream.BeginWrite(dataChooseCurrentTestAnswer, 0, dataChooseCurrentTestAnswer.Length, new AsyncCallback(ChooseCurrentTestAnswer), tcpClient); Console.WriteLine($"ChooseCurrentTest ended"); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (sqlConnection.State != ConnectionState.Closed) { sqlConnection.Close(); } } }