Add Login.newOrder() method

pull/140/head
Richard Körber 2023-04-29 15:14:51 +02:00
parent 01a2206c62
commit 00830858ca
No known key found for this signature in database
GPG Key ID: AAB9FD19C78AA3E0
5 changed files with 41 additions and 2 deletions

View File

@ -138,7 +138,7 @@ public class Account extends AcmeJsonResource {
* @return {@link OrderBuilder} object * @return {@link OrderBuilder} object
*/ */
public OrderBuilder newOrder() { public OrderBuilder newOrder() {
return new OrderBuilder(getLogin()); return getLogin().newOrder();
} }
/** /**

View File

@ -189,6 +189,16 @@ public class Login {
return challenge; return challenge;
} }
/**
* Creates a builder for a new {@link Order}.
*
* @return {@link OrderBuilder} object
* @since 3.0.0
*/
public OrderBuilder newOrder() {
return new OrderBuilder(this);
}
/** /**
* Sets a different {@link KeyPair}. The new key pair is only used locally in this * Sets a different {@link KeyPair}. The new key pair is only used locally in this
* instance, but is not set on server side! * instance, but is not set on server side!

View File

@ -33,7 +33,8 @@ import org.slf4j.LoggerFactory;
/** /**
* Start a new certificate {@link Order}. * Start a new certificate {@link Order}.
* <p> * <p>
* Use {@link Account#newOrder()} to create a new {@link OrderBuilder} instance. * Use {@link Login#newOrder()} or {@link Account#newOrder()} to create a new
* {@link OrderBuilder} instance. Both methods are identical.
*/ */
public class OrderBuilder { public class OrderBuilder {
private static final Logger LOG = LoggerFactory.getLogger(OrderBuilder.class); private static final Logger LOG = LoggerFactory.getLogger(OrderBuilder.class);

View File

@ -389,6 +389,20 @@ public class AccountTest {
provider.close(); provider.close();
} }
/**
* Test that a new order can be created.
*/
@Test
public void testNewOrder() throws AcmeException, IOException {
var provider = new TestableConnectionProvider();
var login = provider.createLogin();
var account = new Account(login);
assertThat(account.newOrder()).isNotNull();
provider.close();
}
/** /**
* Test that an account can be modified. * Test that an account can be modified.
*/ */

View File

@ -28,6 +28,7 @@ import org.mockito.ArgumentMatchers;
import org.shredzone.acme4j.challenge.Challenge; import org.shredzone.acme4j.challenge.Challenge;
import org.shredzone.acme4j.challenge.Dns01Challenge; import org.shredzone.acme4j.challenge.Dns01Challenge;
import org.shredzone.acme4j.challenge.Http01Challenge; import org.shredzone.acme4j.challenge.Http01Challenge;
import org.shredzone.acme4j.exception.AcmeException;
import org.shredzone.acme4j.exception.AcmeProtocolException; import org.shredzone.acme4j.exception.AcmeProtocolException;
import org.shredzone.acme4j.provider.AcmeProvider; import org.shredzone.acme4j.provider.AcmeProvider;
import org.shredzone.acme4j.provider.TestableConnectionProvider; import org.shredzone.acme4j.provider.TestableConnectionProvider;
@ -182,4 +183,17 @@ public class LoginTest {
" requested class class org.shredzone.acme4j.challenge.Dns01Challenge"); " requested class class org.shredzone.acme4j.challenge.Dns01Challenge");
} }
/**
* Test that a new order can be created.
*/
@Test
public void testNewOrder() throws AcmeException, IOException {
var provider = new TestableConnectionProvider();
var login = provider.createLogin();
assertThat(login.newOrder()).isNotNull();
provider.close();
}
} }