public void ConvertCsv_MissMatchColumnsCount_ThrowsException() { var csv = "int,float,double\r\n" + "1,1.1"; Assert.Throws <IndexOutOfRangeException>(() => CsvParser.ConvertCsv(csv)); }
private static async void ImportSheetAsync(ImportData data, string spreadsheetId) { var indexStart = data.Importer.GoogleSheetUrl.IndexOf("/d/", StringComparison.Ordinal) + 3; var indexCount = data.Importer.GoogleSheetUrl.IndexOf("/edit#", StringComparison.Ordinal) - indexStart; var url = data.Importer.GoogleSheetUrl.Replace("edit#", "export?format=csv&"); var finalUrl = string.IsNullOrWhiteSpace(spreadsheetId) ? url : url.Remove(indexStart, indexCount).Insert(indexStart, spreadsheetId); var request = UnityWebRequest.Get(finalUrl); await AsyncOperation(request.SendWebRequest()); if (request.isHttpError || request.isNetworkError) { throw new Exception(request.error); } var values = CsvParser.ConvertCsv(request.downloadHandler.text); if (values.Count == 0) { Debug.LogWarning($"The return sheet was not in CSV format:\n{request.downloadHandler.text}"); } else { data.Importer.Import(values); } Debug.Log($"Finished importing google sheet data from {data.Type.Name}"); }
public void ConvertCsv_OnlyHeadlines_EmptyResult() { var csv = "int,float,double,enum,pair"; var dic = CsvParser.ConvertCsv(csv); Assert.AreEqual(0, dic.Count); }
public void ConvertCsv_WrongFormatSeparator_EmptyResult() { var csv = "int,float\n" + "1,1.1"; var dic = CsvParser.ConvertCsv(csv); Assert.AreEqual(0, dic.Count); }
public void Deserialize_ExtraFields_Successfully() { var csv = "Int,Float,ExtraField\r\n" + "1,1.1,extraValue"; var dic = CsvParser.ConvertCsv(csv); var result = CsvParser.DeserializeTo <MockClass>(dic[0]); Assert.AreEqual(null, result.String); Assert.AreEqual(1, result.Int); Assert.AreEqual(1.1f, result.Float); Assert.AreEqual(0, result.Double); Assert.AreEqual(MockEnum.MockValue, result.Enum); Assert.AreEqual(null, result.Array); Assert.AreEqual(null, result.List); Assert.AreEqual(new KeyValuePair <int, int>(), result.Pair); Assert.AreEqual(null, result.Dictionary); }
public void ConvertCsv_Successfully() { var csv = "Ignored,String,Int,Float,Double,Enum,Array,List,Pair,Dictionary\r\n" + "Ignored,text,1,1.1,1.1,MockValue,\"1,2\",\"1,2\",\"1:2\",\"1,2\""; var dic = CsvParser.ConvertCsv(csv); Assert.AreEqual(1, dic.Count); Assert.AreEqual(10, dic[0].Count); Assert.AreEqual("Ignored", dic[0]["Ignored"]); Assert.AreEqual("text", dic[0]["String"]); Assert.AreEqual("1", dic[0]["Int"]); Assert.AreEqual("1.1", dic[0]["Float"]); Assert.AreEqual("1.1", dic[0]["Double"]); Assert.AreEqual("MockValue", dic[0]["Enum"]); Assert.AreEqual("1,2", dic[0]["Array"]); Assert.AreEqual("1,2", dic[0]["List"]); Assert.AreEqual("1:2", dic[0]["Pair"]); Assert.AreEqual("1,2", dic[0]["Dictionary"]); }
public void Deserialize_Successfully() { var csv = "Ignored,String,Int,Float,Double,Enum,Array,List,Pair,Dictionary\r\n" + "Ignored,text,1,1.1,1.1,MockValue,\"1,2\",\"1,2\",\"1:2\",\"1,2\""; var dic = CsvParser.ConvertCsv(csv); var result = CsvParser.DeserializeTo <MockClass>(dic[0]); Assert.AreEqual(null, result.Ignored); Assert.AreEqual("text", result.String); Assert.AreEqual(1, result.Int); Assert.AreEqual(1.1f, result.Float); Assert.AreEqual(1.1d, result.Double); Assert.AreEqual(MockEnum.MockValue, result.Enum); Assert.AreEqual(new[] { 1, 2 }, result.Array); Assert.AreEqual(new List <int> { 1, 2 }, result.List); Assert.AreEqual(new KeyValuePair <int, int>(1, 2), result.Pair); Assert.AreEqual(new Dictionary <int, int> { { 1, 2 } }, result.Dictionary); }