示例#1
0
        public void DisableMaskedEmailCommand_FormatCommandLine()
        {
            var command      = new DisableMaskedEmailCommand("*****@*****.**");
            var commandLines = MaskedEmailCommandLineFormatter.Format(command);

            Assert.AreEqual(1, commandLines.Length);
            Assert.AreEqual("/usr/local/bin/set-masked-email -address [email protected] -disable", commandLines[0]);
        }
示例#2
0
        public void ChangeMaskedEmailPasswordCommand_FormatCommandLine()
        {
            var command = new ChangeMaskedEmailPasswordCommand("*****@*****.**")
            {
                PasswordHash = "password-hash"
            };
            var commandLines = MaskedEmailCommandLineFormatter.Format(command);

            Assert.AreEqual(1, commandLines.Length);
            Assert.AreEqual("/usr/local/bin/change-masked-email-password -address [email protected] -passwordHash password-hash -force", commandLines[0]);
        }
示例#3
0
        public void AddMaskedEmailCommand_FormatCommandLine()
        {
            var command = new AddMaskedEmailCommand("*****@*****.**",
                                                    "{SSHA512}XXtbZp4Gg8cTjH9p/1LtebnYLRaVJ15QJ7oFujjqQtrzUh/bVvC4zUHa5dyrqS0tbOLgIk5RlKj2gZ/4uwymY1JVTXQ=",
                                                    "*****@*****.**"
                                                    );
            var commandLines = MaskedEmailCommandLineFormatter.Format(command);

            Assert.AreEqual(2, commandLines.Length);
            Assert.AreEqual("/usr/local/bin/add-masked-email -address [email protected] -passwordHash {SSHA512}XXtbZp4Gg8cTjH9p/1LtebnYLRaVJ15QJ7oFujjqQtrzUh/bVvC4zUHa5dyrqS0tbOLgIk5RlKj2gZ/4uwymY1JVTXQ= -force", commandLines[0]);
            Assert.AreEqual("/usr/local/bin/set-masked-email -address [email protected] -forwardTo [email protected]", commandLines[1]);
        }
示例#4
0
        public void SendMailCommand_FormatCommandLine()
        {
            var base64 =
                Convert.ToBase64String(
                    Encoding.UTF8.GetBytes("<h1>Title</h1><p>This is the mail body.</p>")
                    );

            var command = new SendMailCommand(
                recipient: "*****@*****.**",
                subject: "A `subject` \\with\\ \"quoted\" $characters",
                message: base64
                );

            var commandLines = MaskedEmailCommandLineFormatter.Format(command);

            Assert.AreEqual(1, commandLines.Length);
            Assert.AreEqual($"/usr/local/bin/send-email -address [email protected] -subject \"A \\`subject\\` \\\\with\\\\ \\\"quoted\\\" \\$characters\" -message {base64}", commandLines[0]);
        }
        public void ProcessMaskedEmailCommandAsync(
            [QueueTrigger("commands")] string text,
            ILogger logger)
        {
            var request = MaskedEmailCommandJsonConvert.DeserializeObject(text);

            if (request == null)
            {
                logger.LogError("Invalid or malformed request. Ignoring (Enable Trace to include more details).");
                logger.LogTrace(text);
                return;
            }

            logger.LogInformation($"Handling {request.Action} request...");

            var commands = MaskedEmailCommandLineFormatter.Format(request);

            foreach (var command in commands)
            {
                Exec(command, logger);
            }
        }