[BAEL-5248] Lombok Configuration System (#11599)
* [BAEL-5248] Initial code examples * Add missing examples
This commit is contained in:
parent
1a8a597fe6
commit
da41d6e4f9
|
@ -0,0 +1,8 @@
|
||||||
|
import lombok_feature.config
|
||||||
|
|
||||||
|
config.stopBubbling = true
|
||||||
|
lombok.anyconstructor.addconstructorproperties=false
|
||||||
|
lombok.addLombokGeneratedAnnotation = true
|
||||||
|
lombok.addSuppressWarnings = false
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
lombok.experimental.flagUsage = warning
|
|
@ -26,6 +26,11 @@
|
||||||
<artifactId>hibernate-jpa-2.1-api</artifactId>
|
<artifactId>hibernate-jpa-2.1-api</artifactId>
|
||||||
<version>${hibernate-jpa-2.1-api.version}</version>
|
<version>${hibernate-jpa-2.1-api.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jetbrains</groupId>
|
||||||
|
<artifactId>annotations</artifactId>
|
||||||
|
<version>23.0.0</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -70,7 +75,7 @@
|
||||||
<!-- various -->
|
<!-- various -->
|
||||||
<hibernate-jpa-2.1-api.version>1.0.0.Final</hibernate-jpa-2.1-api.version>
|
<hibernate-jpa-2.1-api.version>1.0.0.Final</hibernate-jpa-2.1-api.version>
|
||||||
<!-- delombok maven plugin -->
|
<!-- delombok maven plugin -->
|
||||||
<delombok-maven-plugin.version>1.18.10.0</delombok-maven-plugin.version>
|
<delombok-maven-plugin.version>1.18.20.0</delombok-maven-plugin.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.baeldung.lombok.configexamples;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import lombok.extern.java.Log;
|
||||||
|
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import static java.lang.Math.abs;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Log
|
||||||
|
public class Account {
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private Double balance = 0.;
|
||||||
|
@NonNull
|
||||||
|
private String accountHolder = "";
|
||||||
|
|
||||||
|
public Account addBalance(double amount) {
|
||||||
|
if (amount < 0) {
|
||||||
|
throw new IllegalArgumentException("Can not add negative amount");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.balance += amount;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Account withdraw(double amount) {
|
||||||
|
if (this.balance - abs(amount) < 0) {
|
||||||
|
domainLog.log(Level.INFO, String.format("Transaction denied for account holder: %s", this.accountHolder));
|
||||||
|
throw new IllegalArgumentException(String.format("Not enough balance, you have %.2f", this.balance));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.balance -= abs(amount);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.baeldung.lombok.configexamples;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
|
@Accessors(prefix = {"op"})
|
||||||
|
public class TransactionLog {
|
||||||
|
double amount;
|
||||||
|
String description;
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
clear lombok.experimental.flagUsage
|
||||||
|
|
||||||
|
lombok.anyconstructor.addconstructorproperties=true
|
||||||
|
lombok.addNullAnnotations = jetbrains
|
||||||
|
lombok.accessors.chain = true
|
||||||
|
lombok.log.fieldName = domainLog
|
|
@ -0,0 +1,50 @@
|
||||||
|
package com.baeldung.lombok.configexamples;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
|
class AccountUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void should_initialize_account() {
|
||||||
|
Account myAccount = new Account()
|
||||||
|
.setBalance(2000.00)
|
||||||
|
.setAccountHolder("John Snow");
|
||||||
|
|
||||||
|
assertEquals(2000.00, myAccount.getBalance());
|
||||||
|
assertEquals("John Snow", myAccount.getAccountHolder());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void should_throw_error_when_balance_becomes_negative() {
|
||||||
|
Account myAccount = new Account()
|
||||||
|
.setBalance(20.00)
|
||||||
|
.setAccountHolder("John Snow");
|
||||||
|
|
||||||
|
assertThrows(IllegalArgumentException.class, () -> myAccount.withdraw(100.00));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void should_throw_no_error_when_balance_becomes_zero() {
|
||||||
|
Account myAccount = new Account()
|
||||||
|
.setBalance(20.00)
|
||||||
|
.setAccountHolder("John Snow");
|
||||||
|
|
||||||
|
myAccount.withdraw(20.00);
|
||||||
|
|
||||||
|
assertEquals(0.00, myAccount.getBalance());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void should_update_balance_properly() {
|
||||||
|
Account myAccount = new Account()
|
||||||
|
.setBalance(20.00)
|
||||||
|
.setAccountHolder("John Snow");
|
||||||
|
|
||||||
|
myAccount.withdraw(5.00).withdraw(10.00);
|
||||||
|
|
||||||
|
assertEquals(5.00, myAccount.getBalance());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue