예제 #1
0
        public async void ShouldGetANewJobOnDifferentBlocktemplates()
        {
            var counter = 0;

            _daemon.ExecuteCommandAsync <GetBlockTemplateResponse>(MoneroRpcCommands.GetBlockTemplate, Arg.Any <GetBlockTemplateRequest>())
            .ReturnsForAnyArgs(x =>
            {
                var response = counter == 0
                        ? JobManagerTestsContants.DaemonResponse1088295  // response in first call.
                        : JobManagerTestsContants.DaemonResponse1088296; // response in second call.

                counter++;
                return(response);
            });

            // check first job.
            await _jobManager.JobQueue.Take(1).Do(job =>
            {
                job.BlockTemplate.Blob.Should().Be("07079ccdc1d3053b4aff4fdac0424b58a69234796f1e572eea2650cb4a6c19aa03c17308d73d5b0000000002e3b64201ffa7b64201b3be90f18de9010258f3cdf062d631c578597ad4aa00bb6e99bbbdc816fa295286ea956c2d15e1cf2b0109d8ec8c47fb41668d69ef2ce3764a906285bbab66a127247f627b939380ddc7020800000000000000000000");
                job.BlockTemplate.Difficulty.Should().Be(23096);
                job.BlockTemplate.Height.Should().Be(1088295);
                job.BlockTemplate.PreviousBlockhash.Should().Be("3b4aff4fdac0424b58a69234796f1e572eea2650cb4a6c19aa03c17308d73d5b");
                job.BlockTemplate.ReservedOffset.Should().Be(129);
                job.BlockTemplate.Status.Should().Be("OK");
            });

            // check the second job
            await _jobManager.JobQueue.Take(1).Do(job =>
            {
                job.BlockTemplate.Blob.Should().Be("0707b0cfc1d305a6a0d38480cde292cbcd372835fb8d57ff8285b5334c724f610599d379c5499d0000000002e4b64201ffa8b64201ee86ece98de90102d287d0af34a8c9dc624cf4a7495f673782d9a323b1d22dec71b069af84c072672b013b54f7d869b695fd5e5fa05ddf49e971f511440b86ff42ce836283d207777442020800000000000000000000");
                job.BlockTemplate.Difficulty.Should().Be(23087);
                job.BlockTemplate.Height.Should().Be(1088296);
                job.BlockTemplate.PreviousBlockhash.Should().Be("a6a0d38480cde292cbcd372835fb8d57ff8285b5334c724f610599d379c5499d");
                job.BlockTemplate.ReservedOffset.Should().Be(129);
                job.BlockTemplate.Status.Should().Be("OK");
            });
        }