@Test
    void testAuthLogin() throws Exception {
        this.expect("220");

        this.send("HELO foo.com");
        this.expect("250");

        this.send("AUTH LOGIN");
        this.expect("334");

        final String enc_username = Base64.getEncoder().encodeToString(REQUIRED_USERNAME.getBytes(StandardCharsets.US_ASCII));

        this.send(enc_username);
        this.expect("334");

        this.send("*");
        this.expect("501");

        this.send("AUTH LOGIN");
        this.expect("334");

        this.send(enc_username);
        this.expect("334");

        final String enc_pwd = Base64.getEncoder().encodeToString(REQUIRED_PASSWORD.getBytes(StandardCharsets.US_ASCII));
        this.send(enc_pwd);
        this.expect("235");

        this.send("AUTH");
        this.expect("503");
    }
Test method for AUTH LOGIN. The sequence under test is as follows:
<ol>
<li>HELO test</li>
<li>User starts AUTH LOGIN</li>
<li>User sends username</li>
<li>User cancels authentication by sending "*"</li>
<li>User restarts AUTH LOGIN</li>
<li>User sends username</li>
<li>User sends password</li>
<li>We expect login to be successful. Also the Base64 transformations are
tested.</li>
<li>User issues another AUTH command</li>
<li>We expect an error message</li>
</ol>
{@link AuthCommand#execute(java.lang.String, Session)}.

@throws Exception on error
src/test/java/de/gessnerfl/fakesmtp/smtp/command/AuthTest.java