Skip to content

Commit

Permalink
format code
Browse files Browse the repository at this point in the history
remove warnings
  • Loading branch information
deepcloudlabs committed Jun 23, 2020
1 parent c460305 commit e2ce0d6
Show file tree
Hide file tree
Showing 16 changed files with 100 additions and 24 deletions.
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/domain/BirthYear.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.domain;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
// Value Object, Immutable
public final class BirthYear {
private final int value;
Expand Down
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/domain/Department.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.domain;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
public enum Department {
IT, SALES, HR, FINANCE
}
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/domain/Employee.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.domain;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
// DDD : Core Domain -> Entity Root -> Aggregate
// Ubiquitous Language: Entity, Entity Root/Aggregate/Value Object
// Bounded Context <--> Sub Domain
Expand Down
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/domain/FullName.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.domain;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
// Value Object, Immutable
public final class FullName {
private final String first;
Expand Down
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/domain/Iban.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.domain;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
// Value Object, Immutable
public final class Iban {
private static final long MAX = 999999999;
Expand Down
7 changes: 6 additions & 1 deletion hr-domain/src/com/example/hr/domain/Money.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.domain;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
// Value Object, Immutable
public class Money {
private final double value;
Expand Down Expand Up @@ -57,7 +62,7 @@ public String toString() {
}

public Money multiply(double percentage) {
return Money.of(this.value*(1. + percentage / 100. ), currency);
return Money.of(this.value * (1. + percentage / 100.), currency);
}

public boolean lessThan(Money minSalary) {
Expand Down
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/domain/MoneyCurrency.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.domain;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
public enum MoneyCurrency {
TL, EUR, USD
}
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/domain/Photo.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

import java.util.Objects;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
// Value Object
public final class Photo {
private final byte[] value;
Expand Down
7 changes: 6 additions & 1 deletion hr-domain/src/com/example/hr/domain/TcKimlikNo.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.domain;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
// Value Object (DDD) --> Immutable --> Effective Java
public final class TcKimlikNo {
private final String value;
Expand Down Expand Up @@ -81,5 +86,5 @@ private static boolean isValid(String value) {
public String toString() {
return "TcKimlikNo [value=" + value + "]";
}

}
16 changes: 10 additions & 6 deletions hr-domain/src/com/example/hr/domain/TcKimlikNoRecord.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package com.example.hr.domain;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
//Value Object (DDD) --> Immutable
// Java 14: (preview feature)
/*
public record TcKimlikNoRecord(String value) {
//POJO: JavaBeans Naming Convention -> getValue()/isValue()
// getter: value()
}
*/
public class TcKimlikNoRecord {}
* public record TcKimlikNoRecord(String value) { //POJO: JavaBeans Naming
* Convention -> getValue()/isValue() // getter: value() }
*/
public class TcKimlikNoRecord {
}
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/events/BusinessEvent.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.events;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
public class BusinessEvent {
private final String eventId;
private final String topic;
Expand Down
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/events/EmployeeFiredEvent.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.events;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
public class EmployeeFiredEvent extends BusinessEvent {

public EmployeeFiredEvent(String eventId, String topic, Object data) {
Expand Down
5 changes: 5 additions & 0 deletions hr-domain/src/com/example/hr/events/EmployeeHiredEvent.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.hr.events;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
public class EmployeeHiredEvent extends BusinessEvent {

public EmployeeHiredEvent(String eventId, String topic, Object data) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

import com.example.hr.events.BusinessEvent;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
public interface EventPushlisher {
public void publishEvent(BusinessEvent event);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,15 @@
import com.example.hr.domain.Employee;
import com.example.hr.domain.TcKimlikNo;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
public interface EmployeeRepository {
Optional<Employee> findByIdentity(TcKimlikNo identity);

void save(Employee employee);

void remove(Employee employee);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,30 @@

import static org.junit.Assert.assertTrue;

import java.util.Optional;

import org.junit.jupiter.api.Test;
import org.mockito.Mockito;

import com.example.hr.domain.Department;
import com.example.hr.domain.Employee;
import com.example.hr.domain.MoneyCurrency;
import com.example.hr.domain.TcKimlikNo;
import com.example.hr.events.EmployeeHiredEvent;
import com.example.hr.infrastructure.EventPushlisher;
import com.example.hr.repository.EmployeeRepository;

/**
*
* @author Binnur Kurt <binnur.kurt@gmail.com>
*
*/
class SimpleEmployeeApplicationTest {

// Unit Testing -> Test Doubles
// 1. Dummy Object
// 2. Stub Object -> Partial Implementation -> Real Object
// 3. Fake Object -> Simple/Full Implementation (HashMap - in-memory implementation)
// 2. Stub Object -> Partial Implementation -> Real Object
// 3. Fake Object -> Simple/Full Implementation (HashMap - in-memory
// implementation)
// 4. Mock Object -> Mocking/Spying Library -> Mockito
// 5. Spy Object
// 5. Spy Object
@Test
void hireEmployee_success() {
// 1. test setup / fixture
Expand All @@ -32,17 +35,14 @@ void hireEmployee_success() {
app.setEmployeeRepository(empRepo);
app.setEventPushlisher(eventPublisher);
System.out.println(empRepo.getClass());
Employee jack = new Employee.Builder("40310900232")
.fullname("jack", "bauer")
.birthYear(1956)
.salary(100_000, MoneyCurrency.USD)
.iban("TR820006235455781668847562")
.fulltime(true)
.department(Department.IT)
.photo("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".getBytes())
.build();
Employee jack = new Employee.Builder("40310900232").fullname("jack", "bauer").birthYear(1956)
.salary(100_000, MoneyCurrency.USD).iban("TR820006235455781668847562").fulltime(true)
.department(Department.IT)
.photo("iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAABC1BMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXsw3hAAAAWXRSTlMAWQFYVwIlVUpSTypIR0wSKBFFAw9WCRo/OgUvQjMNIR5EBhBOLiIZExRTCjsdDlBBHD1UQwc4Sx8wQC0kKxtGBAwsPDEnMhU0N00gOSlJNSYjURY+CxcINmo6xHsAAATwSURBVHhe7Ztnbxs5EIbfGXK16l22VSwXufcax70kju30enf//5ccJDsXCPJyaK3I4BA/XwQLEN6Hs/SSw5Xwf+IZZnSZ7YwnmncTM8l0KtSKSIepuWyr/qa4vvQ3ujCzk3gAaE/dlr9SJCvZ99fLjZ6Di/jCcU5TD9WFegy+kV6bWh21AwMXX8oPSWTgQSPcWa8APML4RibdSycbehJvM/ujUmDgZHMgXXZYuWqAeRTxSzkiTU9FE21OxS9CADQN8ZLC0VhMA0Y7S6RoSBSF07GKwJjWwvDFIkwOb8DAqTB8GUUzswiGzT+k+GhKtxEMlz9JaiQGu6VhDOR8e4NwCANGU8i3R9FKG/zU/CKNDkVvG08zCLBNo0TT1lPvPzVSNEIUXT2tBDlSNGKW7A0YxyPPV5SDfX5V0chRlEBgK7BDDgwoXbHNXyIXKLpGYCfw3qoASvXvBGUO2C5/NSSJB0OdSs9t7j68IaJoHGwj8JmURXzy7uTb5X4luBgrvXydUxYKiup2Ai1SUnx6voQ+Nk7zFgqpWVgwFkoD0R8qALgLgJ8vX76Skq+BBdukzPn5DhAw+uAAaKyJpXsNCw6NAor2AgQRG+hJyb0MC7ZIGbd4QBDZQgg1sJoEwZxxDHOGhZ3BScGgAJFLLaxpgUEey8IkmIbIN2MBjk35AKNuvoAZiEyRis7PM4wwbqRbkcipSeCluJzwAZlIQuQ2UkBZfJxxZ5yGNYjUDQKfwaJAwihAsW4D4aqFwCIZgUg2SkDREUQYhbgCedP/EMsCGzqmQJoiWbQRaBsFQoisUBSqGr8CWxAJKYrdMRuBEsW8E973ZGoATal9G4HtuDsSiuaHhYB5TxCuQuQgf5BMfsxmc7nzcnlmb6/V2jqamPi+82qnvioLIMibCnAOGY5z2s4YFxbTJ8J92AhMkBL2Iy5h3IgNcnzknkJYzNwR4CUpoS9xCWM/ZbwCTQRwijADwzhH5/FPFhXNOy0AM67JyGbDZQEYuBJagimXBQgQ1IX8FhzCuJR6slob7C4e6yFpMvIOgbt8niSpL58HO4tHJ0tmFN26nP0fiLSQ/wlgV/HVsnw4degwPyMPn4qu8gOMzUjD16TPwHCUX1ghTUJ+vupqBWBs1OTyr1Xc5V/MieWnBMAOF38tDD9bBbvKD5AhJQy/6XD4jI509ZPLAMMdM6SMw59nl/EsbH8pWwIYLjEs/4po0nE8Y9uYv+A4H4zvhrO82l9gx/mGhyqKwoLz9oOxbrgCy87zwXgTLTDtPh+MPVKRD4UY7qmkDcf57gUYP3T0AxGGB4FlQwE8wBh/fApomocPA45+qnPjSSBBSjiCcSxQJCU8F3UskIkQeAH2I3AaIdAE+6pATQ1So6IvgXl6FH8CheJJYpCTYhWMPwOOAn8czzzzeyf/r2D8DgcGUKmeLSQWzjoVAOw/f/HFHN2Tfj8OsO/4XN+vaz6e+VRg4FM3vO/LlS/YmwGDW//F/1IoB74MGK9IP7Ipn/BWgIVe/qBBwlMJgrcRfcHmhZ8CLEb2xtt+WsOriCNSTYd+BD51BeTGwP/5iKJ/wL+zNdRU9COwQVGUwN7uQ4NoOvLVmFxqUo+dkPpqTBjrRGow/53H1Wi6bzG8/2PK63rcOX+I/fmSLYDhDwbendMvcsIBuRMDlD6sfUztppKvMgUMnf/Mv8NIVU+cyYl6AAAAAElFTkSuQmCC"
.getBytes())
.build();
Mockito.doNothing().when(empRepo).save(jack);
Mockito.doNothing().when(eventPublisher).publishEvent(new EmployeeHiredEvent("", "employees", jack) );
Mockito.doNothing().when(eventPublisher).publishEvent(new EmployeeHiredEvent("", "employees", jack));
// 2. call exercise method
var success = app.hireEmployee(jack);
// 3. Verification
Expand Down

0 comments on commit e2ce0d6

Please sign in to comment.