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
*/
public OrderBuilder newOrder() {
return new OrderBuilder(getLogin());
return getLogin().newOrder();
}
/**

View File

@ -189,6 +189,16 @@ public class Login {
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
* instance, but is not set on server side!

View File

@ -33,7 +33,8 @@ import org.slf4j.LoggerFactory;
/**
* Start a new certificate {@link Order}.
* <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 {
private static final Logger LOG = LoggerFactory.getLogger(OrderBuilder.class);

View File

@ -389,6 +389,20 @@ public class AccountTest {
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.
*/

View File

@ -28,6 +28,7 @@ import org.mockito.ArgumentMatchers;
import org.shredzone.acme4j.challenge.Challenge;
import org.shredzone.acme4j.challenge.Dns01Challenge;
import org.shredzone.acme4j.challenge.Http01Challenge;
import org.shredzone.acme4j.exception.AcmeException;
import org.shredzone.acme4j.exception.AcmeProtocolException;
import org.shredzone.acme4j.provider.AcmeProvider;
import org.shredzone.acme4j.provider.TestableConnectionProvider;
@ -182,4 +183,17 @@ public class LoginTest {
" 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();
}
}