public async Task CanScheduleAndCancelSuspendNetwork() { var systemAddress = await _network.GetSystemFreezeAdminAddress(); if (systemAddress is null) { _network.Output?.WriteLine("TEST SKIPPED: No access to System Freeze Administrator Account."); return; } await using var client = _network.NewClient(); var receipt = await client.SuspendNetworkAsync(DateTime.UtcNow.AddSeconds(20), ctx => ctx.Payer = systemAddress); Assert.Equal(ResponseCode.Success, receipt.Status); receipt = await client.AbortNetworkUpgrade(ctx => ctx.Payer = systemAddress); Assert.Equal(ResponseCode.Success, receipt.Status); await Task.Delay(TimeSpan.FromSeconds(30)); // Confirm network is still up and running. var info = await client.GetAccountInfoAsync(_network.Payer); Assert.Equal(_network.Payer, info.Address); }
public async Task CanSuspendNetwork() { var systemAddress = await _network.GetSystemFreezeAdminAddress(); if (systemAddress is null) { _network.Output?.WriteLine("TEST SKIPPED: No access to System Freeze Administrator Account."); return; } await using var client = _network.NewClient(); var suspendParameters = new SuspendNetworkParams { Starting = TimeSpan.FromSeconds(5), Duration = TimeSpan.FromSeconds(60) }; var receipt = await client.SuspendNetworkAsync(suspendParameters, ctx => ctx.Payer = systemAddress); Assert.Equal(ResponseCode.Success, receipt.Status); await Task.Delay(TimeSpan.FromSeconds(30)); var pex = await Assert.ThrowsAsync <PrecheckException>(async() => { await client.GetAccountInfoAsync(_network.Payer); }); Assert.Equal(ResponseCode.PlatformNotActive, pex.Status); Assert.StartsWith("Transaction Failed Pre-Check: PlatformNotActive", pex.Message); await Task.Delay(TimeSpan.FromSeconds(50)); var info = await client.GetAccountInfoAsync(_network.Payer); Assert.Equal(_network.Payer, info.Address); }