public async Task CompareToFile() { var localForge = new LocalForge(); var settings = new JsonSerializerSettings { DateParseHandling = DateParseHandling.None }; var basePath = @"../../../operations"; var directories = Directory.GetDirectories(basePath); foreach (var directory in directories) { var jsonString = File.ReadAllText($"{directory}/unsigned.json"); var json = JsonConvert.DeserializeObject <JToken>(jsonString, settings); switch (json["contents"].Count()) { case int n when(n > 1): var managerOps = json["contents"] .Select(cont => cont["kind"].Value <string>() switch { "origination" => (ManagerOperationContent)cont.ToObject <OriginationContent>(), "reveal" => cont.ToObject <RevealContent>(), "transaction" => cont.ToObject <TransactionContent>(), "delegation" => cont.ToObject <DelegationContent>(), _ => throw new ArgumentException($"Unknown type {json["contents"][0]["kind"]}") }) .ToList(); var opByt = File.ReadAllText($"{directory}/forged.hex"); var localByt = await localForge.ForgeOperationGroupAsync(json["branch"].Value <string>(), managerOps); Assert.True(opByt == Hex.Convert(localByt), $"{directory}"); break;
public async Task CompareForgedToFile() { var forge = new LocalForge(); var options = new JsonSerializerOptions { MaxDepth = 100_000 }; var directories = Directory.GetDirectories("../../../Forging/operations"); foreach (var directory in directories) { var op = (Operation)DJson.Read($"{directory}/unsigned.json", options); var opBytes = File.ReadAllText($"{directory}/forged.hex"); var localBytes = op.Contents.Count == 1 ? await forge.ForgeOperationAsync(op.Branch, op.Contents[0]) : await forge.ForgeOperationGroupAsync(op.Branch, op.Contents.Select(x => x as ManagerOperationContent)); Assert.True(opBytes == Hex.Convert(localBytes), directory); } }