public void Test2() { StringBuilder sb = new StringBuilder(); sb.AppendLine("KI,B,I,L,F,D,S"); //7types sb.AppendLine("key1,key2,key3,key4,key5,key6,key7"); sb.AppendLine("1, true, 101, 1001,1.1, 2.1, k1"); sb.AppendLine("2,false, 102, 1002,1.2, 2.2, k2"); sb.AppendLine("3, true, 103, 1003,1.3, 2.3, k3"); sb.AppendLine("4,false, 104, 1004,1.4, 2.4, k4"); sb.AppendLine("5, true, 105, 1005,1.5, 2.5, k5"); CsvConfigReader reader = new CsvConfigReader(); reader.Read(new StringReader(sb.ToString())); //key type is string (KS in first line) //so keye is k1,k2,k3,k4,k5,5 elements for (int i = 1; i < 6; i++) { int key3Value = reader[i]["key3"].Value; Assert.AreEqual(100 + i, key3Value); long key4Value = reader[i]["key4"].Value; Assert.AreEqual(1000 + i, key4Value); string key7Value = reader[i]["key7"].Value; Assert.AreEqual("k" + i, key7Value); } }
public void Test1() { StringBuilder sb = new StringBuilder(); sb.AppendLine("I,B,I,L,F,D,KS"); //7types sb.AppendLine("key1,key2,key3,key4,key5,key6,key7"); sb.AppendLine("1, true, 101, 1001,1.1, 2.1, k1"); sb.AppendLine("2,false, 102, 1002,1.2, 2.2, k2"); sb.AppendLine("3, true, 103, 1003,1.3, 2.3, k3"); sb.AppendLine("4,false, 104, 1004,1.4, 2.4, k4"); sb.AppendLine("5, true, 105, 1005,1.5, 2.5, k5"); CsvConfigReader reader = new CsvConfigReader(); reader.Read(new StringReader(sb.ToString())); //key type is string (KS in first line) //so keye is k1,k2,k3,k4,k5,5 elements //get 3th config CsvConfig config = reader["k3"]; //get field key4 1003 int value = config["key4"].Value; Assert.AreEqual(1003, value); value = config[3].Value; Assert.AreEqual(1003, value); }
public void Test3() { StringBuilder sb = new StringBuilder(); sb.AppendLine("KI,B,I,L,F,D,S"); //7types sb.AppendLine("key1,key2,key3,key4,key5,key6,key7"); sb.AppendLine("1, true, 101, 1001,1.1, 2.1, \"v1,v1;v1,v1\""); sb.AppendLine("2,false, 102, 1002,1.2, 2.2, \"v2,v2;v2,v2\""); CsvConfigReader reader = new CsvConfigReader(); reader.Read(new StringReader(sb.ToString())); CsvConfig config = reader[1]; CsvValue value = config["key7"].Value; string strValue = value; Console.WriteLine(strValue); }
public void TestDoubleKeyType() { StringBuilder sb = new StringBuilder(); sb.AppendLine("KI,B,I,L,F,D,S,KL");//7types CsvConfigReader reader = new CsvConfigReader(); bool hasException = false; Exception e = null; try { reader.Read(new StringReader(sb.ToString())); } catch (Exception exception) { Console.WriteLine(exception.Message); hasException = true; e = exception; } Assert.True(hasException); Assert.True(e is CsvException); }
public void TestTypeNotMatchError() { StringBuilder sb = new StringBuilder(); sb.AppendLine("KI,B,I,L,F,D,S");//7types sb.AppendLine("key1,key2,key3,key4,key5,key6,key7"); sb.AppendLine("1, 112, 101, 1001,1.1, 2.1, hello world 1"); CsvConfigReader reader = new CsvConfigReader(); bool hasException = false; Exception e = null; try { reader.Read(new StringReader(sb.ToString())); } catch (Exception exception) { Console.WriteLine(exception.Message); hasException = true; e = exception; } Assert.True(hasException); Assert.True(e is CsvException); }
public void TestKeyIsString() { StringBuilder sb = new StringBuilder(); sb.AppendLine("I,B,I,L,F,D,KS");//7types sb.AppendLine("key1,key2,key3,key4,key5,key6,key7"); sb.AppendLine("1, YES, 101, 1001,1.1, 2.1, k1"); sb.AppendLine("2,NO, 102, 1002,1.2, 2.2, k2"); sb.AppendLine("3, YES, 103, 1003,1.3, 2.3, k3"); sb.AppendLine("4,NO, 104, 1004,1.4, 2.4, k4"); sb.AppendLine("5, YES, 105, 1005,1.5, 2.5, k5"); CsvConfigReader reader = new CsvConfigReader(); reader.Read(new StringReader(sb.ToString())); Assert.AreEqual(CsvValueType.String, reader.KeyType); Assert.AreEqual(5, reader[reader.Keys[4]]["key1"].Value); Assert.AreEqual(5, reader.Keys.Count); string key; key = reader.Keys[0]; Assert.AreEqual("k1", key); key = reader.Keys[1]; Assert.AreEqual("k2", key); key = reader.Keys[2]; Assert.AreEqual("k3", key); key = reader.Keys[3]; Assert.AreEqual("k4", key); key = reader.Keys[4]; Assert.AreEqual("k5", key); Assert.AreEqual(7, reader.FieldNames.Count); Assert.AreEqual("key1", reader.FieldNames[0]); Assert.AreEqual("key2", reader.FieldNames[1]); Assert.AreEqual("key3", reader.FieldNames[2]); Assert.AreEqual("key4", reader.FieldNames[3]); Assert.AreEqual("key5", reader.FieldNames[4]); Assert.AreEqual("key6", reader.FieldNames[5]); Assert.AreEqual("key7", reader.FieldNames[6]); CsvConfig config = reader[reader.Keys[0]]; Assert.AreEqual(0, config[0].Index); Assert.AreEqual(false, config[0].IsKey); Assert.AreEqual("key1", config[0].Name); Assert.AreEqual(1, config[0].Value); Assert.AreEqual(1, config[1].Index); Assert.AreEqual(false, config[1].IsKey); Assert.AreEqual("key2", config[1].Name); bool b = config[1].Value; Assert.AreEqual(true, b); Assert.AreEqual(2, config[2].Index); Assert.AreEqual(false, config[2].IsKey); Assert.AreEqual("key3", config[2].Name); Assert.AreEqual(101, config[2].Value); Assert.AreEqual(3, config[3].Index); Assert.AreEqual(false, config[3].IsKey); Assert.AreEqual("key4", config[3].Name); Assert.AreEqual(1001, config[3].Value); Assert.AreEqual(4, config[4].Index); Assert.AreEqual(false, config[4].IsKey); Assert.AreEqual("key5", config[4].Name); float f = config[4].Value; Assert.AreEqual(float.Parse("1.1"), f); Assert.AreEqual(5, config[5].Index); Assert.AreEqual(false, config[5].IsKey); Assert.AreEqual("key6", config[5].Name); double d = config[5].Value; Assert.AreEqual(double.Parse("2.1"), d); Assert.AreEqual(6, config[6].Index); Assert.AreEqual(true, config[6].IsKey); Assert.AreEqual("key7", config[6].Name); string s = config[6].Value; Assert.AreEqual("k1", s); }
public void TestNormal() { StringBuilder sb = new StringBuilder(); sb.AppendLine("KI,B,I,L,F,D,S");//7types sb.AppendLine("key1,key2,key3,key4,key5,key6,key7"); sb.AppendLine("1, true, 101, 1001,1.1, 2.1, hello world 1"); sb.AppendLine("2,false, 102, 1002,1.2, 2.2, hello world 2"); sb.AppendLine("3, true, 103, 1003,1.3, 2.3, hello world 3"); sb.AppendLine("4,false, 104, 1004,1.4, 2.4, hello world 4"); sb.AppendLine("5, true, 105, 1005,1.5, 2.5, hello world 5"); CsvConfigReader reader = new CsvConfigReader(); reader.Read(new StringReader(sb.ToString())); Assert.AreEqual(CsvValueType.Int, reader.KeyType); Assert.AreEqual(5, reader.Keys.Count); Assert.AreEqual(1, reader.Keys[0]); Assert.AreEqual(2, reader.Keys[1]); Assert.AreEqual(3, reader.Keys[2]); Assert.AreEqual(4, reader.Keys[3]); Assert.AreEqual(5, reader.Keys[4]); Assert.AreEqual(7, reader.FieldNames.Count); Assert.AreEqual("key1", reader.FieldNames[0]); Assert.AreEqual("key2", reader.FieldNames[1]); Assert.AreEqual("key3", reader.FieldNames[2]); Assert.AreEqual("key4", reader.FieldNames[3]); Assert.AreEqual("key5", reader.FieldNames[4]); Assert.AreEqual("key6", reader.FieldNames[5]); Assert.AreEqual("key7", reader.FieldNames[6]); CsvConfig config = reader[reader.Keys[0]]; Assert.AreEqual(0, config[0].Index); Assert.AreEqual(true, config[0].IsKey); string key = config[0].Name; Assert.AreEqual("key1", key); Assert.AreEqual(1, config[0].Value); Assert.AreEqual(1, config[1].Index); Assert.AreEqual(false, config[1].IsKey); Assert.AreEqual("key2", config[1].Name); bool b = config[1].Value; Assert.AreEqual(true, b); Assert.AreEqual(2, config[2].Index); Assert.AreEqual(false, config[2].IsKey); Assert.AreEqual("key3", config[2].Name); Assert.AreEqual(101, config[2].Value); Assert.AreEqual(3, config[3].Index); Assert.AreEqual(false, config[3].IsKey); Assert.AreEqual("key4", config[3].Name); Assert.AreEqual(1001, config[3].Value); Assert.AreEqual(4, config[4].Index); Assert.AreEqual(false, config[4].IsKey); Assert.AreEqual("key5", config[4].Name); float f = config[4].Value; Assert.AreEqual(float.Parse("1.1"), f); Assert.AreEqual(5, config[5].Index); Assert.AreEqual(false, config[5].IsKey); Assert.AreEqual("key6", config[5].Name); double d = config[5].Value; Assert.AreEqual(double.Parse("2.1"), d); Assert.AreEqual(6, config[6].Index); Assert.AreEqual(false, config[6].IsKey); Assert.AreEqual("key7", config[6].Name); string s = config[6].Value; Assert.AreEqual("hello world 1", s); }