예제 #1
0
        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;
예제 #2
0
        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);
            }
        }