public void ActivateAccount(bool invalid, int expectedCode) { var nonce = new byte[] { 0x00, 0x01, 0x02, 0x03 }; var privateKey = new PrivateKey(); (ActivationKey activationKey, PendingActivationState _) = ActivationKey.Create(privateKey, nonce); string invitationCode = invalid ? "invalid_code" : activationKey.Encode(); var filePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName()); var resultCode = _command.ActivateAccount(invitationCode, ByteUtil.Hex(nonce), filePath); Assert.Equal(expectedCode, resultCode); if (resultCode == 0) { var rawAction = Convert.FromBase64String(File.ReadAllText(filePath)); var decoded = (List)_codec.Decode(rawAction); string type = (Text)decoded[0]; Assert.Equal(nameof(Nekoyume.Action.ActivateAccount), type); Dictionary plainValue = (Dictionary)decoded[1]; var action = new ActivateAccount(); action.LoadPlainValue(plainValue); Assert.Equal(activationKey.PrivateKey.Sign(nonce), action.Signature); Assert.Equal(activationKey.PendingAddress, action.PendingAddress); } else { Assert.Contains("hexWithSlash seems invalid. [invalid_code]", _console.Error.ToString()); } }