diff --git a/.Lib9c.Tests/TableData/Garages/LoadIntoMyGaragesCostSheetTest.cs b/.Lib9c.Tests/TableData/Garages/LoadIntoMyGaragesCostSheetTest.cs index b6d9e68c64..4c52804512 100644 --- a/.Lib9c.Tests/TableData/Garages/LoadIntoMyGaragesCostSheetTest.cs +++ b/.Lib9c.Tests/TableData/Garages/LoadIntoMyGaragesCostSheetTest.cs @@ -17,16 +17,16 @@ public class LoadIntoMyGaragesCostSheetTest public LoadIntoMyGaragesCostSheetTest() { var sb = new StringBuilder(); - sb.AppendLine("id,cost_kind,currency_ticker,fungible_id,garage_cost_per_unit"); + sb.AppendLine("id,currency_ticker,fungible_id,garage_cost_per_unit"); sb.AppendLine( - "1,ITEM,,00dfffe23964af9b284d121dae476571b7836b8d9e2e5f510d92a840fecc64fe,0.16"); + "1,,00dfffe23964af9b284d121dae476571b7836b8d9e2e5f510d92a840fecc64fe,0.16"); sb.AppendLine( - "2,ITEM,,3991e04dd808dc0bc24b21f5adb7bf1997312f8700daf1334bf34936e8a0813a,0.0016"); + "2,,3991e04dd808dc0bc24b21f5adb7bf1997312f8700daf1334bf34936e8a0813a,0.0016"); sb.AppendLine( - "3,ITEM,,1a755098a2bc0659a063107df62e2ff9b3cdaba34d96b79519f504b996f53820,1"); + "3,,1a755098a2bc0659a063107df62e2ff9b3cdaba34d96b79519f504b996f53820,1"); sb.AppendLine( - "4,ITEM,,f8faf92c9c0d0e8e06694361ea87bfc8b29a8ae8de93044b98470a57636ed0e0,10"); - sb.AppendLine("5,CURRENCY,RUNE_GOLDENLEAF,,10"); + "4,,f8faf92c9c0d0e8e06694361ea87bfc8b29a8ae8de93044b98470a57636ed0e0,10"); + sb.AppendLine("5,RUNE_GOLDENLEAF,,10"); _sheet = new LoadIntoMyGaragesCostSheet(); _sheet.Set(sb.ToString()); } @@ -38,7 +38,6 @@ public void Set() Assert.Equal(5, _sheet.Count); var row = _sheet.OrderedList[0]; Assert.Equal(1, row.Id); - Assert.Equal("ITEM", row.CostKind); Assert.True(string.IsNullOrEmpty(row.CurrencyTicker)); Assert.Equal( "00dfffe23964af9b284d121dae476571b7836b8d9e2e5f510d92a840fecc64fe", @@ -46,7 +45,6 @@ public void Set() Assert.Equal(0.16m, row.GarageCostPerUnit); row = _sheet.OrderedList[1]; Assert.Equal(2, row.Id); - Assert.Equal("ITEM", row.CostKind); Assert.True(string.IsNullOrEmpty(row.CurrencyTicker)); Assert.Equal( "3991e04dd808dc0bc24b21f5adb7bf1997312f8700daf1334bf34936e8a0813a", @@ -54,7 +52,6 @@ public void Set() Assert.Equal(0.0016m, row.GarageCostPerUnit); row = _sheet.OrderedList[2]; Assert.Equal(3, row.Id); - Assert.Equal("ITEM", row.CostKind); Assert.True(string.IsNullOrEmpty(row.CurrencyTicker)); Assert.Equal( "1a755098a2bc0659a063107df62e2ff9b3cdaba34d96b79519f504b996f53820", @@ -62,7 +59,6 @@ public void Set() Assert.Equal(1m, row.GarageCostPerUnit); row = _sheet.OrderedList[3]; Assert.Equal(4, row.Id); - Assert.Equal("ITEM", row.CostKind); Assert.True(string.IsNullOrEmpty(row.CurrencyTicker)); Assert.Equal( "f8faf92c9c0d0e8e06694361ea87bfc8b29a8ae8de93044b98470a57636ed0e0", @@ -70,31 +66,18 @@ public void Set() Assert.Equal(10m, row.GarageCostPerUnit); row = _sheet.OrderedList[4]; Assert.Equal(5, row.Id); - Assert.Equal("CURRENCY", row.CostKind); Assert.Equal("RUNE_GOLDENLEAF", row.CurrencyTicker); Assert.Null(row.FungibleId); Assert.Equal(10m, row.GarageCostPerUnit); } - [Fact] - public void Set_InvalidCostKind() - { - var sb = new StringBuilder(); - sb.AppendLine("id,cost_kind,currency_ticker,fungible_id,garage_cost_per_unit"); - sb.AppendLine( - "1,INVALID,,00dfffe23964af9b284d121dae476571b7836b8d9e2e5f510d92a840fecc64fe,0.16"); - - var sheet = new LoadIntoMyGaragesCostSheet(); - Assert.Throws(() => sheet.Set(sb.ToString())); - } - [Fact] public void Set_InvalidFungibleId() { var sb = new StringBuilder(); - sb.AppendLine("id,cost_kind,currency_ticker,fungible_id,garage_cost_per_unit"); + sb.AppendLine("id,currency_ticker,fungible_id,garage_cost_per_unit"); sb.AppendLine( - "1,ITEM,,INVALID,0.16"); + "1,,INVALID,0.16"); var sheet = new LoadIntoMyGaragesCostSheet(); Assert.Throws(() => sheet.Set(sb.ToString())); @@ -104,9 +87,9 @@ public void Set_InvalidFungibleId() public void Set_InvalidGarageCostPerUnit() { var sb = new StringBuilder(); - sb.AppendLine("id,cost_kind,currency_ticker,fungible_id,garage_cost_per_unit"); + sb.AppendLine("id,currency_ticker,fungible_id,garage_cost_per_unit"); sb.AppendLine( - "1,ITEM,,00dfffe23964af9b284d121dae476571b7836b8d9e2e5f510d92a840fecc64fe,INVALID"); + "1,,00dfffe23964af9b284d121dae476571b7836b8d9e2e5f510d92a840fecc64fe,INVALID"); var sheet = new LoadIntoMyGaragesCostSheet(); Assert.Throws(() => sheet.Set(sb.ToString())); diff --git a/Lib9c/TableCSV/Garages/LoadIntoMyGaragesCostSheet.csv b/Lib9c/TableCSV/Garages/LoadIntoMyGaragesCostSheet.csv index 7c90a90288..aa5706e461 100644 --- a/Lib9c/TableCSV/Garages/LoadIntoMyGaragesCostSheet.csv +++ b/Lib9c/TableCSV/Garages/LoadIntoMyGaragesCostSheet.csv @@ -1,11 +1,10 @@ -id,_memo,cost_kind,currency_ticker,fungible_id,garage_cost_per_unit +id,_memo,currency_ticker,fungible_id,garage_cost_per_unit _id,int -_cost_kind,CURRENCY|ITEM _currency_ticker,(empty)|NCG|CRYSTAL... _fungible_id,(empty)|3991e04dd808dc0bc24b21f5adb7bf1997312f8700daf1334bf34936e8a0813a|00dfffe23964af9b284d121dae476571b7836b8d9e2e5f510d92a840fecc64fe... _garage_cost_per_unit,1|100|0.001... -1,ap portion(500000),Item,,00dfffe23964af9b284d121dae476571b7836b8d9e2e5f510d92a840fecc64fe,0.16 -2,hourglass(400000),Item,,3991e04dd808dc0bc24b21f5adb7bf1997312f8700daf1334bf34936e8a0813a,0.0016 -3,golden meat(800201),Item,,1a755098a2bc0659a063107df62e2ff9b3cdaba34d96b79519f504b996f53820,1 -4,golden dust(600201),Item,,f8faf92c9c0d0e8e06694361ea87bfc8b29a8ae8de93044b98470a57636ed0e0,10 -5,golden leaf runestone,Currency,RUNE_GOLDENLEAF,,10 +1,ap portion(500000),,00dfffe23964af9b284d121dae476571b7836b8d9e2e5f510d92a840fecc64fe,0.16 +2,hourglass(400000),,3991e04dd808dc0bc24b21f5adb7bf1997312f8700daf1334bf34936e8a0813a,0.0016 +3,golden meat(800201),,1a755098a2bc0659a063107df62e2ff9b3cdaba34d96b79519f504b996f53820,1 +4,golden dust(600201),,f8faf92c9c0d0e8e06694361ea87bfc8b29a8ae8de93044b98470a57636ed0e0,10 +5,golden leaf runestone,RUNE_GOLDENLEAF,,10 diff --git a/Lib9c/TableData/Garages/LoadIntoMyGaragesCostSheet.cs b/Lib9c/TableData/Garages/LoadIntoMyGaragesCostSheet.cs index 125bd4774f..588257c7bb 100644 --- a/Lib9c/TableData/Garages/LoadIntoMyGaragesCostSheet.cs +++ b/Lib9c/TableData/Garages/LoadIntoMyGaragesCostSheet.cs @@ -20,11 +20,6 @@ public class Row : SheetRow public int Id { get; private set; } - /// - /// CURRENCY | ITEM - /// - public string CostKind { get; private set; } - public string CurrencyTicker { get; private set; } public HashDigest? FungibleId { get; private set; } @@ -34,22 +29,11 @@ public class Row : SheetRow public override void Set(IReadOnlyList fields) { Id = ParseInt(fields[0]); - CostKind = string.IsNullOrEmpty(fields[1]) - ? null - : fields[1].ToUpperInvariant(); - if (CostKind != "CURRENCY" && - CostKind != "ITEM") - { - throw new ArgumentException( - $"CostKind must be CURRENCY or ITEM but {CostKind}.", - nameof(fields)); - } - - CurrencyTicker = fields[2]; - FungibleId = string.IsNullOrEmpty(fields[3]) + CurrencyTicker = fields[1]; + FungibleId = string.IsNullOrEmpty(fields[2]) ? (HashDigest?)null - : HashDigest.FromString(fields[3]); - GarageCostPerUnit = ParseDecimal(fields[4]); + : HashDigest.FromString(fields[2]); + GarageCostPerUnit = ParseDecimal(fields[3]); } } @@ -59,17 +43,13 @@ public LoadIntoMyGaragesCostSheet() : base(nameof(LoadIntoMyGaragesCostSheet)) public decimal GetGarageCostPerUnit(string currencyTicker) { - var row = OrderedList!.First(r => - r.CostKind == "CURRENCY" && - r.CurrencyTicker == currencyTicker); + var row = OrderedList!.First(r => r.CurrencyTicker == currencyTicker); return row.GarageCostPerUnit; } public decimal GetGarageCostPerUnit(HashDigest fungibleId) { - var row = OrderedList!.First(r => - r.CostKind == "ITEM" && - r.FungibleId.Equals(fungibleId)); + var row = OrderedList!.First(r => r.FungibleId?.Equals(fungibleId) ?? false); return row.GarageCostPerUnit; } @@ -131,16 +111,12 @@ public FungibleAssetValue GetGarageCost( public bool HasCost(string currencyTicker) { - return OrderedList!.Any(r => - r.CostKind == "CURRENCY" && - r.CurrencyTicker == currencyTicker); + return OrderedList!.Any(r => r.CurrencyTicker == currencyTicker); } public bool HasCost(HashDigest fungibleId) { - return OrderedList!.Any(r => - r.CostKind == "ITEM" && - r.FungibleId.Equals(fungibleId)); + return OrderedList!.Any(r => r.FungibleId?.Equals(fungibleId) ?? false); } } }